Общая характеристика и функциональный состав микроконтроллера АТМеgа 128, страница 2

Адрес

7

0

3E (5Е)

SPH

7

0

3D(5D)

SPL

I/O (ОЗУ)

Область стека должна быть определена программно (т.е. запрограммированы регистры SPH и SPL) до вызова любой подпрограммы или разрешения прерываний.

2. Организация памяти

АТМеgа 128 имеет три вида памяти: флэш-память программ; внутренне ОЗУ; внутреннее ПЗУ.

2.1 Память программ

Емкость внутренней электрически программируемой флэш-памяти программ составляет 128 Кбайт. Поскольку все AVR инструкции являются 16 или 32-разрядными, то флэш-память организованна как 64 Кбайта*16 с диапазоном адресов 0000 .. FFFF (Н).

2.2 Статическое ОЗУ памяти данных

Конфигурация ОЗУ памяти данных имеет вид:

Адрес порта

Адрес ОЗУ

32 РОН

0000..001F(H)

00..3F(Н)

64 регистра

ввода/вывода

0020..005F(H)

160 расширенных

регистров В/В

0060..00FF(H)

Внутреннее

 СОЗУ

(4096*8)

0100

.

.

10FF(H)

Внешнее

СОЗУ

(0..64К*8)

1100(H)

.

.

FFFF(H)

Для управления большим числом периферийных устройств используется 64 ячейки с адресами 20 .. 5F (Н) и 160 ячеек с адресами 60 .. FF(Н), определенные как регистры ввода-вывода. Обращение к первым 64 из них может вестись как к ячейкам памяти с адресами 20 .. 5F (Н) или портам ввода-вывода с адресами 00 .. 3F (Н). В последнем случае используются команды ввода-вывода IN и OUT. К расширенным 160 регистрам ввода-вывода можно обращаться только как к ячейкам памяти.

Назначение регистров ввода-вывода будет рассматриваться по необходимости, при изучении соответствующих периферийных устройств. В частности, нами уже рассмотрены регистр состояния SREG адрес (3F(5F)) и указатель стека SPH+SPL адреса (3Е(5Е)+3D(5D)).

2.3 Электрически стираемая память данных ПЗУ

АТМеgа 128 содержит 4 Кбайт памяти данных в электрически стираемой постоянной памяти (ЕЕPROM). Она организованна как отдельная область памяти данных, в которой один байт может быть записан или считан.

При записи и чтении ячеек ЕЕPROM используется четыре управляющих регистра:

Два адресных:

Адреса

EEARH – старший байт адреса ячейки

1F/3F

EEARL – младший байт адреса ячейки

1E/3E

I/O/MEM

Регистр данных:

Адреса

EEDR – содержит байт данных записываемых или считанных в/щ ячейки  ЕЕPROM

1D/3D

I/O/MEM

Регистр управления ПЗУ: EECR

7

3

2

1

0

Адрес

--

--

--

--

EERIE

EEMWE

EEWE

EERE

EECR

1C/3C

I/O/MEM

Бит EERIE=1 разрешает прерывание по готовности ЕЕPROM. Прерывание генерируется, если бит EEWE сброшен.

(Обработка прерываний возможна, если бит I в регистре SREG равен 1).

Бит EEМWE=1 – разрешает установку бита EEWE. Автоматически сбрасывается через 4 такта.

Бит EEWE=1 - инициирует запись данных из регистра EEDR в ячейку ЕЕPROM с адресом из регистров EEARH и EEARL.

Алгоритм записи в ПЗУ:

1. Ожидание, пока бит EEWE станет равен 0;

2. Запись адреса в регистр EEAR;

3. Запись данных в регистр EEDR;

4. Запись 1 в бит EEМWE регистра управления;

5. Запись 1 в бит EEWE регистра управления.

Бит EERE – разрешает чтение ячейки ПЗУ с адресом из EEAR в регистр EEDR.

Алгоритм чтения ПЗУ:

1. Проверка бита EEWE на 0;

2. Запись адреса в регистр EEAR;

3. Запись 1 в бит EERE;

4. Чтение данных из регистра EEDR.

Пример записи байта данных в ЕЕPROM:

M:

sbic EECR, EEWE      ; проверка бита EEWE на 0

rjmp M

out EEARH, r 18         ; запись адреса (r18:r17) в адресный регистр

out EEARH, r 17

out EEDR, r16             ; запись байта данных r16 в регистр данных 

sbi EECR, EEMWE    ; запись 1 в EEMWE

sbi EECR, EEWE       ; запись