Перейти к содержанию
    

Работа с плохими секторами/страницами в NAND FLASH.

Вопрос к специалистам с опытом работы с NAND FLASH. Есть такая NAND FLASH - TC58CVG2S0HxAIx.

Стирается она блоками. В каждом блоке 64 страницы. Как выявлять какая страница повреждена а какая нет? Допустим стер блок и что потом? Перебирать все страницы, считывать и проверять если какой нибудь байт не равен 0xFF - страница плохая? А где хранить информацию о плохих страницах? 2048 блоков и в каждом 64 страницы - это uint64_t pages[2048] - чтоб сохранить всю информацию.

TC58CVG2S0HxAIx_Rev1.1_2016_11_08.pdf

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Стирается она блоками. В каждом блоке 64 страницы. Как выявлять какая страница повреждена а какая нет?

И бракуется блоками, а не страницами. Подробности на стр.37-38 даташита.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И бракуется блоками, а не страницами. Подробности на стр.37-38 даташита.

спасибо за наводку.то есть исходя из описания

Regarding invalid blocks, the bad block mark is in the whole page. Please read one column of any page in each

block. If the data of the column is 00 (Hex), define the block as a bad block

достаточно прочесть любую строку на любой странице блока и если есть 0х00 - блок плохой? а что в плохом блоке вся дата на странице читается 0х00?

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

достаточно прочесть любую строку на любой странице блока и если есть 0х00 - блок плохой? а что в плохом блоке вся дата на странице читается 0х00?

Сolumn - это и есть страница. То есть в плохом блоке все данные читаются как 0x00.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При поставке все данные читаются 0, но если попытаться стереть BadBlock, то никто не гарантирует, что все данные будут читаться как 0. Скорее всего, будут отдельные битовые нули. Но по инструкции BadBlock'и стирать запрещено. Также BadBlock'и могут образовываться при работе. Диагностика - возникновение ошибки стирания или ошибки записи.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При поставке все данные читаются 0, но если попытаться стереть BadBlock, то никто не гарантирует, что все данные будут читаться как 0. Скорее всего, будут отдельные битовые нули. Но по инструкции BadBlock'и стирать запрещено. Также BadBlock'и могут образовываться при работе. Диагностика - возникновение ошибки стирания или ошибки записи.

 

проблема вот в чем. если память не писанная то все хорошо. но если на эту страницу уже писАли? там наверняка будут нули. и как тогда понять какой блок плохой какой хороший?

и кстати они пишут что в BadBlock ошибки стирания может и не быть.

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

проблема вот в чем. если память не писанная то все хорошо. но если на эту страницу уже писАли? там наверняка будут нули. и как тогда понять какой блок плохой какой хороший?

На всей странице нули, включая дополнительную область? Тогда руки обрывать писАтелям.

 

и кстати они пишут что в BadBlock ошибки стирания может и не быть.

Может и не быть. Возникновение ошибки стирания - это просто один из поводов забраковать ранее исправный блок,

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На всей странице нули, включая дополнительную область? Тогда руки обрывать писАтелям.

 

 

Может и не быть. Возникновение ошибки стирания - это просто один из поводов забраковать ранее исправный блок,

 

нули не на всей странице. сделал дам пару страниц - да есть области нулей, что ж тут такого. какой алгоритм проверки? если есть данные не нули и не FF - блок в порядке?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если все данные на странице - нули, значит, блок битый. Какой еще нужен алгоритм?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если все данные на странице - нули, значит, блок битый. Какой еще нужен алгоритм?

 

то есть считал допустим 100 байт. если встретился хотя бы один не ноль - блок не битый?

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...