Микроконтроллеры AVR: от простого к сложному - страница 5
Микроконтроллер AT90S2313 имеет следующие характеристики: 2 Кб загружаемой флэш-памяти; 128 байтов EEPROM; 15 линий ввода/вывода общего назначения; 32 рабочих регистра; два таймера/счетчика, один 8-разрядный, другой 16-разрядный; внешние и внутренние прерывания; встроенный последовательный порт; программируемый сторожевой таймер со встроенным генератором; последовательный порт SPI для загрузки программ; два выбираемых программно режима низкого энергопотребления.
Флэш-память на кристалле может быть перепрограммирована прямо в системе через последовательный интерфейс SPI.
2.1. Описание выводов
VCC — вывод источника питания.
GND — общий провод («земля»).
PORT В (РВ7…РВ0) — порт В является 8-битовым двунаправленным параллельным портом ввода/вывода с встроенными подтягивающими резисторами. У выводов порта предусмотрены внутренние подтягивающие резисторы (их можно включать или выключать для каждого бита отдельно). Выводы РВ0 и РВ1 также являются положительным (AIN0) и отрицательным (AIN1) входами встроенного аналогового компаратора. Выходные буферы порта В могут поглощать ток до 20 мА и непосредственно управлять светодиодными индикаторами. Это означает, что микроконтроллер способен управлять нагрузкой до 20 мА при состоянии логического 0 на выходе порта. Таким образом, для управления светодиодом его следует подсоединить одним выводом к выводу порта микроконтроллера, а другим — к напряжению питания +Vcc. Соответственно светиться светодиод (а значит, и потреблять ток) будет при значении 0 на соответствующей линии порта. Если выводы РВ0…РВ7 используются как входы и извне устанавливаются в низкое состояние, они являются источниками тока, если включены внутренние подтягивающие резисторы. Кроме того, порт В обслуживает некоторые специальные функции, которые будут описаны ниже.
PORT D (PD6…PD0) — порт D является 7-битовым двунаправленным параллельным портом ввода/вывода с встроенными подтягивающими резисторами. Выходные буферы порта D также могут поглощать ток до 20 мА. Как входы, установленные в низкое состояние, выводы порта D являются источниками тока, если задействованы подтягивающие резисторы. Кроме того, порт D обслуживает некоторые специальные функции, которые будут описаны ниже.
RESET — вход сброса. Удержание на входе низкого уровня в течение двух машинных циклов (если работает тактовый генератор), перезапускает микроконтроллер.
XTAL1 — вход инвертирующего усилителя генератора и вход внешнего тактового сигнала.
XTAL2 — выход инвертирующего усилителя генератора.
Рис. 2.1.Выводы микроконтроллера AT90S2313
Выводы XTAL1 и XTAL2 являются входом и выходом инвертирующего усилителя, на котором можно собрать генератор тактовых импульсов. Можно использовать как кварцевые, так и керамические резонаторы. Если нужно использовать внешний тактовый сигнал, он подается на вывод XTAL1, а вывод XTAL2 при этом остается неподключенным.
Рис. 2.2.Подключение кварцевого резонатора к микроконтроллеру
Рис. 2.3.Подключение внешнего источника тактовых импульсов
2.2. Обзор архитектуры AT90S2313
Регистровый файл микроконтроллера содержит 32 8-разрядных регистра общего назначения, доступ к которым осуществляется за один машинный цикл. Благодаря этому микроконтроллер может выполнить большинство команд за один цикл тактовой частоты.
АЛУ поддерживает арифметические и логические операции с регистрами, с константами и регистрами.
Кроме регистровых операций, для работы с регистровым файлом могут использоваться доступные режимы адресации, так как регистровый файл занимает адреса $00-$1F в области данных, обращаться к ним можно и как к ячейкам памяти.
Пространство ввода/вывода состоит из 64 адресов для периферийных функций процессора, таких, как управляющие регистры, таймеры/счетчики и др. Доступ к пространству ввода/вывода может осуществляться непосредственно как к ячейкам памяти, расположенным после регистрового файла ($20—$5F).
Большинство команд, использующих регистры, могут использовать любые регистры общего назначения. Исключение составляют пять команд, оперирующих с константами: SBCI, SUBI, CPI, ANDI, ORI и команда LDI, загружающая регистр константой. Эти команды работают только со второй половиной регистрового файла — R16…R31.