ÊÒÖ-ÌÊ
EEPROM память данных
EEPROM память данных организована как отдельное пространство данных с возможность считывания и записи отдельного байта. EEPROM обес печивает 100000 циклов стирания/записи. Взаимодействие между EEPROM и CPU опреде ляется регистром адреса EEPROM, регистром данных EEPROM и регистром управления EEPROM.
Время обращения к памяти и тактирование выполнения команд
В данном разделе описаны основные принципы тактирования обращений при выполнении команд и обращений к встроенной памяти.
AVR CPU тактируется системным тактовым сигналом System Clock O, формируемым посредством внешнего кварцевого кристалла. Внутреннее деление не используется.
На Рис.20 представлен процесс параллельных выборки и выпол нения команд, обеспечиваемые Гарвардской архитектурой, и концепция ре гистрового файла быстрого доступа. Это базовый принцип конвейерной обработки, обесп ечивающий удельную производительность 1 MIPS/МГц при соответствующих результат ах стоимости функции, количества функций на один такт и количества функций на е диницу потребляемой мощности.
T1 |
T2 |
T3 |
T4 |
System Clock O
Выборка 1-й команды
Выполнение 1-й команды Выборка 2-й команды
Выполнение 2-й команды Выборка 3-й команды
Выполнение 3-й команды Выборка 4-й команды
Рис. 20 Параллельные выборка и выполнение команд
На Рис. 21 представлен принцип внутреннего тактирования ре гистрового файла. В течение одного тактового цикла выполнения операции ALU ис пользует два операнда регистров и результат возвращает в регистр назначения
T1 |
T2 |
T3 |
T4 |
System Clock O
Выборка 1-й команды
Выполнение 1-й команды Выборка 2-й команды
Выполнение 2-й команды Выборка 3-й команды
Выполнение 3-й команды Выборка 4-й команды
Рис.21 Одноцикловая работа ALU
6 9
ATMEL |
ÊÒÖ-ÌÊ |
На Рис. 22 показано обращение к встроенной SRAM данных за два та ктовых цикла.
T1 |
T2 |
T3 |
T4 |
System Clock O |
|
|
|
ALE |
|
|
|
Адрес [15..8] Предшеств. Адрес |
Адрес |
|
|
Данные/Адрес [7..0] Предшеств. Адрес |
Адрес |
Данные |
Адрес |
WR |
|
|
|
Данные/Адрес [7..0] Предшеств. Адрес |
Адрес |
Данные |
Адрес |
RD |
|
|
|
Чтение Запись
Рис. 22 Циклы обращения к внешней SRAM данных без состояния ожидания (Wait State)
На Рис. 23 показано обращение к внешней SRAM данных при установ ленном бите состояния ожидания (Wait State active).
T1 |
|
T2 |
T3 |
T4 |
System Clock O |
|
|
|
|
ALE |
|
|
|
|
Адрес [15..8] Предшеств. Адрес |
|
Адрес |
|
|
Данные/Адрес [7..0] Предшеств. Адрес |
|
Адрес |
Данные |
Адрес |
WR |
|
|
|
|
Данные/Адрес [7..0] Предшеств. Адрес |
Адрес |
|
Данные |
Адрес |
RD |
|
|
|
|
|
|
|
tRLRH |
|
Чтение Запись
Рис. 23 Циклы обращения к внешней SRAM данных с состоянием ожидания
7 0
ÊÒÖ-ÌÊ
Память ввода/вывода (I/O)
Описание пространства I/O микроконтроллеров ATmega603/103 представ лено в Табл. 3
Таблица 3. Пространство I/O микроконтроллеров ATmega603/103
Адрес I/O |
Обозначение |
Функция |
(адрес SRAM) |
|
|
$3F ($5F) |
SREG |
Регистр статуса (Status REGister) |
$3E ($5E) |
SPH |
Верхний байт указателя стека (Stack Pointer High) |
$3D ($5D) |
SPL |
Нижний байт указателя стека (Stack Pointer Low) |
$3C ($5C) |
XDIV |
Регистр управления делением тактовой частоты (XTAL Divide |
|
|
Control Register) |
$3B $5B) |
RAMPZ |
Регистр выбора страницы Z RAM (RAM Page Z Select Register) |
$3A ($5A) |
EICR |
Регистр управления внешними прерываниями (External Interrupt |
|
|
Control Register) |
$39 ($59) |
EIMSK |
Регистр масок внешних прерываний (External Interrupt MaSK |
|
|
register) |
$38 ($58) |
EIFR |
Регистр флагов внешних прерываний (External Interrupt Flag |
|
|
Register) |
|
|
|
$37 ($57) |
TIMSK |
Регистр масок прерываний по таймерам/счетчикам (Timer/ |
Counter |
|
Interrupt MaSK register) |
$36 ($56) |
TIFR |
Регистр флагов прерывания по таймерам/счетчикам (Timer/ |
|
|
Counter Interrupt Flag register) |
$35 ($55) |
MCUCR |
Регистр управления MCU (MCU General Control Register) |
$34 ($54) |
MCUSR |
Регистр статуса MCU (MCU Status Register) |
$33 ($53) |
TCCR0 |
Регистр управления таймером/счетчиком 0 (Timer/Counter0 |
|
|
Control Register) |
$32 ($52) |
TCNT0 |
Таймер/счетчик0 (Timer/Counter0 (8-bit)) |
$31 ($51) |
OCR0 |
Регистр сравнения выхода таймера/счетчика 0 (Timer/Counter0 |
|
|
Output Compare Register) |
$30 ($50) |
ASSR |
Регистр статуса асинхронного режима (Asynchronous Mode |
|
|
Status Register) |
|
|
|
$2F ($4F) |
TCCR1A |
Управляющий регистр A таймера/счетчика 1 (Timer/Counter1 |
|
|
Control Register A) |
$2E ($4E) |
TCCR1B |
Управляющий регистр B таймера/счетчика 1 (Timer/Counter1 |
|
|
Control Register A) |
|
|
|
$2D ($4D) |
TCNT1H |
Старший байт таймера/счетчика 1 (Timer/Counter1 High Byte) |
$2C ($4C) |
TCNT1L |
Младший байт таймера/счетчика 1 (Timer/Counter1 Low Byte) |
|
|
|
$2B ($4B) |
OCR1AH |
Старший байт регистра A сравнения выхода таймера/счетчика |
|
|
1 (Timer/Counter1 Output Compare Register A High Byte) |
$2A ($4A) |
OCR1AL |
Младший байт регистра A сравнения выхода таймера/ |
|
|
счетчика 1 (Timer/Counter1 Output Compare Register A Low Byte) |
$29 ($49) |
OCR1BH |
Старший байт регистра B сравнения выхода таймера/счетчика |
|
|
1 (Timer/Counter1 Output Compare Register B High Byte) |
$28 ($48) |
OCR1BL |
Младший байт регистра B сравнения выхода таймера/счетчика |
|
|
1 (Timer/Counter1 Output Compare Register B Low Byte) |
|
|
|
$27 ($47) |
ICR1H |
Старший байт регистра захвата таймера/счетчика 1 |
|
|
(Timer/Counter1 Input Capture Register High Byte) |
|
|
|
7 1
ATMEL |
|
ÊÒÖ-ÌÊ |
|
|
|
$26 ($46) |
ICR1L |
Младший байт регистра захвата таймера/счетчика 1 |
|
|
(Timer/Counter1 Input Capture Register Low Byte) |
|
|
|
$25 ($45) |
TCCR2 |
Регистр управления таймером/счетчиком 2 (Timer/Counter2 |
|
|
Control Register) |
$24 ($44) |
TCNT2 |
Таймер/счетчик 2 (Timer/Counter2 (8-bit)) |
$23 ($43) |
OCR2 |
Регистр сравнения выхода таймера/счетчика 2 (Timer/Counter2 |
|
|
Output Compare Register) |
$21 ($41) |
WDTCR |
Регистр управления сторожевым таймером (Watchdog Timer |
|
|
Control Register) |
$1F ($3F) |
EEARH |
Старший байт регистра адреса EEPROM (EEPROM Address |
|
|
Register High) |
$1E ($3E) |
EEARL |
Младший байт регистра адреса EEPROM (EERPOM Address |
|
|
Register Low) |
|
|
|
$1D ($3D) |
EEDR |
Регистр данных EEPROM (EEPROM Data Register) |
$1C ($3C) |
EECR |
Регистр управления EEPROM (EEPROM Control Register) |
$1B ($3B) |
PORTA |
Регистр данных порта A (Data Register, Port A) |
|
|
|
$1A ($3A) |
DDRA |
Регистр направления данных порта A (Data Direction Register, |
|
|
Port A) |
$19 ($39) |
PINA |
Выводы входов порта A (Input Pins, Port A) |
$18 ($38) |
PORTB |
Регистр данных порта B (Data Register, Port B) |
$17 ($37) |
DDRB |
Регистр направления данных порта B (Data Direction Register, |
|
|
Port B) |
$16 ($36) |
PINB |
Выводы входов порта B (Input Pins, Port B) |
$15 ($35) |
PORTC |
Регистр данных порта C (Data Register, Port C) |
|
|
|
$12 ($32) |
PORTD |
Регистр данных порта D (Data Register, Port D) |
$11 ($31) |
DDRD |
Регистр направления данных порта D (Data Direction Register, |
|
|
Port D) |
|
|
|
$10 ($30) |
PIND |
Выводы входов порта D (Input Pins, Port D) |
$0F ($2F) |
SPDR |
Регистр данных SPI I/O (SPI I/O Data Register) |
$0E ($2E) |
SPSR |
Регистр статуса SPI (SPI Status Register) |
$0D ($2D) |
SPCR |
Регистр управления SPI (SPI Control Register) |
$0C ($2C) |
UDR |
Регистр данных UART I/O (UART I/O Data Register) |
$0B ($2B) |
USR |
Регистр статуса UART (UART Status Register) |
$0A ($2A) |
UCR |
Регистр управления UART (UART Control Register) |
$09 ($29) |
UBRR |
Регистр управления скоростью UART (UART Baud Rate Register) |
$08 ($28) |
ACSR |
Регистр статуса и управления аналогового компаратора |
|
|
(Analog Comparator Control and Status Register) |
$07 ($27) |
ADMUX |
Регистр выбора мультиплексора ADC (ADC Multiplexer Select |
|
|
Register) |
|
|
|
$06 ($26) |
ADCSR |
Регистр статуса и управления ADC (ADC Control and Status |
|
|
Register) |
$05 ($25) |
ADCH |
Старший байт регистра данных ADC (ADC Data Register High) |
$04 ($24) |
ADCL |
Младший байт регистра данных ADC (ADC Data Register Low) |
|
|
|
$03 ($23) |
PORTE |
Регистр данных порта E (Data Register, Port E) |
$02 ($22) |
DDRE |
Регистр направления данных порта E (Data Direction Register, |
|
|
Port E) |
|
|
|
$01 ($21) |
PINE |
Выводы входов порта E (Input Pins, Port E) |
$00 ($20) |
PINF |
Выводы входов порта F (Input Pins, Port F) |
|
|
|
7 2
ÊÒÖ-ÌÊ
Примечания: Зарезервированные и не используемые ячейки в таблице не показаны. Все средства I/O и периферии микроконтроллеров ATmega 603/103 размещены в пространстве I/O. При использовании IN и OUT использ уются адреса регистров I/O с $00 по $3F. Поскольку регистры I/O представлены в адр есном пространстве SRAM, то к ним можно адресоваться как к обычным я чейкам SRAM с адресами с $20 по $5F. Адрес SRAM получается простым добавлением $20 к непосредственному адресу I/O. Адрес SRAM, по всему документу, пр иведен в круглых скобках после непосредственного адреса I/O. Регистры I/O, в пре делах адресов от $00 ($20) до $1F ($3F), по-битово адресуются командами SBI и CBI. Состояние к аждого отдельного бита этих регистров может быть проверено кома ндами SBIS и SBIC. Более подробное описание приведено в разделе Система команд.
Различия в регистрах управления I/O и периферией подробно р ассмотрены в следующем разделе.
РЕГИСТР СТАТУСА - SREG
Регистр статуса - SREG - размещен в пространстве I/O по адресу $3F ($5F ) и его биты определяются как:
Áèòû |
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
$3F ($5F) |
|
I |
T |
H |
S |
V |
N |
Z |
C |
REG |
Чтение/Запись |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
|
|
Начальное состояние |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
• Bit 7 - I: Global Interrupt Enable - Разрешение глобального прерывания
Бит разрешения глобального прерывания для разрешения пр ерывания должен быть установлен в состояние 1. Управление разрешением конкретн ого прерывания выполняется регистрами маски прерывания GIMSK и TIMSK. Если бит гл обального прерывания очищен (в состоянии 0), то ни одно из разрешений к онкретных прерываний, установленных в регистрах GIMSK и TIMSK, не действует. Бит I аппарат но очищается после прерывания и устанавливается для последующего раз решения глобального прерывания командой RETI.
• Bit 6 - T: Bit Copy Storage - Бит сохранения копии
Команды копирования бита BLD (Bit LoaD) и BST (Bit STore) используют бит T как б ит источник и бит назначения при операциях с битами. Командо й BST бит регистра регистрового файла копируется в бит T, командой BLD бит T копир уется в регистр регистрового файла.
• Bit 5 - H: Half Carry Flag - Флаг полупереноса
Флаг полупереноса указывает на полуперенос в ряде арифме тических операций. Более подробная информация приведена в описании системы команд.
• Bit 4 - S: Sign Bit, S = N
V - Бит знака
Бит S всегда находится в состоянии, определяемом логическ им исключающим ИЛИ (exclusive OR) между флагом отрицательного значения N и дополнением до двух флага переполнения V. Более подробная информация приведена в оп исании системы команд.
•Bit 3 - V: Two’s Complement Overflow Flag - Дополнение до двух флага переполнения
Дополнение до двух флага V поддерживает арифметику дополн ения до двух. Более подробная информация приведена в описании системы коман д.
•Bit 2 - N: Negative Flag -Флаг отрицательного значения
Флаг отрицательного значения N указывает на отрицательны й результат ряда
7 3