Микроконтроллеры семейства AVR подразделяются на 3 группы:
- Classic AVR;
- Tiny AVR;
- Mega AVR.
Примечание. Микроконтроллеры типа Classic AVR сняты с производства, поэтому корпорация Atmel не рекомендует использовать данные микроконтроллеры в новых разработках
Принадлежность МК к той или иной группе определяется его аппаратными возможностями: объемом внутренней памяти программ и данных, наличием АЦП, объемом EEPROM, количеством и разрядностью таймеров-счетчиков, возможностями модуля UART и т.д.
Обобщенная структурная схема MK AVR приведена на рис. 10.5.
Файл регистров общего назначения. Все оперирующие регистрами команды в наборе команд прямо адресуются к любому из регистров за один машинный цикл. Единственное исключение – пять команд, оперирующих с константами: SBCI, SUBI, CPI, ANDI, ORI – и команда LDI, загружающая регистр константой. Эти команды работают только со второй половиной регистрового файла – R16-R31. Команды SBC, SUB, CP, AND и OR, как и все остальные, работают со всем регистровым файлом.
Регистр R30 также используется как 8-разрядный указатель для непосредственной адресации регистрового файла.
|
|
Арифметико-логическое устройство (АЛУ) процессора непосредственно подключено к 32 регистрам общего назначения. За один машинный цикл АЛУ производит операции между регистрами регистрового файла. Команды АЛУ разделены на три основных категории – арифметические, логические и битовые. Некоторые микроконтроллеры семейства AVR имеют аппаратный умножитель в арифметической части АЛУ.
Загружаемая память программ
Память программ содержит (в зависимости от разновидности МК) от 1К до 128К загружаемой флэш-памяти для хранения программ. Поскольку все команды занимают одно 16-разрядное слово, флэш-память организована как 512 16-разрядных слов. Флэш-память выдерживает не менее 1000 циклов перезаписи.
Программный счетчик имеет ширину 9 бит и таким образом адресуется к 512 словам программной флэш-памяти. Подробно загрузка флэш-памяти будет рассмотрена дальше.
Рис. 10.5. Обобщенная структурная схема MK AVR