Смекни!
smekni.com

AVR микроконтроллер AT90S2333 фирмы Atmel (стр. 2 из 22)

Доступ к статическому ОЗУ, регистровому файлу и регистрам вво­да/вывода осуществляется при помощи пяти доступных режимов адресации поддерживаемых архитектурой 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

Регистр скорости последо­вательного порта (старш.)

Примечание: зарезервированные и неиспользуемые ячейки не показаны