Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Samsung NAND flash K9F4G08U0M Copy Back Routine, Где должно лежать ECC ?

Отправлено Ale3002 (90.189.254.166) 20 мая 2010, г. 07:58


Я использую Samsung NAND flash K9F4G08U0M (512MB=4096 Blocks x 64 Pages x (2048+64) байт) для хранения данных.
Реализую сейчас на ней Bad Block Management.
Для этого хотелось бы использовать команды 00h-35h-85h-10h (Copy Back Program) для того чтобы не использовать ОЗУ при замене блока, и потом 7Bh (Read EDC Status).
Насколько я понял из описания при выполнении команд 00h-35h (Read for Copy Back) флешка автоматически обнаруживает ошибки, и если испорчен только 1 бит из 528 байт, автоматически исправляет эту ошибку.
Но в даташите не написано, где именно в Spare Area должно лежать ECC, и как оно должно вычисляться.
На сайте Samsunga я нашел NAND Flash Spare Area Assignment Standard (http://www.samsung.com/global/business/semiconductor/products/flash/downloads/applicationnote/spare_assignment_standard.pdf) и ECC Sample Source Code for 512 Byte (http://www.samsung.com/global/business/semiconductor/products/flash/downloads/applicationnote/samsung_new_ecc_for_512byte_256word.txt).
Проверил, что использование этих самунговских процедур, действительно позволяет исправлять одиночные ошибки. Но эти процедуры не говорят, где должно лежать ECC.
Я расположил 4 ECC по адресам 8,24,40,56 в Spare Area, как и указано в NAND Flash Spare Area Assignment Standard (November 2004). Всю остальную часть Spare забиваю FFh. Но при этом команда Copy Back не исправляет одиночную ошибку. В команде Read EDC status бит 2 всегда равен 0. Т.е. Validity of EDC status Invalid.

Что я делаю не так? Может быть ECC надо не там располагать? Или ее надо по другому считать? Или может быть остальную часть Spare Area надо не FFh забивать, а располагать там LSN (логические номера секторов - я их не использую) и для них свое ECC ?

Файловые системы типа UFFS не предлагать, так как они кушают много ОЗУ, а у меня всего 8КБ. У меня ATXmega128A1.
Ранее я уже реализовывал подобную систему на ATmega128 с 4КБ ОЗУ и K9F1208U0M (64MB=4096 Blocks x 32 Pages x (512+16) байт), но эта флешка не поддерживала Copy Back, поэтому таких вопросов не возникало.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 76:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru