Скачиваний:
144
Добавлен:
21.02.2014
Размер:
1.47 Mб
Скачать

3.5.2 Регистр защиты эсппзу (bprot).

Этот регистр защищает регистр CONFIG и 512 байт ЭСППЗУ от непреднамеренной записи. Биты этого регистра могут быть установлены в ноль только в течение первых 64 циклов тактовой частоты E после сброса. Сразу после установки бита в ноль разрешается программирование и стирание в связанной с ним области ЭСППЗУ или регистра CONFIG. ЭСППЗУ доступно только в случае, если бит EEON регистра CONFIG установлен в единицу. Биты регистра BPROT могут быть установлены в единицу в любое время, но возможность сброса в ноль в течение всего периода работы имеется только в режиме теста или загрузки.

7

6

5

4

3

2

1

0

$1035

0

0

0

PTCON

BPRT3

BPRT2

BPRT1

BPRT0

BPROT

Сброс

0

0

0

1

1

1

1

1

Биты 7-5 -не используются; считываются всегда как нули.

PTCON -защита регистра CONFIG:

1=программирование/стирание регистра CONFIG запрещено;

0=программирование/стирание регистра CONFIG разрешено.

BPRT3-BPRT0-защита блока памяти:

1=программирование/стирание соответствующего блока

ЭСППЗУ запрещено;

0=программирование/стирание соответствующего блока

ЭСППЗУ разрешено.

Связанные с битами блоки памяти:

Бит

Защищаемый блок

Размер

BPRT0

$B600-$B61F

32 бита

BPRT1

$B620-$B65F

64 бита

BPRT2

$B660-$B6DF

128 бит

BPRT3

$B6E0-$B7FF

288 бит

3.5.3 Программирование/стирание внутреннего эсппзу.

Процесс программирования и стирания ЭСППЗУ управляется регистром PPROG. Перед изменением срдержимого ячеек ЭСППЗУ следует сбросить требуемые биты регистра BPROT. В данном параграфе описаны различные операции, выполняемые над ЭСППЗУ и примеры подпрограмм, демонстрирующих операции программирования и стирания. Эти подпрограммы просто демонстрируют последовательности действий, необходимых для основных операций программирования и стирания и не содержат, например, специальных команд работы с битами. В течение программирования ЭСППЗУ также могут быть использованы и другие команды микроконтроллера, при условии что они не выполняют чтение из или запись в ЭСППЗУ (в течении операции программирования или стирания ЭСППЗУ отключается для цикла чтения от шины данных). Текст подпрограммы DLY10, используемой в этих подпрограммах, не приводится, но в качестве нее может быть использована любая последовательность команд обеспечивающая задержку в 10 мс.

Для операции чтенияиз ЭСППЗУ требуется, чтобы бит EELAT регистра PPROG был сброшен. Это означает , что регистр PPROG не оказывает никакого воздействия и ЭСППЗУ может быть прочитано как обычное ПЗУ. Регистр защиты блоков также не влияет на обмен информацией во время операции чтения.

В режиме программированиябиты ROW и BYTE не используются. Если тактовая частота синхронизации E менее 1 МГц, то нужно установить бит CSEL регистра OPTION. Напомним, что стирание ячеек ЭСППЗУ должно выполняться отдельной операцией перед их программированием. Приведенная ниже программа демонстрирует операцию программирования одного байта ЭСППЗУ.

*на входе: регистр A содержит программируемые данные; X - адрес ЭСППЗУ

·

·

·

PROG LDAB #$02

STAB $103B установить бит EELAT (EEPGM=0)

STAA 0,X записать данные по адресу ЭСППЗУ

LDAB #$03

STAB $103B установить бит EEPGM (EELAT=1)

JSR DLY10 задержка 10 мс

CLR $103B отключить напряжение программирования и установить режим чтения

·

·

·

Следующая программа показывает, как стереть все ЭСППЗУ. На регистр CONFIG данная программа не оказывает никакого влияния.

·

·

·

BULK LDAB #$06

STAB $103B установить режим стирания всего ЭСППЗУ

STAB $B600 записать произвольные данные по любому адресу ЭСППЗУ

LDAB #$07

STAB $103B включить напряжение программирования

JSR DLY10 задержка 10 мс

CLR $103B отключить напряжение и установить режим

чтения

·

·

·

Иногда требуется стереть информацию не во всем ЭСППЗУ, а только в некоторой ее части. Следующая программа показывает как стереть строку ЭСПЗУ. Под строкой подразумевается последовательность из 16 байт ($B600-$B60F, $B610-$B61F ... $B7F0-$B7FF).

*на входе: X - адрес произвольный ячейки из удаляемого участка ЭСППЗУ

·

·

·

ROWE LDAB #$0E

STAB $103B установить режим стирания строки

STAB 0,X записать произвольные данные по любому адресу строки ЭСППЗУ

LDAB #$0F

STAB $103B включить напряжение программирования

JSR DLY10 задержка 10 мс

CLR $103B отключить напряжение и установить

режим чтения

·

·

·

Простейшая операция стирания-это стирание одного байта, что показывается приведенной ниже программой.

*на входе: X - адрес стираемого байта ЭСППЗУ

·

·

·

ROWE LDAB #$16

STAB $103B установить режим стирания одног байта

STAB 0,X записать данные по указанному адресу в ЭСППЗУ

LDAB #$17

STAB $103B включить напряжение программирования

JSR DLY10 задержка 10 мс

CLR $103B отключить напряжение и установить

режим чтения

·

·

·

Соседние файлы в папке МС68НС11Е9