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

spi flash SST25VF032B + fat_fs

Добрый вечер. Использую spi флеш память SST25VF032B и fat_fs. как то так случилось что убил флешку полностью. сначала думал что где то зациклилась операция записи, все перепроверил сделал счетчики на обращения к функциям стирания и записи флешки. Припаял новую и она тоже накрылась через некоторое время. Счетчики обращений к функциям записи и стирания флеш памяти ничего аномального не выявили, все в пределах разумного.

 

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

 

Могло ли это послужить причиной убиения флешки? может кто то сталкивался с такой проблемой?

Еще одну флешку портить жалко ))

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


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

Вы поставили диагноз "убил флэшку".

Но не видно ни единого симптома для такого диагноза.

 

Такой диагноз можно поставить, если память не отвечает на посылаемые команды.

Ни на какие. При условии, что сама тестовая программа реализована верно.

 

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


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

DpInRock, объясню. Флешка на 4МБ. под файловую систему выделил только один МБ. После того как случилось непоправимое, пробовал смонтировать файловую систему на остальные 3МБ памяти, ведь они должны были остаться целыми. Но не вышло, вся флешка пришла в негодность.

Пробовал также без файловой системы записывать и считывать какой то тестовый буфер - не работает, не могу записать. на новой флешке все мои функции записи и чтения работают, я проверял.

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


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

Опять нет симптомов.

Вы работаете с чужим кодом. И оперируете слишком высокоуровневыми понятиями.

 

Вот просто для начала.

У последовательной памяти есть некий регистр из которого можно прочитать код производителя. (см. конкретный даташит).

 

Вот самое первое, что делают люди - это читают этот регистр. И если он читается, то механизм доступа к памяти считатется боле-менее реализованным (имеется ввиду полярность клоков, фаза защелки).

 

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

 

Причем, кончина как правило - не есть следствие какого-то неправильного ВЫСОКОУРОВНЕВОГО действия с флэшкой, а чаще - результат выгорания защитных диодов по входам. И чаще всего - по причине статических разрядов от ваших тапок, к примеру.

 

===

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

===

Ну и в догонку. Если меня бы щас попросили убить флэшку программно, без дрели и молотка - я сильно задумаюсь. Вот не знаю как убить флэшку.

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

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


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

DpInRock, объясню. Флешка на 4МБ. под файловую систему выделил только один МБ. После того как случилось непоправимое, пробовал смонтировать файловую систему на остальные 3МБ памяти, ведь они должны были остаться целыми. Но не вышло, вся флешка пришла в негодность.

Пробовал также без файловой системы записывать и считывать какой то тестовый буфер - не работает, не могу записать. на новой флешке все мои функции записи и чтения работают, я проверял.

Для начала, правильно опишите проблему. Хороший вопрос- это половина ответа. Микросхема не может "не работать". Она может реагировать не так как Вы ожидаете. Опишите что Вы делаете и что Вы от нее получаете в ответ на Ваши действия. Все что Вы до сих пор написали, не содержит никакой полезной информации о проблеме.

 

например, так:

Делаю::

сброс, чтение, стирание, чтение, новая запись, чтение.

Получаю на каждую команду следующую реакцию:

****

Из чего делаю вывод, что

*****

 

И еще: просто возьмите готовую библиотеку и поработайте только с ней, на уровне записи-чтения-стирания областей памяти. И делайте выводы на базе этих исследований. Непонятно, почему Вы написали что-то свое, когда на низком уровне все уже давно написано и отлажено.

 

В общем случае вполне возможно убийство области FAT, особенно если каждая запись в него сопровождается стиранием, там всего 10 тысяч циклов гарантируют. Но у Вас, скорее всего, некорректно сделанная программа или аппаратная часть и Вы делаете неправильные выводы.

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


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

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

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

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

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

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

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

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

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

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