_Ivan_33
May 28 2014, 09:11
Всем привет!
Есть платка с плиской и NAND Flash MT29F04G01
Сделал ядро управления. Начал читать и писать. Там есть кэш-регистр, куда первоначально данные складываются для записи и для чтения. Вот если его читать и писать все нормально.
После загрузки в кэш нужно дать команду program execute и она перенесет данные оттуда в массив NAND элементов. Но почему-то у меня запись такая работает только после команды erase. Иначе записывает какую-то белиберду, отдаленно напоминающую бывшие и записанные данные.
Вопрос таков - это стандартное поведение NAND FLASH или мой косяк?
Вот с NOR флэш все работает пучком, а тут только после ERASE и только 1 раз.
adnega
May 28 2014, 09:53
После erase все битики устанавливаются в 1. Вы можете записывать 0, запись 1 не меняет значения.
_Ivan_33
May 28 2014, 10:05
так получается что запись тупо изменяет биты из 1 в 0, а из 0 в 1 нет?
aaarrr
May 28 2014, 10:38
Цитата(_Ivan_33 @ May 28 2014, 18:15)

так получается что запись тупо изменяет биты из 1 в 0, а из 0 в 1 нет?
Именно так.
adnega
May 28 2014, 10:39
Так точно.
Sanyao
May 29 2014, 00:21
читайте отличия NAND и NOR. По названию они обе флеш, но работа с ними существенно различается. Для всех запоминающих устройств на базе Flash для того чтоб записать (правильно вроде говорят запрограммировать) нужно выполнить стирание. Для NAND минимальный объем стираемой области - блок. для NOR обычно сектор. Еще в NAND бывают изначально (да и со временем появляются) "неисправные" блоки (invalid blocks). Это тоже надо учитывать (см. раздел Error Management или что-то похожее). В NAND даже структура страницы построена так, чтобы оставалась область для хранения кодов коррекции ошибок (например ECC), т.к. надежность ячеек невелика.
Если есть желание нормально разобраться с NAND - погуглите книжку Inside NAND-Flash memory. В ней есть все - от физики процесса в ячейках флеша до протоколов обмена.
_Ivan_33
May 29 2014, 03:05
Господа, спасибо большое!
Отсутствие опыта - оно такое. Потратил на эту фичу около недели)))
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.