SST26VF064BT-104I/SM
Добавлено: Пт сен 27, 2024 10:31:19
Использовал в проекте SPI Flash память SST26VF064BT-104I/SM. Эта микросхема фирмы Microchip качественно отличается от привычной всем Winbond W25Q64xxx. Она значительно быстрее Винбонда в части стирания страниц и чипа вообще. Кроме этого, в ней есть ещё другие функции, которые на самом деле нафиг не нужны в 99% случаев.

НО!
В новом проекте заложил эту память и сначала обрадовался - работает быстро. В проекте используется файловая система Littlefs. После записи 5-7 файлов файловая система переходила в состояние "Только чтение" и всё - дальше только форматирование и опять запись не более чем 5-7 файлов (в зависимости от размера).
Две недели мучений привели к источнику ошибки - это микросхема памяти. Нет возможности (и желания, честно говоря тоже) выяснить, это проблема только той партии микросхем, что попали ко мне, или это системный баг, но это так.
При определенных обстоятельствах микросхема перестает читаться. Вот, как это выглядит:

Стирание сектора занимает 18 мс. А через 56 мс после стирания сектора микросхема перестает читаться.
Файл логического анализатора прикрепляю. Вы можете его просмотреть даже, если у вас нет такого анализатора, достаточно установить программу по ссылке ниже.
Итого:
Почему так происходит, можно ли это как-то обойти - неизвестно. Принято решение отказаться от использования этих микросхем в пользу старого доброго Winbond.
Если вдруг кто сталкивался с таким же поведением и понимает, что это такое, напишите в комментариях.
Ссылки:
https://static.chipdip.ru/lib/706/DOC011706364.pdf
https://github.com/littlefs-project/littlefs
https://www.dreamsourcelab.com/download/

НО!
В новом проекте заложил эту память и сначала обрадовался - работает быстро. В проекте используется файловая система Littlefs. После записи 5-7 файлов файловая система переходила в состояние "Только чтение" и всё - дальше только форматирование и опять запись не более чем 5-7 файлов (в зависимости от размера).
Код: Выделить всё
Corrupted dir pair at {0x1, 0x0}При определенных обстоятельствах микросхема перестает читаться. Вот, как это выглядит:

Стирание сектора занимает 18 мс. А через 56 мс после стирания сектора микросхема перестает читаться.
Файл логического анализатора прикрепляю. Вы можете его просмотреть даже, если у вас нет такого анализатора, достаточно установить программу по ссылке ниже.
Итого:
Почему так происходит, можно ли это как-то обойти - неизвестно. Принято решение отказаться от использования этих микросхем в пользу старого доброго Winbond.
Если вдруг кто сталкивался с таким же поведением и понимает, что это такое, напишите в комментариях.
Ссылки:
https://static.chipdip.ru/lib/706/DOC011706364.pdf
https://github.com/littlefs-project/littlefs
https://www.dreamsourcelab.com/download/