Jump to content

    
Sign in to follow this  
Kalyan

spi flash SST25VF032B + fat_fs

Recommended Posts

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

 

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

 

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

 

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

 

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

 

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

 

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

 

===

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

===

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

Edited by DpInRock

Share this post


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

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

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

 

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

Делаю::

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

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

****

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

*****

 

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

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this