Последовательность программирования Flash-памяти 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Последовательность программирования Flash-памяти



Перед выполнением программирования страницы Flash-памяти данными из страничного буфера Flash-памяти, страница Flash-памяти должна быть стерта. Программирование нестертой страницы flash-памяти приводит к нарушению содержимого страницы flash-памяти. Страничный буфер flash-памяти можно заполнить либо перед выполнением операции стирания страницы Flash-памяти, либо между операциями стирания страницы Flash-памяти и записи страницы Flash-памяти. Всего возможно три сценария.

Сценарий 1. Вначале заполняется буфер, а затем выполняются подряд две отдельных операции стирания страницы и записи страницы:

· Заполняется страничный буфер Flash-памяти.

· Выполняется стирание страницы Flash-памяти.

· Выполняется запись страницы Flash-памяти.

Сценарий 2. Вначале заполняется страничный буфер, а затем выполняется одна совмещенная операция стирания и записи страницы:

· Заполняется страничный буфер Flash-памяти.

· Выполняется стирание и запись страницы.

Сценарий 3. Заполнение страницы выполняется после стирания страницы:

· Выполняется стирание страницы Flash-памяти.

· Заполняется страничный буфер Flash-памяти.

· Выполняется запись страницы Flash-памяти.

Набором NVM-команд поддерживается как совмещенные операции стирания и записи, так и отдельные команды стирания страницы и записи страницы. Раздельные команды позволяют сократить время программирования при выполнении каждой команды, а выполнение операций стирания предусмотреть на этапах, некритичных ко времени программирования.

Если сценарии 1 или 2 использовать при самопрограммировании, можно воспользоваться возможностями эффективного выполнения операций типа чтение-модификация-запись, которые поддерживаются в загрузочном секторе. В таком случае, программа должна вначале считать страницу, затем выполнить необходимые изменения и записать обратно измененные данные. При использовании сценария 3, считать старые данные во время загрузки нельзя, т.к. страница уже стерта. При использовании сценария 1 или 3 в операциях стирания страницы и записи страницы должен участвовать один и тот же адрес.

Последовательность программирования EEPROM

Перед программированием страницы EEPROM выбранным числом байт данных, сохраненных в страничном буфере EEPROM, необходимо стереть выбранные ячейки страницы EEPROM. Программирование нестертой страницы EEPROM приведет к нарушению содержимого страницы EEPROM. Страничный буфер EEPROM необходимо загрузить перед выполнением операции стирания страницы или записи страницы по одному из двух сценариев.

Сценарий 1. Вначале заполняется страничный буфер, а затем выполняется операция стирания страницы:

· Страничный буфер EEPROM заполняется требуемым числом байт.

· Выполняется стирание страницы EEPROM.

· Выполняется запись страницы EEPROM.

Сценарий 2. Вначале заполняется страничный буфер, а затем выполняется операция стирания и записи страницы:

· Страничный буфер EEPROM заполняется требуемым числом байт.

· Выполняется операция стирания и записи EEPROM.

Защита энергонезависимой памяти

Для защиты Flash-памяти и EEPROM от записи и/или чтения предусмотрены Lock-биты, позволяющие ограничить доступ для внешних программаторов и прикладной программы. Более детально о доступных настройках Lock-бит и их использованию см. в 4.15.12 "Описание регистров контроллера энергонезависимой памяти".

Предотвращение нарушения данных

Когда напряжение VCC становится меньше минимального рабочего напряжения МК, существует опасность нарушения чтения или записи Flash-памяти, так как напряжение питания может оказаться слишком малым для надлежащей работы ЦПУ и Flash-памяти.

Сбои во время записи

Для гарантирования корректности уровня напряжения на фазе завершения последовательности записи во Flash-память, сразу после её запуска автоматически включаются в работу встроенные супервизор питания (BOD) и детектор кратковременных просадок напряжения. Если любой из этих блоков генерирует сигнал сброса, последовательность программирования отменяется. В таком случае, если сбой в питании привел к полной отмене программирования или к его частичному выполнению, после восстановления корректного уровня напряжения питания программирование NVM необходимо начать заново.

Сбои во время чтения

Чтение NVM может дать некорректный результат, если напряжение питания настолько мало, что ЦПУ неправильно интерпретирует инструкции. Чтобы избежать этого, необходимо включить в работу супервизор питания (BOD).

Проверка CRC

При необходимости может быть включена в работу логика автоматической проверки CRC Flash-памяти программ. Эта функция доступна как при внешнем программировании, так и при самопрограммировании. Проверка CRC может выполняться в пределах сектора прикладной программы, загрузочного сектора или заданного диапазона адресов Flash-памяти.

Сразу после запуска логики проверки CRC, ЦПУ приостанавливает работу на время вычисления CRC, а вычисленная контрольная сумма будет доступна в регистре данных NVM. На вычисление CRC для каждого слова из заданного диапазона адресов затрачивается один цикл синхронизации ЦПУ.

Для проверки CRC используется полином x24 + 4x3 + 3x +1.



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 379; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.175.182 (0.005 с.)