Реферат: AVR микроконтроллер AT90S2333 фирмы Atmel
АЛУ процессора непосредственно подключено к 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) | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
I | T | H | S | V | N | Z | S | |
R\W | R\W | R\W | R\W | R\W | R\W | R\W | R\W | |
Начальное значение | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит 7 - I: Общее разрешение прерываний. Для разрешения прерываний этот бит должен быть установлен в единицу. Управление отдельными прерываниями производится регистрами маски прерываний - GIMSK и TIMSK. Если флаг сброшен (0), независимо от состояния GIMSK/TIMSK прерывания запрещены. Бит I очищается аппаратно после входа в прерывание и восстанавливается командой RETI, для разрешения обработки последующих прерываний.
Бит 6 - T: Хранение копируемого бита. Команды копирования битов BLD (Bit LoaD) и BST (Bit STore) используют этот бит как источник и приемник обрабатываемого бита. Бит из регистра регистрового файла может быть скопирован в T командой BST, бит T может быть скопирован в бит регистрового файла командой BLD.
Бит 5 - H: Флаг половинного переноса. Этот флаг индицирует перенос из младшей половины байта при некоторых арифметических операциях. Более подробно об этом можно прочитать в описании системы команд.
Бит 4 - S: бит знака, S = N XOR V. Бит S всегда равен исключающему ИЛИ между флагами N (отрицательный результат) и V (переполнение дополнения до двух). Более подробно об этом можно прочитать в описании системы команд.
Бит 3 - V: Флаг переполнения дополнения до двух. Этот флаг поддерживает арифметику с дополнением до двух. Более подробно об этом можно прочитать в описании системы команд.
Бит 2 - N: Флаг отрицательного результата. Этот флаг индицирует отрицательный результат различных арифметических и логических операций. Более подробно об этом можно прочитать в описании системы команд.
Бит 1 - Z: Флаг нулевого результата. Этот флаг индицирует нулевой результат различных арифметических и логических операций. Более подробно об этом можно прочитать в описании системы команд.
Бит 0 - C: Флаг переноса. Этот флаг индицирует перенос в арифметических и логических операциях. Более подробно об этом можно прочитать в описании системы команд.
Указатель стека SP
Этот 8-разрядный регистр с адресом 3Dh (5Dh) хранит указатель стека процессора. 8-ми разрядов достаточно, для адресации ОЗУ в пределах 60h -DFh.
3Dh(5Dh) | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
SP7 | SP6 | SP5 | SP4 | SP3 | SP2 | SP1 | SP0 | |
R\W |
R\W |
R\W |
R\W |
R\W |
К-во Просмотров: 631
Бесплатно скачать Реферат: AVR микроконтроллер AT90S2333 фирмы Atmel
|