Мегаобучалка Главная | О нас | Обратная связь


Загружаемая память программ.



2019-10-11 197 Обсуждений (0)
Загружаемая память программ. 0.00 из 5.00 0 оценок




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) пространства ввода/вывода и определен следующим образом:

 

Fh(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 R\W R\W R\W
Начальное значение 0 0 0 0 0 0 0 0

 

Указатель стека указывает на область памяти в которой расположен стек вызова подпрограмм и прерваний. Область стека в ОЗУ должна быть задана до того как произойдет любой вызов подпрограммы или будут раз­решены прерывания. Указатель стека уменьшается на 1 при записи данных в стек командой PUSH и уменьшается на 2 при вызове подпрограммы коман­дой CALL или обработке прерывания. Указатель стека увеличивается на 1 при выборе данных из стека командой POP и увеличивается на 2 при вы­полнении команд возврата из подпрограммы или обработчика прерывания (RET или RETI).

 

***Стек процессора работает с предварительным инкрементом и постдекрементом



2019-10-11 197 Обсуждений (0)
Загружаемая память программ. 0.00 из 5.00 0 оценок









Обсуждение в статье: Загружаемая память программ.

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Почему стероиды повышают давление?: Основных причин три...
Почему молоко имеет высокую усвояемость?
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (197)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)