AVR микроконтроллер AT90S2333 фирмы Atmel - Радиоэлектроника - Скачать бесплатно
Микроконтроллеры AT90S2333 и AT90S4433 фирмы Atmel
AT90S2333 и AT90S4433 - экономичные 8-битовые КМОП микроконтроллеры,
построенные с использованием расширенной RISC архитектуры AVR. Исполняя по
одной команде за период тактовой частоты, AT90S2333 и AT90S4433 имеют
производительность около 1MIPS на МГц, что позволяет разработчикам
создавать системы оптимальные по скорости и потребляемой мощности. В основе
ядра AVR лежит расширенная RISC архитектура, объединяющая развитый набор
команд и 32 регистра общего назначения. Все 32 регистра непосредственно
подключены к арифметико-логическому устройству (АЛУ), что дает доступ к
любым двум регистрам за один машинный цикл. Подобная архитектура
обеспечивает десятикратный выигрыш в эффективности кода по сравнению с
традиционными CISC микроконтроллерами. AT90S2333/4433 предлагают следующие
возможности: 2кБ/4кБ загружаемой флэш памяти; 128/256 байт EEPROM; 128 байт
статического ОЗУ, 20 линий ввода/вывода общего назначения; 32 рабочих
регистра; настраиваемые таймеры/счетчики с режимом совпадения; внешние и
внутренние прерывания; программируемый универсальный последовательный порт;
6-канальный 10-разрядный АЦП; программируемый сторожевой таймер со
встроенным генератором; SPI последовательный порт для загрузки программ;
два выбираемых программно режима низкого энергопотребления. Холостой режим
(Idle Mode) отключает ЦПУ, оставляя в рабочем состоянии регистры,
таймеры/счетчики, SPI порт и систему прерываний. Экономичный режим (Power
Down Mode) сохраняет содержимое регистров, но отключает генератор, запрещая
функционирование всех встроенных устройств до внешнего прерывания или
аппаратного сброса. Микросхемы производятся с использованием технологии
энергонезависимой памяти высокой плотности фирмы Atmel. Загружаемая флэш
память на кристалле может быть перепрограммирована прямо в системе через
последовательный интерфейс SPI или доступным программатором
энергонезависимой памяти. Объединяя на одном кристалле усовершенствованный
8-битовый RISC процессор с загружаемой флэш памятью, AT90S2333/4433
являются мощными микроконтроллерами, которые позволяют создавать достаточно
гибкие и эффективные по стоимости устройства. AT90S2333/4433 поддерживаются
полной системой разработки включающей в себя компиляторы Си,
макроассемблеры, программные отладчики/симуляторы, внутрисхемные эмуляторы
и отладочные комплекты.
|назначени|номер |номер |
|е вывода |вывода |вывода |
| | |PDIP |
|RESET |29 |1 |
|PD0/RXD |30 |2 |
|PD1/TXD |31 |3 |
|PD2/INT0 |32 |4 |
|PD3/INT1 |1 |5 |
|PD4/T0 |2 |6 |
|VCC |4 |7 |
|GND |5 |8 |
|XTAL1 |7 |9 |
|XTAL2 |8 |10 |
|PD5/T1 |9 |11 |
|PD6/AIN0 |10 |12 |
|PD7/AIN1 |11 |13 |
|PB0/ICP |12 |14 |
|PB1/OC1 |13 |15 |
|PB2/SS |14 |16 |
|PB3/MOSI |15 |17 |
|PB4/MISO |16 |18 |
|PB5/SCK |17 |19 |
|AVCC |18 |20 |
|AREF |20 |21 |
|AGND |21 |22 |
|PC0/ADC0 |23 |23 |
|PC1/ADC1 |24 |24 |
|PC2/ADC2 |25 |25 |
|PC3/ADC3 |26 |26 |
|PC4/ADC4 |27 |27 |
|PC5/ADC5 |28 |28 |
ОПИСАНИЕ ВЫВОДОВ
GND - земля
Port B (PB5..PB0) - Порт B является 6-битовым двунаправленным портом
ввода/вывода с внутренними подтягивающими резисторами. Выходные буферы
порта B могут поглощать ток до 20мА. Если выводы PB0..PB5 используются как
входы и извне устанавливаются в низкое состояние, они являются источниками
тока, если включены внутренние подтягивающие резисторы. Кроме того Порт B
обслуживает некоторые специальные функции, которые будут описаны ниже.
Port С (PС5..PС0) - Порт С является 6-битовым двунаправленным портом
ввода/вывода с внутренними подтягивающими резисторами. Выходные буферы
порта С могут поглощать ток до 20мА. Если выводы PС0..PС5 используются как
входы и извне устанавливаются в низкое состояние, они являются источниками
тока, если включены внутренние подтягивающие резисторы. Кроме того Порт С
обслуживает аналоговые входы АЦП.
Port D (PD5..PD0) - Порт D является 8-битовым двунаправленным портом
ввода/вывода с внутренними подтягивающими резисторами. Выходные буферы
порта B могут поглощать ток до 20мА. Если выводы PD0..PD7 используются как
входы и извне устанавливаются в низкое состояние, они являются источниками
тока, если включены внутренние подтягивающие резисторы. Кроме того Порт D
обслуживает некоторые специальные функции, которые будут описаны ниже.
RESET - Вход сброса. Удержание на входе низкого уровня в течение двух
машинных циклов (если работает тактовый генератор), сбрасывает ус-
тройство.
XTAL1 - Вход инвертирующего усилителя генератора и вход внешнего тактового
сигнала.
XTAL2 - Выход инвертирующего усилителя генератора.
AVCC - Вывод источника питания АЦП. Этот вывод через фильтр низкой частоты
должен быть подключен к выводу питания процессора.
AREF - Вход опорного напряжения АЦП. Напряжение, подаваемое на этот вывод
лежит в пределах 2.7В...AVCC.
AGND - Если плата имеет отдельный слой аналоговой земли, к нему
подключается этот вывод. В противном случае этот вывод соединяется с GND.
КВАРЦЕВЫЙ ГЕНЕРАТОР
XTAL1 и XTAL2 являются входом и выходом инвертирующего усилителя, на
котором можно собрать генератор тактовых импульсов. Можно использовать как
кварцевые, так и керамические резонаторы. Если сигнал генератора необходимо
использовать для управления внешними устройствами, сигнал с вывода XTAL2
снимается через одиночный буфер серии HC, при этом емкость конденсатора с
вывода на землю уменьшается на 5pF. При подаче внешнего тактового сигнала
вывод XTAL2 остается неподключенным, а XTAL1 подключается в выходу внешнего
генератора.
Обзор архитектуры процессоров.
Регистровый файл быстрого доступа содержит 32 8-разрядных регистра
общего назначения, доступ к которым осуществляется за один машинный цикл.
Поэтому за один машинный цикл исполняется одна операция АЛУ. Два операнда
выбираются из регистрового файла, выполняется операция, результат ее
записывается в регистровый файл - все за один машинный цикл.
Шесть из 32 регистров можно использовать как три 16-разрядных указателя
в адресном пространстве данных, что дает возможность использовать
высокоэффективную адресную арифметику (16-разрядные регистры X, Y и Z).
Один из трех адресных указателей (регистр Z) можно использовать для
адресации таблиц в памяти программ.
АЛУ поддерживает арифметические и логические операции c регистрами, с
константами и регистрами. Операции над отдельными регистрами также
выполняются в АЛУ.
Кроме регистровых операций, для работы с регистровым файлом могут
использоваться доступные режимы адресации, поскольку регистровый файл
занимает адреса 00h-1Fh в области данных, обращаться к ним можно как к
ячейкам памяти.
Пространство ввода/вывода состоит из 64 адресов для периферийных
функций процессора, таких как управляющие регистры , таймеры/счетчики и
другие. Доступ к пространству ввода/вывода может осуществляться
непосредственно, как к ячейкам памяти расположенным после регистрового
файла (20h- 5Fh).
Процессоры AVR построены по гарвардской архитектуре с раздельными
областями памяти программ и данных. Доступ к памяти программ
осуществляется при помощи одноуровнего буфера. Во время выполнения
команды, следующая выбирается из памяти программ. Подобная концепция дает
возможность выполнять по одной команде за каждый машинный цикл. Память
программ - это внутрисистемная загружаемая флэш-память.
При помощи команд относительных переходов и вызова подпрограмм
осуществляется доступ ко всему адресному пространству. Большая часть команд
AVR имеет размер 16-разрядов, одно слово. Каждый адрес в памяти программ
содержит одну 16- или 32-разрядную команду.
При обработке прерываний и вызове подпрограмм адрес возврата
запоминается в стеке. Стек размещается в памяти данных общего назначения,
соответственно размер стека ограничен только размером доступной памяти
данных и ее использованием в программе. Все программы пользователя должны
инициализировать указатель стека (SP) в программе выполняемой после сброса
(до того как вызываются подпрограммы и разрешаются прерывания). 8-разрядный
указатель стека доступен для чтения/записи в области ввода/вывода.
Доступ к статическому ОЗУ, регистровому файлу и регистрам ввода/вывода
осуществляется при помощи пяти доступных режимов адресации поддерживаемых
архитектурой AVR.
Все пространство памяти AVR является линейным и непрерывным. Гибкий
модуль прерываний имеет собственный управляющий регистр в
пространстве ввода/вывода, и флаг глобального разрешения прерываний в
регистре состояния. Каждому прерыванию назначен свой вектор в начальной
области памяти программ. Различные прерывания имеют приоритет в
соответствии с расположением их векторов. По младшим адресам расположены
векторы с большим приоритетом.
Файл регистров общего назначения
Все команды оперирующие регистрами прямо адресуются к любому из регистров
за один машинный цикл. Единственное исключение - пять команд оперирующих с
константами SBCI, SUBI, CPI, ANDI, ORI и команда LDI, загружающая регистр
константой. Эти команды работают только со второй половиной регистрового
файла - R16..R31. Команды SBC, SUB, CP, AND и OR, также как и все
остальные, применимы ко всему регистровому файлу.
Каждому регистру присвоен адрес в пространстве данных, они отображаются на
первые 32 ячейки ОЗУ. Хотя регистровый файл физически размещен вне ОЗУ,
подобная организация памяти дает гибкий доступ к регистрам. Регистры X, Y и
Z могут использоваться для индексации любого регистра. Кроме обычных
функций, регистры R26..R31 имеют дополнительные функции, эти регистры можно
использовать как адресные указатели в области памяти данных. Эти регистры
обозначаются как X,Y,Z и определены следующим образом:
| |15 |
|Регистр |0 |
|X | |
| |7 |7 |
| |0 |0 |
| |1Bh (R27) |1Ah (R26) |
| |15 |
|Регистр |0 |
|Y | |
| |7 |7 |
| |0 |0 |
| |1Dh (R29) |1Ch (R28) |
| |15 |
|Регистр |0 |
|Z | |
| |7 |7 |
| |0 |0 |
| |1Fh (R31) |1Eh (R30) |
При различных режимах адресации эти регистры могут использоваться как
фиксированный адрес, для адресации с автоинкрементом или с автодекрементом.
Арифметико-логическое устройство - АЛУ
АЛУ процессора непосредственно подключено к 32 регистрам общего
назначения. За один машинный цикл АЛУ производит операции между регистрами
регистрового файла. Команды АЛУ разделены на три основных категории -
арифметические, логические и битовые.
Загружаемая память программ.
AT90S2333/4433 содержат 2/4 кБ загружаемой флэш памяти для хранения
программ. Поскольку все команды занимают одно 16- или 32-разрядное слово,
флэш память организована как 1/2 Kx16. Флэш-память выдерживает не менее
1000 циклов перезаписи. Программный счетчик имеет ширину 10/11 бит и
позволяет адресоваться к 1024/2048 словам программной флэш-памяти.
Подробно загрузка флэш памяти будет рассмотрена дальше.
EEPROM память данных
AT90S2333/4433 содержат 128/256 байт электрически стираемой
энергонезависимой памяти (EEPROM). EEPROM организована как отдельная
область данных, каждый байт которой может быть прочитан и перезаписан.
EEPROM выдерживает не менее 100000 циклов записи/стирания. Доступ к
энергонезависимой памяти данных рассмотрен ниже и задается регистрами
адреса, данных и управления. Дальше будет рассмотрена загрузка данных в
EEPROM через SPI интерфейс.
Статическое ОЗУ данных
На рисунке приведенном ниже показана организация памяти данных в
AT90S2333/4433.
224 ячейки памяти включают в себя регистровый файл, память ввода/вывода и
статическое ОЗУ данных.
Первые 96 адресов используются для регистрового файла и памяти
ввода/вывода, следующие 128 - для ОЗУ данных.
При обращении к памяти используются пять различных режимов адресации:
прямой, непосредственный со смещением, непосредственный, непосредственный с
предварительным декрементом и непосредственный с постинкрементом. Регисты
R26..R31 регистрового файла используются как указатели для непосредственной
адресации. Прямая адресация имеет доступ ко всей памяти данных.
Непосредственная адресация со смещением используется для доступа к 63
ячейкам базовый адрес которых задается содержимым регистров Y или Z.
Для непосредственной адресации с инкрементом и декрементом адреса
используются адресные регистры X, Y и Z.
При помощи любого из этих режимов производится доступ ко всем 32 регистрам
общего назначения, 64 регистрам ввода/вывода и 128 ячейкам ОЗУ.
Время выполнения команд.
ЦПУ процессора AVR управляется системной частотой генерируемой внешним
резонатором. Внутреннее деление частоты генератора не используется. В
процессоре организован буфер (pipeline) команд, при выборе команды из
памяти программ происходит выполнение предыдущей команды. Подобная
концепция позволяет достичь быстродействия 1MIPS на MHz, уникальных
показателей стоимости, быстродействия и потребления процессора.
|Регистровый файл |Область адресов |
| |данных |
|R0 |00h |
|R1 |01h |
|: |: |
|R30 |1E |
|R31 |1F |
|Регистры | |
|вводавывывода | |
|00h |20h |
|01h |21h |
|: |: |
|3Eh |5Eh |
|3Fh |5Fh |
|- |Встроенное ОЗУ |
|- |61h |
|- |: |
|- |DEh |
|- |DFh |
Пространство ввода/вывода AT90S2333/4433
|Адреса|регист|название |функции |
| |ры | | |
|3Fh(5F|SREG |Status REGister |Регистр Состояния |
|h) | | | |
|3Dh(5D|SP |Stack pointer low |Указатель стека |
|h) | | | |
|3Bh(5B|GIMSK |General Interrupt MaSK |Общий регистр маски прерываний |
|h) | |register | |
|3Ah(5A|GIFR |General Interrupt Flag |Общий регистр флагов прерываний |
|h) | |Register | |
|39h(59|TIMSK |Timer/counter Interrupt |Регистр маски прерываний от |
|h) | |mask register |таймера/счетчика |
|38h(58|TIFR |Timer/counter Interrupt |Регистр флага прерывания |
|h) | |Flag register |таймера/счетчика |
|35h(55|MCUCR |MCU general Control |общий регистр управления |
|h) | |Register |микроконтроллером |
|34h(54|MCUSR |MCU Status Register |рег.состояния микроконтрол. |
|h) | | | |
|33h(53|TCCR0 |Timer/Counter 0 Control |Регистр управления таймером |
|h) | |Register |счетчиком 0 |
|32h(52|TCNT0 |Timer/Counter 0 (8-бит) |Таймер/счетчик 0 (8 бит) |
|h) | | | |
|2Fh(4F|TCCR1A|Timer/Counter 1 Control |Рег. A управления таймером |
|h) | |Register A |счетчиком 1 |
|2Eh(4E|TCCR1B|Timer/Counter 1 Control |Рег. B управления таймером |
|h) | |Register B |счетчиком 1 |
|2Dh(4D|TCNT1H|Timer/Counter 1 High byte |Таймер/счетчик 1 старший байт |
|h) | | |
|