8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 180 181 182 183 184 185 186 ... 195

ти RWW, а при изменении содержимого области NRWW процессор останавливается до завершения операции. Сказанное выше проиллюстрировано на Рис. 14.16.

ООлаг.ть Read While Write (RWW)

в области NRWW,

не может быть прочитан

во время операции

Рис. 14.16. Отличие между областями RWWh NRWW

14.5.3. Функционирование загрузчика

Управление процессом самопрограммирования

Изменение содержимого памяти программ и ячеек защиты загрузчика осуществляется с помощью команды SPM (Store Program Memory). Параметрами этой команды являются адрес области памяти, загружаемый предварительно в индексный регистр Z, и, при необходимости, данные, находящиеся в регистровой паре R1:R0.

Управление процессом программирования и, в частности, определение операции, выполняемой при вызове команды SPM, осуществляется с помощью регистра ввода/вывода SPMCR (модели ATmega8515x/8535x, ATmega8x/16x/32x/64x/128x и ATmegal62x) или SPMCSR (в остальных моделях). Во всех микроконтроллерах, за исключением моделей ATmega64x/128x, этот регистр расположен по адресу $37 ($57). В моделях же ATmega64x/128x этот регистр расположен в пространстве дополнительных регистров ввода/вывода по адресу ($68). Формат этих регистров для различных моделей семейства показан на Рис. 14.17, а описание его битов приведено в Табл. 14.23.


SPMCR

SPMIE

RWWSB

-

RWWSRE

BLBSET

PGWRT

PGERS

SPMEN

4TeHne(R)/3anncb(W) Начальное значение

R/W 0

R 0

R 0

R/W 0

R/W 0

R/W 0

R/W 0

R/W

0

7

6

5

4

3

2

1

0

SPMCSR

SPMIE

RWWSB

-

RWWSRE

BLBSET

PGWRT

PGERS

SPMEN

4TeHne(R)/3anncb(W) Начальное значение

R/W 0

R 0

R 0

R/W 0

R/W 0

R/W 0

R/W 0

R/W 0

7

6

5

4

3

2

1

0

SPMCSR

SPMIE

RWWSB

-

RWWSRE

BLBSET

PGWRT

PGERS

SELFPRGEN

Чтение(Р)/Запись(\Л/) Начальное значение

R/W X

R 0

R 0

R/W 0

R/W 0

R/W 0

R/W 0

R/W 0

ATmega8515x/8535x ATmega8x/16x/32x/64x ATmega64x/128x ATmega 162x

ATmega 164x/324x/644x ATmega 165x/325x/3250x ATmega645x/6450x ATmega650x/1280x/1261x ATmega2560x/2561x

ATmega48x/88x/168x

Puc. 14.17. Формат регистра SPMCR/SPMCSR

Таблица 14.23. Биты регистра SPMCR/SPMCSR

Бит

Название

Описание

7

SPMIE

Разрешение прерывания «Готовность SPM». Если в этом бите записана лог. 1 и флаг I регистра SREG также установлен в 1, то разрешается прерывание «Готовность SPM» Прерывание генерируется все время, пока бит SPMEN регистра сброшен в 0

6

RWWSB

Запрещен доступ к области RWW. Этот флаг показывает возможность обращения по адресам, расположенным в области RWW. Если флаг установлен в 1, доступ к области RWW запрещен, если сброшен в 0 — разрешен. Установка этого флага осуществляется аппаратно при выполнении операций записи или стирания страницы памяти. Сброс флага осуществляется либо программно, записью лог. 1 в бит RWWSRE по окончании операции, либо аппаратно, при запуске операции загрузки страницы

5

-

Зарезервировано, читается как 0

4

RWWSRE

Чтение области RWW разрешено. Одновременная установка этого бита и бита SPMEN позволяет разрешить доступ к области RWW. Разрешение доступа к этой области осуществляется запуском команды spm в течение 4 тактов после установки указанных битов. Разрешение доступа к области RWW может осуществляться только после завершения операции программирования (после сброса флага SPMEN)

3

BLBSET

Изменение ячеек защиты загрузчика. При одновременной установке этого бита и бита SPMEN команда spm, запущенная в течение последующих 4 тактов, осуществит установку защитных ячеек загрузчика в соответствии с содержимым регистра R0. Сброс бита BLBSET осуществляется аппаратно после установки ячеек защиты либо по истечении указанного времени. По команде (e)lpm, запущенной в течение 3 тактов после установки указанных битов, будет осуществлено чтение либо конфигурационных ячеек, либо ячеек защиты (зависит от значения бита Z0 регистра Z)


(продолжение)

Бит

Название

Описание

2

PGWRT

Запись страницы. При одновременной установке этого бита и бита SPMEN команда SPM, запущенная в течение последующих 4 тактов, осуществит запись страницы памяти программ из временного буфера. Адрес страницы должен быть загружен в старший байт регистра Z (R31). Сброс бита PGWRT осуществляется аппаратно по окончании записи страницы либо по истечении указанного времени. При записи в секцию NRWW центральный процессор останавливается на время выполнения операции0

1

PGERS

Стирание страницы. При одновременной установке этого бита и бита SPMEN команда SPM, запущенная в течение последующих 4 тактов, осуществит стирание страницы памяти программ. Адрес страницы должен быть загружен в старший байт регистра Z (R31). Сброс бита PGERS осуществляется аппаратно по окончании стирания страницы либо по истечении указанного времени. При записи в секцию NRWW центральный процессор останавливается на время выполнения операции0

0

SPMEN (SELFPRGEN2))

Разрешение выполнения команды spm. Установка этого бита разрешает запуск команды SPM в течение последующих 4 тактов. Если бит SPMEN устанавливается одновременно с одним из битов RWWSRE, BLBSET, PGWRT или PGERS, выполняется операция, определяемая этим битом (см. описание битов). Если устанавливается только бит SPMEN, осуществляется сохранение содержимого регистров R1:R0 во временном буфере по адресу, находящемуся в регистре Z (LSB регистра игнорируется). Сброс бита SPMEN осуществляется аппаратно после завершения операции либо по истечении указанного времени

1)В моделях ATmega48x процессор останавливается при обращении к любому адресу.

2)В моделях ATmega48x/88x/168x.

Обратите внимание на то, что во время записи в EEPROM-память изменение регистра SPMCR невозможно. Поэтому перед тем как записать какое-либо значение в регистр SPMCR, рекомендуется дождаться сброса флага EEWE регистра EECR.

Для адресации памяти программ при использовании команды SPM используется индексный регистр Z, получаемый объединением двух регистров общего назначения — R30 (младший байт) и R31 (старший байт), а в моделях с объемом памяти программ более 64 Кбайт — еще и регистр ввода/вывода RAMPZ. Поскольку память программ в микроконтроллерах семейства имеет страничную организацию, счетчик команд можно условно разбить на две части. Первая часть (младшие биты) адресует ячейку на странице, а вторая часть определяет страницу (Рис. 14.18). После запуска операции программирования содержимое регистра Z фиксируется и его можно использовать для других целей.



0 ... 180 181 182 183 184 185 186 ... 195