Микроконтроллеры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 Interrupt mask register
Регистр маски прерываний от таймера/счетчика
38h(58h)
TIFR
Timer/counter Interrupt 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 Register High Byte
Регистр захвата ТС 1 старший байт
26h(46h)
ICR1L
T/C 1 Input Cupture Register 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 Control 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)