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 подключается в выходу внешнегогенератора.
Обзор архитектуры процессоров.
Регистровый файл быстрого доступа содержит 328-разрядных регист­ра общего назначения, доступ к которым осуществляется заодин машинный цикл. Поэтому за один машинный цикл исполняется одна операцияАЛУ. Два операнда выбираются из регистрового файла, выполняется операция, ре­зультатее записывается в регистровый файл — все за один машинный цикл.
Шесть из 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 и определеныследующим образом:
Регистр X
15                                                             0
7                           0
7                          0
1Bh(R27)
1Ah(R26)
Регистр Y
15                                                             0
7                           0
7                          0
1Dh(R29)
1Ch(R28)
Регистр Z
15                                                             0
7                           0
7                          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(5Fh)
SREG
Status REGister
РегистрСостояния
 
 
3Dh(5Dh)
SP
Stack pointer low
Указатель стека
 
3Bh(5Bh)
GIMSK
General Interrupt MaSK register
Общий регистр маски прерываний
 
3Ah(5Ah)
GIFR
General Interrupt Flag Register
Общий регистр флагов прерываний
 
39h(59h)
TIMSK
Timer/counter Inter­rupt mask register
Регистр маски прерываний от таймера/счетчика
 
38h(58h)
TIFR
Timer/counter Inter­rupt Flag register
Регистр флага прерывания таймера/счетчика
 
 
35h(55h)
MCUCR
MCU general Control Register
общий регистр управления микроконтроллером
 
34h(54h)
MCUSR
MCU Status Register
рег.состояния микроконтрол.
 
33h(53h)
TCCR0
Timer/Counter 0 Control Register
Регистр управления таймером счетчиком 0
 
32h(52h)
TCNT0
Timer/Counter 0 (8-бит)
Таймер/счетчик 0 (8 бит)
 
2Fh(4Fh)
TCCR1A
Timer/Counter 1 Control Register A
Рег. A управления таймером счетчиком 1
 
2Eh(4Eh)
TCCR1B
Timer/Counter 1 Control Register B
Рег. B управления таймером счетчиком 1
 
2Dh(4Dh)
TCNT1H
Timer/Counter 1 High byte
Таймер/счетчик 1 старший байт
 
2Ch(4Ch)
TCNT1L
Timer/Counter 1 Low byte
Таймер/счетчик 1 младший байт
 
2Bh(4Bh)
OCR1H
Output Compare Register 1 high byte
Выход регистра совпаден. 1 старший байт
 
2Ah(4Ah)
OCR1L
Output Compare Register 1 low byte
Выход регистра совпаден. 1 младший байт
 
27h(47h)
ICR1H
T/C 1 Input Cupture Re­gister High Byte
Регистр захвата ТС 1 старший байт
 
26h(46h)
ICR1L
T/C 1 Input Cupture Re­gister Low  Byte
Регистр захвата ТС 1 младший байт
 
21h(41h)
WDTCR
Watchdog Timer Control Register
Регистр управления сторо­жевым таймером
 
1Eh(3Eh)
EEAR
EEPROM Address Register
Регистр адреса энергонеза­висимой памяти
 
1Dh(3Dh)
EEDR
EEPROM Data Register
Регистр данных энергонеза­висимой памяти
 
1Ch(3Ch)
EECR
EEPROM Control Register
Регистр управления энерго­независимой памяти
 
18h(38h)
PORTB
Data Register, Port B
Регистр данных порта B
 
17h(37h)
DDRB
Data Direction Register Port B
Регистр направления данных порта B
 
16h(36h)
PINB
Input pins, Port B
Выводы порта B
15h(35h)
PORTС
Data Register, Port С
Регистр данных порта С
 
14h(34h)
DDRС
Data Direction Register Port С
Регистр направления данных порта С
 
13h(33h)
PINС
Input pins, Port С
ВыводыпортаС
 
12h(32h)
PORTD
Data Register, Port D
РегистрданныхпортаD
 
11h(31h)
DDRD
Data Direction Register Port D
Регистр направления данных порта D
 
10h(30h)
PIND
Input pins, Port D
ВыводыпортаD
 
0Fh(2Fh)
SPDR
SPI I/O Data Register
РегистрданныхпортаSPI
 
0Eh(2Eh)
SPSR
SPI Status Register
Регистрсостоян. портаSPI
 
0Dh(2Dh)
SPCR
SPI Control Register
Региструправл.портаSPI
 
0Ch(2Ch)
UDR
UART Data Register
Регистрданныхпоследова­тельногопорта
 
0Bh(2Bh)
USR
UART Status Register
Регистрсостоянияпоследо­вательногопорта
 
0Ah(2Ah)
UCR
UART Control Register
Региструправленияпоследо­вательногопорта
 
09h(29h)
UBRR
UART Baud Rate Register
Регистрскоростипоследо­вательногопорта
 
08h(28h)
ACSR
Analog Comparator Cont­rol and Status Register
Регистр управления и состо­яния аналогового компарат.
 
07h(27h)
ADMUX
ADC multiplexer Select register
РегистркоммутатораАЦП
 
06h(26h)
ADCSR
ADC Control and Status Register
Регистр управления и состо­яния АЦП
 
05h(25h)
ADCH
ADC data register High
РегданныхАЦП(старш.)
 
04h(24h)
ADCL
ADC data register Low
РегданныхАЦП(младш.)
 
03h(23h)
UBRRHI
UART Baud Rate Register HIgh
Регистр скорости последо­вательного порта (старш.)
 
Примечание: зарезервированные и неиспользуемые ячейки не показаны
Все устройства ввода/вывода и периферийные устройства процессорарасполагаются в пространстве ввода/вывода. Различные ячейки этого про­странствадоступны через команды IN и OUT, пересылающие данные между одним из 32-хрегистров общего назначения и пространством ввода/вывода. К регистрам 00h..1Fhможноосуществлять побитовый доступ командами SBI и CBI. Значение отдельного битаэтих регистров можно проверить командами SBIC и SBIS. Дополнительную информациюпо этому вопросу мож­но найти в описании системы команд.
При использовании специальных команд IN, OUT, SBIS и SBIC, должныиспользоваться адреса $00..$3F. При доступе к регистру ввода/вывода как кячейке ОЗУ, к его адресу необходимо добавить $20. В приведенной выше таблицеадреса регистров в памяти данных приведены в скобках. Для совместимости сдругими устройствами при доступе к зарезерви­рованным битам в них должензаписываться ноль, зарезервированные адре­са в пространстве ввода/вывода недолжны записываться
Регистр состояния – SREG 3Fh(5Fh)
Регистр состояния расположен по адресу 3Fh(5Fh) пространстваввода/вывода и определен следующим образом:
    3Fh(5Fh)