_Ivan_ 0 28 мая, 2014 Опубликовано 28 мая, 2014 · Жалоба Всем привет! Есть платка с плиской и NAND Flash MT29F04G01 Сделал ядро управления. Начал читать и писать. Там есть кэш-регистр, куда первоначально данные складываются для записи и для чтения. Вот если его читать и писать все нормально. После загрузки в кэш нужно дать команду program execute и она перенесет данные оттуда в массив NAND элементов. Но почему-то у меня запись такая работает только после команды erase. Иначе записывает какую-то белиберду, отдаленно напоминающую бывшие и записанные данные. Вопрос таков - это стандартное поведение NAND FLASH или мой косяк? Вот с NOR флэш все работает пучком, а тут только после ERASE и только 1 раз. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 28 мая, 2014 Опубликовано 28 мая, 2014 · Жалоба После erase все битики устанавливаются в 1. Вы можете записывать 0, запись 1 не меняет значения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 28 мая, 2014 Опубликовано 28 мая, 2014 · Жалоба так получается что запись тупо изменяет биты из 1 в 0, а из 0 в 1 нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 28 мая, 2014 Опубликовано 28 мая, 2014 · Жалоба так получается что запись тупо изменяет биты из 1 в 0, а из 0 в 1 нет? Именно так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 28 мая, 2014 Опубликовано 28 мая, 2014 · Жалоба Так точно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sanyao 0 29 мая, 2014 Опубликовано 29 мая, 2014 · Жалоба читайте отличия NAND и NOR. По названию они обе флеш, но работа с ними существенно различается. Для всех запоминающих устройств на базе Flash для того чтоб записать (правильно вроде говорят запрограммировать) нужно выполнить стирание. Для NAND минимальный объем стираемой области - блок. для NOR обычно сектор. Еще в NAND бывают изначально (да и со временем появляются) "неисправные" блоки (invalid blocks). Это тоже надо учитывать (см. раздел Error Management или что-то похожее). В NAND даже структура страницы построена так, чтобы оставалась область для хранения кодов коррекции ошибок (например ECC), т.к. надежность ячеек невелика. Если есть желание нормально разобраться с NAND - погуглите книжку Inside NAND-Flash memory. В ней есть все - от физики процесса в ячейках флеша до протоколов обмена. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 29 мая, 2014 Опубликовано 29 мая, 2014 · Жалоба Господа, спасибо большое! Отсутствие опыта - оно такое. Потратил на эту фичу около недели))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться