October 19 2017 19:12:55
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
Алгоритмы стирания и программирования модуля FLASH-ПЗУ второго поколения
МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА НС08

Если МК перешел в режим ожидания (Wait mode), когда FLASH-пaмять находилась в режиме считывания, то никаких особенностей ее дальнейшего использования как памяти программ нет.

Внимание! Команда WAIT не может быть выполнена в процессе стирания или программирования FLASH-ПЗУ. Когда МК переходит в режим ожидания, повышающий преобразователь напряжения перестает работать, и вследствие этого операции записи и стирания останутся незавершенными. Состояние битов PGM и ERASE в регистре управления FLASH-ПЗУ в режиме ожидания сохраняется. Поэтому велика вероятность, что при возврате в активный режим работы МК (Run mode) память будет находиться в режиме считывания или программирования. В этом случае считывание вектора прерывания из FLASH-ПЗУ невозможно и МК зависнет. Если выход из режима ожидания производить по сбросу, то описанной ситуации не возникнет, т. к. биты PGM и ERASE будут сброшены.

Если МК находится в режиме останова, то FLASH-ПЗУ также переходит в режим низкого энергопотребления. По причинам, отмеченным выше, не следует выполнять команду STOP в процессе стирания или программирования FLASH-ПЗУ.

Алгоритмы стирания и программирования модуля FLASH-ПЗУ второго поколения

Модуль FLASH08/2 второго поколения имеет лучшие технические характеристики по сравнению с модулем FLASH08/1 первого поколения:

•   Гарантированное число циклов стирания/программирования составляет 10000.

•   Встроенный повышающий преобразователь напряжения модуля FLASH08/2 выполнен с внутренним генератором и не накладывает ограничений на выбор частоты тактирования МК.

•   Существенно сократилось время стирания и программирования.

Каждая ячейка памяти FLASH-ПЗУ второго поколения в незапрограммированном состоянии при считывании возвращает код $FF. Программированию подлежат только те разряды, которые должны содержать 0. Например, если ячейка памяти, содержащая код $АА, должна быть перепрограммирована на новое значение кода $55, то необходимо сначала стереть код $АА, а затем в режиме программирования записать код $55. Если к программированию приступить, минуя этап стирания, то после программирования из ячейки будет считываться код $00.

Адресное пространство FLASH-ПЗУ МК с модулем FLASH08/2 разбито на блоки и страницы. Каждая страница состоит из 32 ячеек памяти. Каждый блок содержит в себе 2 страницы, или 64 ячейки памяти. Для стирания информации предусмотрены два режима: стирание одного блока и стирание всего массива резидентной FLASH-памяти МК. Только последний режим позволяет осуществить стирание блока векторов сброса и прерывания. Выбор режима стирания осуществ­ляет бит MASS регистра FLCR. Время стирания одного блока состав­ляет-1 мс. Запись информации выполняется только постранично. Время программирования одной страницы составляет »200 мкс. Разбиение адресного пространства FLASH-ПЗУ на блоки для МКс модулем FKLASH08/2 показано в Табл. 3.70.

img057

Высокое напряжение для операций стирания и программирования обеспечивает встроенный повышающий преобразователь напряжения, который включается и отключается только под управлением программы (бит HVEN регистра FLCR). Никаких других действий по управлению повышающим преобразователем напряжения модуля FLASH08/2 производить не требуется.

Для управления модулем FLASH08/2 используются два регистра, которые имеют те же названия, что и для модуля FLASH08/1, однако несколько отличаются форматом:

FLCR    - регистр управления FLASH-ПЗУ.

FLBPR  - регистр защиты FLASH-ПЗУ.

В отличие от модуля FLASH08/1, регистр защиты FLBPR модуля FLASH08/2 не является ячейкой FLASH-памяти и должен программироваться в процессе инициализации, как и другие регистры специальных функций. Форматы регистров FLCR и FLBPR для модуля FLASH08/2 приведены в Табл. 3.75 и 3.76.

Табл. 3.75. Формат регистра FLCR модуля FLASH08/2

FLCR Регистр управления FLASH-ПЗУ

FLASH Control Register
7 6 5 4 3 2 1 0
0 0 0 0 HVEN MASS ERASE PGM
Состояние при сбросе: $00
Имя бита Назначение бита
HVEN Бит разрешения подключения высокого напряжения (High Voltage Enable Bit).
1 - приложение высокого напряжения к массиву стирания или к программируемой странице разрешено, и повышающий преобразователь напряжения включен.
0 - высокое напряжение снято, и повышающий преобразователь напряжения выключен.
Этот бит доступен как для чтения, так и для записи. Однако бит может быть установлен в 1 только в том случае, если предварительно разрешен режим стирания (бит ERASE=1) или режим программирования (бит PGM=1). В противном случае установка бита блокируется аппаратными средствами схемы управления модуля FLASH-ПЗУ. После сброса МК устанавливается режим простого считывания FLASH-ПЗУ
MASS Бит выбора режима стирания (Mass Erase Control Bit).
1 - реализуется режим стирания полного массива.
0 - реализуется режим стирания одного блока.
Этот бит доступен как для чтения, так и для записи. Однако бит не может быть установлен, если бит HVEN=1. После сброса МК устанавливается режим стирания одного блока
ERASE
Бит разрешения режима стирания (Erase Control Bit)
1 - память работает в режиме стирания.
0 - режим стирания не реализуется.
Этот бит доступен как для чтения, так и для записи. Бит не может быть установлен, если бит PGM=1. После сброса МК режим стирания не выбран, устанавливается режим простого считывания FLASH-ПЗУ
PGM Бит разрешения режима программирования (Program Control Bit).
1 - память работает в режиме программирования.
0 - режим программирования не реализуется.
Этот бит доступен как для чтения, так и для записи. Бит не может быть установлен, если бит ERASE=1. После сброса МК режим программирования не выбран, устанавливается режим простого считывания FLASH-ПЗУ

Табл. 3.76. Формат регистра FLBPR модуля FLASH08/2

FLBPR Регистр защиты FLASH-ПЗУ

FLASH Block Protect Register
7 6 5 4 3 2 1 0
BPR7 BPR6 BPR5 BPR4 BPR3 BPR2 BPR1 BPR0
Состояние при сбросе: $00 Бит BPR0 равен 0 для HC908JL3/JK3/JK1
Имя бита Назначение бита
BPR7...BPR0 Биты защиты (Block Protect Bits).
Эти биты определяют начальный адрес защищенного блока FLASH-ПЗУ. Для МК HC908GP32 начальный адрес определяется по правилу: А15...А0=1 "BPR7...BPR0" 0000000. Например: если BPR7...BPR0=$01, то начальный адрес защищенного блока - $8080. Для МК HC908JL3/JK3/JK1 начальный адрес определяется по правилу: А15...А0= 111 "BPR7...BPR0" 00000. Например: если BPR7...BPR0=$62, то начальный адрес защищенного блока - $ЕС40. Задание кода $00 установит для всей FLASH-памяти защищенный режим, $FF переведет FLASH-память в незащищенный режим

Операцию стирания для модуля FLASH08/2 следует проводить в соответствии с приведенным ниже алгоритмом:

1. Установите одной командой бит ERASE=1 и бит MASS в регистре управления FLCR. Значение бита MASS определяется выбранным режимом стирания.

2. Произведите запись любого однобайтового слова по адресу, который принадлежит адресному пространству стираемого блока (опция MASS=0) или просто лежит в диапазоне адресов FLASH-ПЗУ МК (опция MASS=1). В процессе выполнения операции записи необходимые для идентификации массива разряды магистрали адреса будут скопированы в регистр схемы управления модулем FLASH-ПЗУ.

3. Программная задержка

t=tNWS=10 мкс.

4. Установите в 1 бит HVEN регистра управления FLCR. Этот бит разрешает работу повышающего преобразователя напряжения, и высокое напряжение стирания прикладывается к ячейкам памяти выбранного массива.

5. Программная задержка

t=terase=1 мс

для стирания блока (MASS=0) и

t=terase=4 мс

для стирания всей памяти (MASS=1).

6. Очистите бит ERASE.

7. Программная задержка

t=tNWH=5 мкс

при стирании одного блока и

t=tNWH1=100 мкс

при стирании полного массива FLASH-ПЗУ МК.

8. Произведите сброс бита HVEN.

9. Программная задержка

t=tRCV=1 мкс,

после которой модуль FLASH08/2 перейдет в режим считывания.

Внимание! Не допускается проводить операции стирания и программирования какого-либо модуля памяти FLASH08/2 посредством выполнения программы, записанной в другом блоке FLASH-памяти этого МК.

Операцию программирования страницы FLASH-памяти, состоящей из 32 байт памяти, следует производить в соответствии с приведенным ниже алгоритмом:

1. Установите бит PGM=1. Эта операция конфигурирует блок управления модулем на режим программирования.

2. Произведите запись любого однобайтового слова по адресу, который принадлежит адресному пространству программируемой страницы.

3. Программная задержка

t=tNVS=10 мкс.

4. Установите в 1 бит HVEN регистра управления FLCR.

5. Программная задержка

t=tPGS=5 мкс.

6. Произведите запись байта программируемых данных в ячейку памяти с действительным адресом.

7. Программная задержка

t=tPROG=40 мкс.

8. Повторите операции 6 и 7 для программирования следующих байтов данной страницы.

9. Очистите бит PGM.

10. Программная задержка

t=tNVH =5 мкс.

11. Произведите сброс бита HVEN.

12. Программная задержка

t=tRCV =1 мкс.

после которой модуль FLASH08/2 перейдет в режим считывания.

В режимах ожидания и останова модуль FLASH08/2 работает аналогично модулю FLASH08/1 .

Табл. 3.77. Адреса регистров модулей FLASH08

Имена Адреса регистров
регистров HC908GP20 HC908GP32 HC908AZ60 HC908MR24 HC908MR32 HC(9)08JL3/JK3 HC(9)08JK1
Регистр управления FLASH- ПЗУ FLCR(1) $FE08 $FE08 $FE08 $FE08 $FE08 $FE08 $FE08
Регистр защиты FLASH-ПЗУ FLBPR(1) $FF80 $FF7E $FF80 $FF80 $FF7E $FE09 $FE09
Регистр управления FLASH-ПЗУ FLCR(2)

$FE11



Регистр защиты FLASH-ПЗУ FLBPR(2)

$FF81



Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.03 секунд 2,256,264 уникальных посетителей