Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Флэшка W25Q256FV + STM32F4xx
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
hd44780
Привет всем.
Вопрос по флэшке W25Q256FV 32МБ объёмом. Отдельного подфорума по микросхемам флэш-памяти я здесь на нашёл, потому пишу сюда, т.к. работаю с ней на STM32F407/439

Произошло следующее: она работала нормально, но однажды (3 дня назад) для увеличения скорости я решил уменьшить делитель SPI5 F439 c 256 до 2.
Частота в итоге получилась 45MHz/2=22.5MHz. Сама микруха по ДШ тянет до 50 MHz. Пару раз она отработала нормально, потом ушла в ступор.

Ступор заключается в каком-то залочивании записи - Команда Erase All отрабатывает мгновенно (по ДШ это длится 80 секунд, у меня по факту было 53-55 секунд), соответственно последующая запись не работает - читается то, что там было до этого "ЧП".
Всё остальное пашет нормально.
Обратное увеличение делителя до 256 ничего не дало.

Я вытащил всё необходимое тестовую прогу (кокос) для старой дискавери (которая на Ф407) приложил, также приложил и ДШ на микруху.
Посмотрите пожалуйста, может я какой нюанс упустил.
Нога nWP сидит на питании и всегда там была. На сбросе резюк 510 ом в питании. Это всё с первого дня эксплуатации. Стирал/записывал я её ну максимум раз 200, знакомый её трёт/пишет гораздо чаще и больше.
Подключалась в плате с процами всегда проводками ~10см. может наводки прилетели и убили её?

Смотрел под отладкой регистры после разрешения записи: SR1=02h; SR2=0x7C; SR3=03h
SR1=02h - запись разрешена (можно стирать/писать).
На значения SR2, SR3 ранее внимания не обращал, не знаю, что там было.

Заранее спасибо.
Шаманъ
Цитата(hd44780 @ Aug 6 2016, 09:47) *
Произошло следующее: она работала нормально, но однажды (3 дня назад) для увеличения скорости я решил уменьшить делитель SPI5 F439 c 256 до 2.
Частота в итоге получилась 45MHz/2=22.5MHz. Сама микруха по ДШ тянет до 50 MHz. Пару раз она отработала нормально, потом ушла в ступор.

Я бы изучил подробно раздел 6.2 Write Protection и все, что к нему относится - скорее всего залочили какие-либо секторы или всю память, теперь надо снять защиту от записи. Кстати что там в статусных регистрах, смотрели?

Цитата
может наводки прилетели и убили её?

Как-то маловероятно, что убилась одна запись.
hd44780
Цитата(Шаманъ @ Aug 6 2016, 11:23) *
Я бы изучил подробно раздел 6.2 Write Protection и все, что к нему относится - скорее всего залочили какие-либо секторы или всю память, теперь надо снять защиту от записи.
Кстати что там в статусных регистрах, смотрели?


В первом посте написал:

Смотрел под отладкой регистры после разрешения записи: SR1=02h; SR2=0x7C; SR3=03h
SR1=02h - запись разрешена (можно стирать/писать).
На значения SR2, SR3 ранее внимания не обращал, не знаю, что там было.

Биты SRPx=0, BPx=0 - защиты нет.
Едиственное, что я заметил - биты LBх=111 - Security Registers залочены. Это в SR2. Но что это за регистры, я так и не нашёл.
Там даются только их адреса и какая-то мутная фраза о том, что они "есть не везде, а только по заказу".

6.2 покурю ещё раз, мож упустил чего.
AVI-crak
Цитата(hd44780 @ Aug 6 2016, 13:47) *
Подключалась в плате с процами всегда проводками ~10см. может наводки прилетели и убили её?

Аурдиновские ноги из под рухнувшего проекта.
Всё что работает на частотах выше мегагерца - необходимо устанавливать на печатную плату, на длинных проводах такие вещи просто не работают.
Второе - режим записи устанавливается не мгновенно, чипу необходимо время для входа в режим. Пока чип в режиме ожидания - все остальные команды игнорируются.
Шаманъ
Цитата(hd44780 @ Aug 6 2016, 13:31) *
Биты SRPx=0, BPx=0 - защиты нет.

Я бы попробовал не смотря на состояние битов защиты еще раз выполнить команды по снятию всех возможных защит от записи/стирания.
Как вариант проверьте не работает только стирание всего чипа или по блокам тоже?
А программирование без стирания работает?
Можете записать нули?
scifi
Пока множители меняли туда-сюда, могли и в других местах накосячить. Возьмите заведомо годную флешку и убедитесь, что все команды работают.
Axel
Цитата(AVI-crak @ Aug 6 2016, 17:03) *
...Всё что работает на частотах выше мегагерца - необходимо устанавливать на печатную плату...


Весьма вероятная причина. По DS минимальчая скорость фронтов у этой чипы - 0.1V/ns. Предполагаю, что на концах Ваших проводов фронты будут поболее 30ns.
hd44780
Поснимал биты защиты, прогнал EraseAll - около минуты, как было раньше - считал пару килобайт от начала - все 0xFF.
После разрешения записи повставлял задержки на всякий случай.
Завтра верну микруху обратно в основную схему ("чинил" на Ф4дискавери), проверю, отпишусь. Частоту там уже вернул обратно, не буду её трогать.

Спасибо всем большое.
hd44780
Проверил - всё работает. Но осталась одна какая-то странность - эту разлочку надо делать каждый раз после выкл/вкл питания.
Такое ощущение, что эти биты надо как-то сохранить.
jcxz
Цитата(AVI-crak @ Aug 6 2016, 20:03) *
Всё что работает на частотах выше мегагерца - необходимо устанавливать на печатную плату, на длинных проводах такие вещи просто не работают.

Думаю - проблема не в этом. 10см - не такая уж и большая длина.
У меня сейчас в одном проекте LCD на такой длине на 4МГц стабильно работает и AT45DB321D на 18МГц на чуть меньшей длине - никаких проблем (на проводах оно находится конечно пока на этапе отладки, потом будет на плате). У автора проблема явно в другом. Я не раз работал с разными флешками на проводах на десятках МГц. На всех линиях включить подтяжки, внимательно и вдумчиво читать даташит - и всё будет ок.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.