ÊÒÖ-ÌÊ
Порт C используется также как выходы адреса при использов ании внешней SRAM. Port D (PD7. .PD0) 8-разрядный двунаправленный порт I/O со встроенными нагрузочными резисторами. Выходные буферы обеспечивают втекающий ток 20 мА. При использовании выводов порта в качестве входов и устан овке внешним сигналом в низкое состояние, ток будет вытекать только при подключен ных встроенных нагрузочных
резисторах.
Port E (PE7..PE0) 8-разрядный двунаправленный порт I/O со встроенными нагрузочными резисторами. . Выходные буферы обеспечивают втекающий ток 20 мА. При использовании выводов порта в качестве входов и устан овке внешним сигналом в низкое состояние, вытекающий через них ток обеспечиваетс я только при подключенных встроенных нагрузочных резисторах.
Port F (PF7..PF0) 8-разрядный порт входа. Входы порта используются также как аналоговые входы аналого-цифрового преобразователя .
RESET Вход сброса. Для выполнения сброса необходимо удерживать низкий уровень на входе в течение двух машинных циклов.
XTAL1 Вход инвертирующего усилителя генератора и вход схемы встроенного генератора тактовой частоты.
XTAL2 Выход инвертирующего усилителя генератора.
TOSC1 Вход инвертирующего усилителя генератора таймера/счетчика. TOSC2 Выход инвертирующего усилителя генератора таймера/счетчика. WR Строб записи внешней SRAM.
RD Строб чтения внешней SRAM.
ALE Строб разрешения фиксации адреса, используемый для разре шении внешней памяти. Строб ALE используется для фиксации младшег о байта адреса в защелках адреса в течение первого цикла обращения, в тече ние второго цикла обращения, при обращении к данным, используются выводы AD0AD 7.
AVCC Напряжение питания аналого-цифрового преобразователя. В ывод подсоединяется к внешнему VCC через низкочастотный фильтр . Подробности см. на рис. 47.
AREF Вход аналогового напряжения сравнения для аналого-цифро вого преобразователя. На этот вывод, для обеспечения работы ан алого-цифрового преобразователя, подается напряжение в диапазоне между AG ND и AVCC.
AGND Этот вывод должен быть подсоединен к отдельной аналоговой земле, если плàòà оснащена ею. В ином случае вывод подсоединяетс я к общей земле.
PEN Вывод разрешения программирования в низковольтном последовательном режиме программирования. При удержании этого вывода на ни зком уровне во время сброса по включении питания, прибор перейдет в режим прог раммирования по последовательному каналу.
Тактовый генератор
XTAL1 и XTAL2 являются входом и выходом, соответственно, инвертиру ющего усилителя, который с использованием кварцевого кристалл а или керамического резонатора работает как встроенный генератор, как показа но на Рис. 2, При использовании внешнего источника тактовой частоты выво д XTAL2 должен остаться свободным, сигнал подается на вывод XTAL1, как показано на Рис. 3.
Кварцевый кристалл генератора таймера подсоединяется н епосредственно к выводам OSC1 и OSC2. Внешние конденсаторы не требуются. Генерато р оптимизирован под часовой кварц с частотой 32,768 КГц. Внешний тактовый сигнал,
5 9
ATMEL |
ÊÒÖ-ÌÊ |
подаваемый на эти выводы, поступает на усилитель с полосо й пропускания 256 КГц. Таким образом частота внешнего сигнала должна находитьс я в диапазоне от 0 до 256 КГц.
C2 |
NC |
XTAL2 |
|
XTAL2 |
|||
|
|
||
C1 |
СИГНАЛ |
XTAL1 |
|
ВНЕШНЕГО |
|||
XTAL1 |
|||
ГЕНЕРАТОРА |
|
||
|
|
||
GND |
|
GND |
|
|
|
||
Рис. 2 Подсоединение тактового |
Рис. 3 Подсоединение внешнего |
||
генератора. |
источника тактового сигнала |
||
Архитектура микроконтроллеров ATmega603/103
Файл регистров быстрого доступа, содержит 32 8-разрядных раб очих регистра общего назначения связанных непосредственно с ALU. За один т актовый цикл из файла регистров выбираются два операнда, выполняется операция и результат вновь возвращается в файл регистров.
Шесть из 32 регистров могут быть использованы как три 16-разр ядных регистра указателя косвенной адресации адресного пространства д анных, обеспечивающие эффективное вычисление адресов. Один из этих указателей а дреса используется, также, как указатель адреса для функции непрерывного просмотра таблиц. Эти 16-разрядные дополнительные регистры обозначаются X-регистр, Y-регистр и Z-регистр.
ALU поддерживает арифметические и логические операции меж ду регистрами или между константой и регистром. Выполняются в ALU и операц ии с отдельными регистрами. На Рис. 4 показана AVR расширенная RISC архитектура м икроконтроллеров ATmega603/103.
Âдополнение к операциям с регистрами, регистровый файл м ожет использоваться и для обычной адресации памяти. Это объясн яется тем, что файл регистров располагается по 32 самыми младшими адресами пространства данных, и к ним можно обращаться как к обычным ячейкам памяти.
Пространство памяти I/O содержит 64 адреса периферийных функ ций CPU таких как: регистры управления, таймеры/счетчики, аналого -цифровые преобразователи
èдругие I/O функции. К памяти I/O можно обращаться непосредств енно или как к ячейкам пространства памяти соответствующим адресам ре гистра файлов $20 - $5F. В микроконтроллерах AVR использованы принципы Гарвардской архитектуры - отдельные память и шины для программ и данных. При работе с памятью программ используется одноуровневый конвейер - в то время, как одна команда выполняется, следующая команда выбирается из памяти программ, Такой пр ием позволяет выполнять команду в каждом тактовом цикле. Памятью программ являетс я внутрисистемно программируемая Flash память. За малым исключением AVR команды имеют формат одного 16-разрядного слова, в связи с чем каждый адрес памят и программ содержит одну 16-разрядную команду.
Âпроцессе обработки прерываний и вызовов подпрограмм ад рес возврата счетчика команд (PC) сохраняется в стеке. Стек размещается в SRAM данных и, следовательно размер стека ограничен только общим разме ром SRAM и уровнем
6 0
ÊÒÖ-ÌÊ
ПАМЯТЬ
ПРОГРАММ 32K/64К х 16
РЕГИСТР
КОМАНД
ДЕКОДЕР
КОМАНД
ЛИНИИ
УПРАВЛЕНИЯ
8-разрядная шина данных |
|
||
СЧЕТЧИК |
|
СОСТОЯНИЕ И |
|
КОМАНД |
|
ТЕСТИРОВАНИЕ |
|
|
|
РЕГИСТРЫ |
|
|
|
ОБЩЕГО |
|
|
|
НАЗНАЧЕНИЯ |
ПЕРИФЕРИЯ |
адресация |
|
32 õ 8 |
|
адресация |
|
||
|
|
||
Непосредственная |
Косвенная |
ALU |
|
|
|
|
|
|
|
SRAM |
|
|
|
ДАННЫХ |
|
|
|
4K x 8 |
|
|
|
|
EEPROM |
|
|
|
2K/4K x 8 |
Рис. 4 AVR Enhanced RISC архитектура микроконтроллеров ATmega603/103
ее использования. Все пользовательские программы в подпр ограммах возврата (прежде, чем подпрограммы или прерывания будут выполняться) должн ы инициализировать указатель стека (SP). 16-разрядный указатель стека, с возможно стью чтения/записи располагается в пространстве I/O.
AVR архитектура поддерживает пять различных режимов адрес ации 4000 байт SRAM данных.
Гибкий модуль обработки прерываний имеет в пространстве I/O свой управляющий регистр с дополнительным битом разрешения г лобального прерывания в регистре статуса. Все прерывания имеют свои векторы преры вания в таблице векторов прерывания, располагаемой в начале памяти программ. Приор итеты прерываний соответствуют положению векторов прерываний - прерывани е с наименьшим адресом вектора имеет наивысший приоритет.
Все пространства памяти AVR архитектуры линейны и регулярн ы.
Файл регистров общего назначения
На Рис 5 представлена структура 32 регистров общего назначе ния.
Все регистровые команды обращаются непосредственно к ре гистрам в течение одного тактового цикла. Исключением являются пять логиче ских и арифметических операций с константами (SBCI, SUBI, CPI и ANDI) и операция ORI между константой и содержимым регистра, и команда непосредственной загрузк и константы LDI. Эти команды используют вторую половину регистров регистрового файл а - R16..R31.
Самые общие команды SBC, SUB, CP, AND и OR и все прочие операции между двумя регистрами или с одним регистром используют для зап иси результата регистровый файл.
Как показано на Рис. 5, каждому регистру соответствует адре с памяти данных, отображающий их в первых 32 ячейках пользовательского про странства данных. Хотя
6 1
ATMEL |
|
ÊÒÖ-ÌÊ |
||
|
7 |
0 Addr. |
||
|
R0 |
$00 |
||
|
|
|
|
|
|
R1 |
$01 |
||
|
|
|
|
|
|
R2 |
$02 |
||
|
… |
|
|
|
|
R13 |
|
$0D |
|
|
R14 |
|
$0E |
|
|
R15 |
|
$0F |
|
РЕГИСТРЫ |
R16 |
|
$10 |
|
R17 |
$11 |
|||
ОБЩЕГО |
||||
|
|
|
||
НАЗНАЧЕНИЯ |
… |
|
|
|
R26 |
$1A |
Младший байт регистра X |
|
|
Старший байт регистра X |
R27 |
$1B |
|
|
$1C |
Младший байт регистра Y |
R28 |
||
|
$1D |
Старший байт регистра Y |
R29 |
||
|
|
Младший байт регистра Z |
R30 |
$1E |
|
|
|
Старший байт регистра Z |
R31 |
$1F |
Рис. 5 Регистры общего назначения CPU микроконтроллеров AVR
они не используются как физические ячейки SRAM, такая органи зация памяти обеспечивает гибкое обращение к регистрам , поскольку X,Y и Z регистры могут быть использованы для индексации любого регистра в файле.
SRAM данных имеет объем 4 Кбайт и занимает адресное пространс тво от $0060 до $0FFF.
РЕГИСТР X, РЕГИСТР Y И РЕГИСТР Z
Шесть регистров (с R26 по R31) регистрового файла, кроме обычной для прочих регистров функций, выполняют функцию 16-разрядных регистр ов указателей адреса при косвенной адресации SRAM. Эти три регистра косвенной адр есации определяются как регистры X,Y и Z.
|
15 |
|
|
|
0 |
регистр X |
7 |
|
0 |
7 |
0 |
|
|
R27 |
($1B) |
|
R26 ($1A) |
|
15 |
|
|
|
0 |
регистр Y |
7 |
|
0 |
7 |
0 |
|
|
R29 |
($1D) |
|
R28 ($1C) |
|
15 |
|
|
|
0 |
регистр Z |
7 |
|
0 |
7 |
0 |
|
|
R31 |
($1F) |
|
R30 ($1E) |
Рис. 6 Регистры X,Y и Z.
В различных режимах адресации эти регистры выполняют фун кции фиксированного смещения, автоматического инкремента и декремента (см. оп исания команд).
6 2
ÊÒÖ-ÌÊ
ALU - Арифметико-логическое устройство
Высокопроизводительное AVR ALU соединено непосредственно со всеми 32 быстродействующими регистрами общего назначения. За оди н тактовый цикл ALU выполняет операцию между регистрами этого регистрового файла. Операции ALU подразделяются на три основные категории: арифметически е, логические и операции над битами.
Внутрисистемно программируемая Flash память программ
Коды программ микроконтроллеров ATmega603/103 записываются в 64/128 Кбайт встроенной внутрисистемно программируемой Flash памя ти. Поскольку все команды имеют формат одного или двух 16-разрядных слов, то и память программ имеет организацию 32/64Кx16. Flash память обеспечивает не менее 1000 ци клов стирания/записи.
Таблицы констант могут быть размещены в любом месте всего пространства памяти программ (см. описания команд LPM (Load Program Memory) - Загрузить ба йт памяти программ и ELPM (Extended Load Program Memory) - Загрузить байт памяти программ в расширенном режиме).
Конфигурация памяти
Микроконтроллеры ATmega603/103 поддерживают две конфигурации, как показано в таблице 2.
Таблица 2 Конфигурация памяти
Конфигурация |
Встроенная SRAM данных |
Внешняя SRAM данных |
|
A |
4000 |
áàéò |
Íåò |
|
|
|
|
B |
4000 |
áàéò |
До 64Кбайт (1) |
Примечание 1. Из 64 Кбайт внешней памяти будут доступны 60 Кбай т.
По первым 4096 адресам памяти данных размещаются регистровы й файл, пространство памяти I/O и встроенная SRAM данных. Из них первые 96 адресов занимают регистровый файл и пространство памяти I/O, в следу ющих 4000 адресов размещается встроенная SRAM.
Конфигурация памяти А |
|
|
Конфигурация памяти B |
|
|||||||||||||||
Память программ |
|
|
|
|
Память программ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$0000 - $001F |
|
$0000 |
32 регистра |
$0000 - $001F |
|
$0000 |
|
32 регистра |
|
|||||||||||
|
|
64 регистра I/O |
$020 - $005F |
|
|
|
64 регистра I/O |
$020 - $005F |
|||||||||||
FLASH память |
|
Встроенная |
$0060 |
|
FLASH память |
|
Встроенная |
$0060 |
|||||||||||
|
|
|
|
|
|||||||||||||||
|
SRAM |
|
|
|
|
|
SRAM |
|
|||||||||||
прграмм |
|
|
|
прграмм |
|
|
|
|
|
||||||||||
|
(4000 õ 8) |
$0FFF |
|
|
(4000 õ 8) |
|
|
|
$0FFF |
||||||||||
(32Ê/64Ê õ 16) |
|
|
(32Ê/64Ê õ 16) |
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
Внешняя |
$1000 |
|||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
SRAM |
|
||||||||
|
|
|
|
|
|
|
(0 - 64Ê õ 8) |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$7FFF |
|
|
$7FFF |
|
|
|
|
|
|
|
|
|
|
|
|
$FFFF |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
$FFFF |
|
|
$FFFF |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 7. Конфигурация памяти
6 3