Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Бродин В.Б., Калинин А.Б. Схемы на микроконтроллерах и БИС программируемой логики, 2002

.pdf
Скачиваний:
260
Добавлен:
11.03.2016
Размер:
9.1 Mб
Скачать

ГЛАВА 3. МИКРОКОНВЕРТЕР АРцСв 12 ФИРМЫ ANALOG DEVICES

149

В регистре IP отсутствует бит приоритета запроса от монитора пита­ ния, поскольку этот источник всегда имеет высокий приоритет.

3 .8 . Внутренняя flash-память программ и данных

Внутренняя память программ. Внутренняя flash-память программ микроконвертера объемом 8 Кбайт может быть запрограммирована прямо на плате через последовательный порт UART, либо перед установкой мик­ росхемы с использованием одного из промышленных программаторов. Ре­ жим загрузки через последовательный порт устанавливается после вклю­ чения питания, если вывод PSEN# через резистор (около 1 кОм) подклю­ чен к земле. Опция загрузки памяти программ (Load+Run) появляется в команде RUN интегрированной системы программирования «ТурбоАс- семблер-51» при настройке этой системы на программирование микрокон­ вертера ADpC812 (см. главу 6).

Внутренняя flash-память данных. Внутренняя энергонезависимая па­ мять данных имеет объем 640 байт и разбита на страницы по 4 байта. Все­ го страниц 160 (рис. 3.17), обращение к этой памяти производится с ис­ пользованием нескольких регистров спецфункций. Регистры EDAT1EDAT4 предназначены для хранения данных страницы, регистр EADRL используется для хранения адреса страницы, а в регистр ECON записыва­ ется текущая команда обращения к памяти.

9F:

Байт 1

Байт 2

Байт 3

Байт 4

00:

 

I

I

 

 

Рис. 3.17.

Внутренняя flash-память данных

 

Команда, записанная в регистр ECON, сразу выполняется.

Стирание одной страницы и всей flash-памяти данных выполняется за 20 мс, запись одной страницы занимает 250 мксек, а чтение страницы длится командный цикл. Следует обратить внимание на эти цифры, по­ скольку на время обслуживания flash-памяти данных запросы прерываний откладываются. Сразу после записи команды в регистр ECON процессор переходит в режим пониженного энергопотребления (таймеры/счетчики продолжают функционировать) и находится в нем до конца работы с этой памятью.

Команды работы с flash-памятью данных, коды которых могут быть записаны в регистр ECON, приведены ниже.

150

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

Код команды

Описание

01Н

Чтение страницы. Данные страницы с адресом EADRL заносятся в

 

регистры EDATAx

02 Н

Запись страницы. Данные из регистров EDATAx записываются в

 

страницу с адресом EADRL

ОЗН

Резервный код. Не использовать

04Н

Верификация. Сравниваются данные страницы по адресу EADRL с

 

содержимым регистров EDATAx. При следующем чтении регистра

 

ECON в нем будет 0, если данные совпадают

05 Н

Стирание страницы по адресу EADRL

06Н

Стирание всей flash-памяти данных

07Н - FFH

Резервные коды. Не использовать

Программирование байта памяти данных возможно после стирания его содержимого. Особенностью flash-памяти является то, что команду стира­ ния можно выполнить только для всей страницы (или матрицы). После стирания каждый байт страницы содержит код FFh. Запись нового значе­ ния в ячейку flash-памяти данных можно выполнить при помощи следую­ щей процедуры:

MOV

EADRL, #03h

; загрузка указателя страницы

MOV

ECON,

# 01h

; чтение страницы

MOV

EDATA2 , #0F3h

; запись нового значения в регистр

MOV

ECON,

# 02h

; стирание страницы

MOV

ECON,

#05h

; запись страницы

Эта процедура вначале копирует содержимое страницы в регистры данных, затем меняет содержимое нужного байта, затирает страницу и по­ сле этого копирует содержимое регистров данных во flash-память.

3 .9 . Монитор напряжения питания и сторожевой таймер

Монитор напряжения питания (PSM) формирует запрос прерывания, если цифровое или аналоговое питание становится меньше значения, кото­ рое может быть установлено программно (от 2,6 В до 4,6 В). Процедура обслуживания этого прерывания должна сохранить состояние регистров процессора в энергонезависимой памяти. Флаг прерывания очищается при нормализации питания, но не ранее 256 мсек с момента установки.

Монитор напряжения питания управляется регистром PSMCON.

 

7

6

5

4

3

2

1

0

DFH

-

 

 

 

 

 

 

PSMCON

Исх. код

1

1

0

1

1

1

0

0

ГЛАВА 3 МИКРОКОНВЕРТЕР АОцСв12 ФИРМЫ ANALOG DEVICES

151

Бит

Описание

 

PSMCON.7

Не используется

 

PSMCON.6

Бит состояния монитора: “1" - нормальная работа, “0" - ошибка

 

PSMCON.5

Флаг прерывания PSM

 

PSMCON.4

Биты выбора порогового напряжения [4,63 В, 4,37 В, 3,08 В, 2,93 В,

 

PSMCON.3

2,63 В]

 

 

 

PSMCON.2

 

 

PSMCON.1

Бит выбора контролируемого напряжения: "1” = AVDD, "0" = DVDD

 

PSMCON.O

Бит управления PSM Powerdown

 

Сторожевой таймер (WDT) предназначен для вывода системы из за­ висаний рабочей программы. Сторожевой таймер управляется регистром

WDCON.

7

6

5

4

3

2

 

1

0

PRE2 PRE1 PRE0

-

WDR1

WDR2

WDS

WDE

Лсх.код 0

0

О

О

О

О

О

О

 

Бит

Мнемоника

 

 

 

Описание

 

 

 

WDCON.7

PRE2

Биты выбора интервала времени до сброса

 

WDCON.6

PRE1

[16, 32, 64, 128, 256, 512, 1024, 2048] мсек

 

WDCON.5

PRE0

 

 

 

 

 

 

 

WDCON .4

-

Не используется

 

 

 

 

WDCON .3

WDR1

Биты перезагрузки сторожевого таймера, должны уста­

 

 

навливаться

 

 

 

 

 

WDCON .2

WDR2

последовательно

 

 

 

 

WDCON .1

WDS

Бит состояния сторожевого таймера

 

 

 

WDCON .0

WDE

Бит разрешения строжевого таймера

 

 

Сторожевой таймер функционирует, если установлен бит WDE реги­ стра WDCON. Биты PRE2, PRE1 определяют интервал времени, в конце которого сторожевой таймер формирует системный сброс микроконверте­ ра. Рабочая программа при всех вариантах реализации алгоритма должна периодически перезагружать сторожевой таймер, не допуская его срабаты­ вания. Перезагрузка осуществляется последовательной установкой битов WDR1, WDR2. Отсутствие перезагрузки свидетельствует о непредусмот­ ренной задержке, идентифицируется как зависание и вызывает системный сброс и перезагрузку микроконвертера.

ГЛАВА 4

МИКРОКОНТРОЛЛЕРЫ ФИРМЫ

ATMEL

С АРХИТЕКТУРОЙ AVR

4 .1 . Особенности семейства AVR

В этой главе мы рассмотрим фирменную RISC-архитектуру AVR компании Atmel на примере 8-разрядного микроконтроллера ATmegal03.

Микроконтроллер ATmegal03 является старшей моделью семейства AVR фирмы Atmel. Семейство AVR (АТ90) удачно воплощает современ­ ные тенденции архитектуры RISC-микроконтроллеров, что в сочетании с достижениями фирмы Atmel в области создания flash-памяти сделало его весьма популярным на мировом рынке 8-разрядных микроконтроллеров.

Высокие характеристики семейства AVR обеспечиваются следующи­ ми особенностями архитектуры:

В качестве памяти программ используется внутренняя flash-память. Она организована в виде матрицы 16-разрядных ячеек и может за­ гружаться программатором, либо через порт SPI;

Система команд включает 120 инструкций. Все инструкции 16 и 32разрядные;

16-разрядные память программ и шина команд вместе с одноуровне­ вым конвейером позволяют выполнить большинство инструкций за

один такт синхрогенератора (50 не при частоте Fosc = 20 МГц);

память данных имеет 8-разрядную организацию. Младшие 32 адреса пространства занимают регистры общего назначения, далее следуют 64 адреса регистров ввода-вывода, затем внутреннее ОЗУ данных

ГЛАВА 4. МИКРОКОНТРОЛЛЕРЫ ФИРМЫ ATMEL С АРХИТЕКТУРОЙ AVR

153

объемом до 4000 ячеек. Возможно применение внешнего ОЗУ дан­ ных объемом до 60 Кбайт;

внутренняя энергонезависимая память типа EEPROM объемом до 4 Кбайт представляет собой самостоятельную матрицу, обращение к которой осуществляется через специальные регистры ввода/вывода;

Важным преимуществом микроконтроллеров classic AVR является их совместимость по функциям выводов с микроконтроллерами архитектуры MCS-51. Это позволяет во многих случаях увеличить производительность имеющейся системы управления посредством замены микроконтроллера, разработки и отладки рабочей программы.

Семейство AVR включает около двух десятков типов 8-разрядных микроконтроллеров трех основных линий:

T in y A V R представляют собой низкостоимостные микроконтролле­

 

ры, как правило, в 8-выводном корпусе. Их особенностью является

 

встроенная схема контроля напряжения питания;

C lassic A V R является основной линией семейства. Быстродействие

некоторых

моделей достигает 16 MIPS, flash-память программ

2 - 8 Кбайт,

EEPROM данных 64-512 байт, ОЗУ данных

128-512 байт;

М ед а A V R

представляет собой старшую модель, ориентированную

на высокопроизводительную работу со сложными задачами, требую­ щими больших ресурсов памяти. Flash ROM программ составляет 16-128 Кбайт, EEPROM данных 512 байт, ОЗУ данных 1 - 4 Кбайт. Имеются 10-разрядный АЦП и аналоговый компаратор.

Благодаря универсальности, широкому набору функциональных воз­ можностей, высоким техническим характеристикам микроконтроллеры семейства AVR находят все более широкое применение в системах управ­ ления различными объектами. В составе семейства существуют модифи­ кации с низковольтным питанием (3 В).

Ниже в таблице приведены параметры некоторых микроконтролле­ ров семейства AVR. В верхней части таблицы указаны поставляемые микросхемы, а в нижней перспективные.

Все микроконтроллеры семейства AVR имеют общие принципы функционирования, единую систему команд, используют одинаковые ме­ тоды адресации.

Микроконтроллер ATmegal03 является типичным представителем семейства AVR. Знакомство с ним позволит освоить основные методы проектирования, программирования и отладки систем управления на базе современных RISC микроконтроллеров.

154

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

Микроконтроллеры семейства AVR

Тип

Rash

ОЗУ,

EEPROM,

Тайме­

Поел.

АЦП,

Частота,

Корпус

 

память

байт

байт

ры

порты

компа­

МГц

 

 

программ,

 

 

 

 

ратор

 

 

 

Кбайт

 

 

 

 

 

0...6

DIP8

ATiny11 (L)

1

0

0

1

-

КОМП.

 

 

 

 

 

 

 

 

SOIC8

ATiny12 (L)

1

0

64

1

-

КОМП.

0...8

DIP8

 

 

 

 

 

 

 

 

SOIC8

ATiny15 (L)

1

0

64

2

-

АЦП

1,6

DIP8

 

 

 

 

PWM

 

КОМП.

 

SOIC8

ATiny22 (L)

2

128

128

1

-

0...8

DIP8

 

 

 

 

 

 

 

 

SOIC8

ATiny28 (L)

2

0

0

1

-

-

0...4

DIP8

 

 

0

64

 

 

 

 

TQFP32

AT90S1200

1

1

 

КОМП.

0...12

DIP20

 

 

 

 

 

 

 

 

SOIC20

 

 

 

 

 

 

 

 

SSOP20

AT90S2313

2

128

128

2

UART

КОМП.

0...10

DIP20

 

 

128

128

PWM

 

 

 

SOIC20

AT90S2323

2

1

-

-

0...10

DIP8

AT90S2343

 

 

 

 

 

 

 

SOIC8

AT90S2333

2

128

128

2

SPI

КОМП.

0...8

DIP28

AT90S4414

 

256

 

2*PWM

UART

АЦП

0...8

TQFP32

4

256

2

SPI

КОМП.

DIP40

 

 

 

 

2*PWM

UART

 

 

PLCC44

AT90S4433

4

128

256

 

 

 

0...8

TQFP44

2

SPI

АЦП

DIP28

AT90S4434

4

256

256

2*PWM

UART

КОМП.

0...8

TQFP32

3

SPI

АЦП

DIP40

 

 

 

 

3*PWM

UART

КОМП.

 

PLCC44

AT90S8515

8

 

 

 

 

 

 

TQFP44

512

512

2

SPI

КОМП.

0...8

DIP40

 

 

 

 

2*PWM

UART

 

 

PLCC44

AT90S8535

8

512

 

 

 

 

 

TQFP44

512

3

SPI

АЦП

0...8

DIP40

 

 

 

 

3*PWM

UART

КОМП.

 

PLCC44

ATmega163(L)

16

 

 

 

 

 

TQFP44

512

3

SPI

АЦП

0...6

DIP40

 

 

 

 

4*PWM

UART

КОМП.

 

PLCC44

ATmega103(L)

128

 

 

 

 

TQFP44

3

SPI

АЦП

0...6

TQFP64

ATmega161(L)

 

 

 

4*PWM

UART

КОМП.

 

 

16

512

3

SPI

КОМП.

0...6

DIP40

 

 

 

 

4*PWM

2 UART

 

 

PLCC44

ATmega83 (L)

8

512

 

 

 

 

 

TQFP44

512

3

SPI

АЦП,

0...6

DIP40

 

 

 

 

4* PWM

UART

КОМП.

 

PLCC44

ATmega128

128

 

 

 

 

TQFP44

3

SPI

АЦП

0...16

TQFP64

 

 

 

 

PWM

UART

КОМП.

 

 

ГЛАВА 4 МИКРОКОНТРОЛЛЕРЫ ФИРМЫ ATMEL С АРХИТЕКТУРОЙ AVR

155

4 .2 . Структура и функционирование микроконтроллера А ТтедаЮ З

Структура микроконтроллера включает следующие функциональные блоки:

8-разрядное арифметическо-логическое устройство (АЛУ);

внутреннюю flash-память программ объемом 128 Кбайт с возможно­ стью внутрисистемного программирования через последовательный интерфейс;

32 регистра общего назначения;

внутреннюю EEPROM память данных объемом 4 Кбайт;

внутреннее ОЗУ данных объемом 4 Кбайт;

6 параллельных 8-разрядных портов;

3 программируемых таймера-счетчика;

10-разрядный 8-канальный АЦП и аналоговый компаратор;

последовательные интерфейсы UART и SPI;

блоки прерывания и управления (включая сторожевой таймер).

На рис. 4.1 изображен корпус и приведено назначение выводов мик­ роконтроллера. В скобках указана альтернативная функция вывода, если она существует.

Port А (РА7..РА0). 8-разрядный двунаправленный порт. К выводам порта могут быть подключены встроенные нагрузочные резисторы (от­ дельно к каждому разряду). Выходные буферы обеспечивают ток 20 мА и способны прямо управлять светодиодным индикатором. При использова­ нии выводов порта в качестве входов и установке внешнего сигнала в низкое состояние, ток будет вытекать только при подключенных встроен­ ных нагрузочных резисторах. Порт А при наличии внешней памяти дан­ ных используется для организации мультиплексируемой шины адре­ са/данных.

Port В (РВ7..РВ0). 8-разрядный двунаправленный порт со встроен­ ными нагрузочными резисторами. Выходные буферы обеспечивают ток 20 мА. При использовании выводов порта в качестве входов и установке внешнего сигнала в низкое состояние, ток будет вытекать только при подключенных встроенных нагрузочных резисторах. Порт В использует­ ся также при реализации специальных функций.

Port С (РС7..РС0). Порт С является 8-разрядным выходным пор­ том. Выходные буферы обеспечивают ток 20 мА. Порт С при наличии внешней памяти данных используется для организации шины адреса.

Port D (PD7..PD0). 8-разрядный двунаправленный порт со встро­ енными нагрузочными резисторами. Выходные буферы обеспечивают ток 20 мА. При использовании выводов порта в качестве входов и установке внешнего сигнала в низкое состояние, ток будет вытекать только при

156

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

подключенных встроенных нагрузочных резисторах. Порт D использует­ ся также при реализации специальных функций.

5- S S S .S S S . S S < S < 5 .

 

сот* 1Л Ю N ш N СОЮ < СО СУ

О. _ .гг

 

 

 

< < < < < —1 0 0 0 0 0 0 0

о Q >

 

 

 

q _ q _ Q - Q _ Q - < q _ q _ Q _ Q _ q _ Q - C L Q - | o c |5

 

 

 

п п п п п п п п п п п п п п п п _

 

(AD2 ) РА2 С49

00 |V ^ 1Л1 2 № У " о

00 г» 40 v-\ тТ го

 

 

 

 

 

 

ГЛС^> ГЛ

ГЛ^

D PD7 (Т2)

50

 

 

 

 

 

 

 

31

3 PD6 (Т1)

(AD1) РА1 С

 

 

 

 

 

 

 

(ADO) PA0L 51

 

 

 

 

 

 

 

30

3 PD5

Vcc С 52

 

 

 

 

 

 

 

29

3 PD4 (IC1)

GND С 53

 

 

 

 

 

 

 

28

3 РОЗ (INT3)

(ADC7) PF7 С 54

 

 

 

 

 

 

 

27

PD2 (INT2)

(ADC6) PF6 С 55

 

 

АТтедаЮ З

 

 

 

 

26

PD1 (INT1)

(ADC5) PF5 С 56

 

 

 

 

 

 

25

PDO (INTO)

 

 

 

 

 

 

 

(ADC4) PF4 С 57

 

 

 

 

 

 

 

24

D xtali

(ADC3) PF3 С 58

 

 

 

 

 

 

 

23

3XTAL2

(ADC2 ) PF2 С59

 

 

 

 

 

 

 

22

D g n d

(ADC1) PF1 С60

 

 

 

 

 

 

 

21

3 Vcc

(ADCO) PF0 С 61

 

6fS

 

 

 

 

20

3 RESET

AREFC 62

 

Метка первого

 

 

 

 

19

3 T0SC1

AGNDC 63

 

вывода

 

 

 

 

18

3TOSC2

AVcc С 64

•ч

Tf >Л VO Г4 00 CS О

^

ГЧ

 

^

17

3 PB7 (OC2/PWM2)

ТТОППОГШТТПТП^

 

 

 

 

 

|

 

О_СМ00<ЮС0(^О т : су

jo

со

 

 

U J Q - q_ Q - Q _ Q _ Q - 0 - q_ q_

СО со

СОей

 

 

 

 

 

 

9^ CL

О- о.

 

 

 

 

 

 

*

~

 

 

 

 

 

Z z £ z

о

со

 

 

 

 

 

СО

о

I I

 

 

 

 

s

§

 

 

 

 

CL Q.

S8

Рис. 4.1. Вид корпуса и назначение выводов микроконтроллера АТтедаЮЗ

Port Е (РЕ7..РЕ0). 8-разрядный двунаправленный порт со встроен­ ными нагрузочными резисторами. Выходные буферы обеспечивают ток 20 мА. При использовании выводов порта в качестве входов и установке внешнего сигнала в низкое состояние, вытекающий через них ток обеспе­ чивается только при подключенных встроенных нагрузочных резисторах. Порт Е используется также при реализации специальных функций.

Port F (PF7..PF0). 8-разрядный входной порт. Входы порта ис­

пользуются также как аналоговые входы аналого-цифрового преобразова­ теля.

ГЛАВА 4. МИКРОКОНТРОЛЛЕРЫ ФИРМЫ ATMEL С АРХИТЕКТУРОЙ AVR

157

RESET. Вход сброса. Для выполнения сброса необходимо удержи­ вать низкий уровень на входе более 50 не.

XTAL1, XTAL2. Вход и выход инвертирующего усилителя генерато­ ра тактовой частоты.

TOSC1, TOSC2. Вход и выход инвертирующего усилителя генерато­ ра таймера/счетчика.

W R#, RD#. Стробы записи и чтения внешней памяти данных. ALE. Строб разрешения фиксации адреса внешней памяти. Строб

ALE используется для фиксации младшего байта адреса с выводов ADO - AD7 в защелке адреса в течение первого цикла обращения. В тече­ ние второго цикла обращения выводы ADO - AD7 используются для пе­ редачи данных.

AVCC. Напряжение питания аналого-цифрового преобразователя. Вывод подсоединяется к Vcc через низкочастотный фильтр.

AREF. Вход опорного напряжения для аналого-цифрового преобра­ зователя. На этот вывод подается напряжение в диапазоне между AGND

и AVCC.

AGND. Это вывод должен быть подсоединен к отдельной аналоговой земле, если она есть на плате. В ином случае вывод подсоединяется к общей земле.

PEN#. Вывод разрешения программирования через последователь­ ный интерфейс. При удержании сигнала на этом выводе на низком уров­ не после включения питания, прибор переходит в режим программирова­ ния по последовательному каналу.

Vcc> GND. Напряжение питания и земля.

Микроконтроллеры AVR имеют раздельные пространства адресов памяти программ и данных (гарвардская архитектура). Организация па­ мяти показана на рис. 4.2.

Как видно из рис. 4.2, 32 регистра общего назначения включены в сквозное адресное пространство ОЗУ данных и занимают младшие адре­ са. Эти регистры на самом деле находятся вне памяти данных, но их включение в единое адресное пространство обеспечивает гибкость при программировании. Файл регистров общего назначения прямо связан с АЛУ, каждый из регистров способен работать как аккумулятор.

Большинство команд выполняются за один такт, при этом из регист­ ров файла могут быть выбраны два операнда, выполнена операция и ре­ зультат возвращен в регистровый файл. Старшие шесть регистров файла могут использоваться как три 16-разрядных регистра, и выполнять роль, например, указателей при косвенной адресации (рис. 4.3).

Следующие 64 адреса за регистрами общего назначения занимают ре­ гистры ввода-вывода. В этой области сгруппированы все регистры дан­

158

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

ных, управления и статуса внутренних программируемых блоков вводавывода.

$FFFF

 

$FFFF

 

 

 

 

 

Внешнее

 

 

 

 

ОЗУ

 

 

Rash-память

 

данных

 

 

программ

$1000

(бООООКхв)

 

 

(64Кх 16)

 

 

 

$0FFF

Внутреннее

 

 

 

 

 

 

 

 

 

 

 

ОЗУ

Внутренняя

 

 

 

данных

 

 

$0060

EEPROM

 

 

(4000 x 8)

 

 

$005F

данных

 

 

64 регистра

 

 

 

 

 

$0020

ввода-вывода

 

$0000

 

 

32 POH

 

 

$0000 - 001F

 

 

 

Память программ

 

Память данных

Рис. 4.2. Организация памяти микроконтроллера АТтедаЮЗ

При использовании команд IN и OUT используются адреса вводавывода с $00 по $3F. Но к регистрам ввода-вывода можно обращаться и как к ячейкам внутреннего ОЗУ. При этом к непосредственному адресу ввода-вывода прибавляется $20.

R31

$ 1F

Старший байт регистра Z

R30

$ 1Е

Младший байт регистра Z

R29

$10

Старший байт регистра Y

R28

$1С

Младший байт регистра Y

R27

$1В

Старший байт регистра X

R26

$1А

Младший байт регистра X

R17

$11

 

R16

$10

 

R15

$0F

 

R14

$0Е

 

R13

$0D

 

R2

$02

 

R1

$01

 

R0

$00

 

Рис. 4.3. Регистры общего назначения микроконтроллера АТтедаЮЗ

Адрес регистра как ячейки ОЗУ приводится далее в круглых скоб­ ках. Регистры ввода-вывода с $00 ($20) по $1F ($3F) имеют программно доступные биты. Обращение к ним осуществляется командами SBI и

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]