Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: NAND Flash K9F1208U0B
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
tsvtsvtsv
Уважаемые, если после Page Programm Operation, Status сообщает об ошибке, то можно перейти к новой странице и опять повторить запись из своего буфера (внешнего), но у NAND Flash есть команды Copy-Back Programm (Duammy) и Copy-Back Programm (True). Вопросы 1.Можно-ли применить эти команды, и какова последовательность кодов в данной ситуации? 2.Есть-ли у кого статистика таких отказов, как часто возникают?. 3. Данную страницу пометить как Bad, или пометить весь блок как ВAD. Заранее благодарен!
Alex11
Copy-back при ошибке работать не будет. В описании черным по белому написано, что только повторная команда полностью с передачей данных из внешнего буфера, хотя во внутреннем все данные есть. Я давно хотел ее обмануть - ан нет. Конкретно для этого чипа статистики нет, но в среднем 2-5 bad'ов на кристалл, причем это мало зависит от объема кристалла. Помечать как bad по уставу положено весь блок. Максимум, что можно сделать - это не переписывать предыдущие страницы в блоке, которые записались правильно, до стирания блока. Затем он весь переводится в bad.
tsvtsvtsv
Спасибо Alex 11!
Вопросы далее.
1. Если после Page Programm Operation сообщается об ошибке, то
а. Возникла какая-то системная ошибка не связанная с плохой ячейкой и можно попробовать
повторить попытку?
б. Нет, ошибка всегда означает плохую ячейку и тогда-
б1. Пометить страничку как BAD, перейти на следующую страницу.
б2. Пометить весь блок как BAD, перейти на следующий блок.
2. Метит-ли внутренний контроллер NAND Flash сам в SPARE AREA новые BAD блоки
3. Каково назначение остальных областей в SPARE AREA? (LSN, ECC, S-ECC)
Alex11
1. При отлаженной программе - ошибка записи это ошибка записи. Она может появиться, конечно, в результате воздействия внешних факторов типа просадки питания при записи, но, как правило, это плохой блок. В любом случае без стирания блока повторно писать в эту же страницу смысла нет. Следует пометить страницу как bad и перейти на следующий блок. При стирании этого блока, следует весь его пометить как bad и не писать в него никогда более (это по инструкции). На практике мы иногда не помечали блок bad'ом и пытались писать снова (после стирания). Иногда работает.
2. Нет.
3. Если не использовать команды типа copy-back, то можно использовать по своему разумению. Если использовать - то нужно, чтобы ECC поля совпадали с datasheet'ом, т.к. встроенный контроллер будет перевычислять ECC, чтобы не множить ошибки.
tsvtsvtsv
Alex11, делали Вы тестирование NAND Flash?
Пишем все нули, 0x55, 0хАА, достаточно этого будет, или
стоит запустить бегущий 0 и бегущюю 1?
Alex11
Тестирование для чего? Когда я только начинал с ними работать (лет 5 назад), то при форматировании писал 55, АА - в результате время форматирования стремилось к бесконечности, а проку никакого. Поскольку обещано, что в процессе работы bad'ы будут образовываться, то предварительное тестирование бесполезно. Заводские bad-блоки уже помечены так, что не стираются, даже если подать команду стирания на них. А дальше в зависимости от требуемой надежности устройства можно либо отслеживать ошибку записи и прописывать сигнатуру с корректирующим кодом или проверять запись последующим чтением, либо делать и то и другое вместе. Невозможно сделать тестирование, которое бы гарантировало, что при следующей записи все что прошло тест запишется без ошибок.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.