hd44780 0 6 августа, 2016 Опубликовано 6 августа, 2016 · Жалоба Привет всем. Вопрос по флэшке 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 ранее внимания не обращал, не знаю, что там было. Заранее спасибо. W25Q256FV_revF.pdf STM32F407_W25Q256_Test.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Шаманъ 1 6 августа, 2016 Опубликовано 6 августа, 2016 · Жалоба Произошло следующее: она работала нормально, но однажды (3 дня назад) для увеличения скорости я решил уменьшить делитель SPI5 F439 c 256 до 2. Частота в итоге получилась 45MHz/2=22.5MHz. Сама микруха по ДШ тянет до 50 MHz. Пару раз она отработала нормально, потом ушла в ступор. Я бы изучил подробно раздел 6.2 Write Protection и все, что к нему относится - скорее всего залочили какие-либо секторы или всю память, теперь надо снять защиту от записи. Кстати что там в статусных регистрах, смотрели? может наводки прилетели и убили её? Как-то маловероятно, что убилась одна запись. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 6 августа, 2016 Опубликовано 6 августа, 2016 · Жалоба Я бы изучил подробно раздел 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 0 6 августа, 2016 Опубликовано 6 августа, 2016 · Жалоба Подключалась в плате с процами всегда проводками ~10см. может наводки прилетели и убили её? Аурдиновские ноги из под рухнувшего проекта. Всё что работает на частотах выше мегагерца - необходимо устанавливать на печатную плату, на длинных проводах такие вещи просто не работают. Второе - режим записи устанавливается не мгновенно, чипу необходимо время для входа в режим. Пока чип в режиме ожидания - все остальные команды игнорируются. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Шаманъ 1 6 августа, 2016 Опубликовано 6 августа, 2016 · Жалоба Биты SRPx=0, BPx=0 - защиты нет. Я бы попробовал не смотря на состояние битов защиты еще раз выполнить команды по снятию всех возможных защит от записи/стирания. Как вариант проверьте не работает только стирание всего чипа или по блокам тоже? А программирование без стирания работает? Можете записать нули? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 6 августа, 2016 Опубликовано 6 августа, 2016 · Жалоба Пока множители меняли туда-сюда, могли и в других местах накосячить. Возьмите заведомо годную флешку и убедитесь, что все команды работают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Axel 1 6 августа, 2016 Опубликовано 6 августа, 2016 · Жалоба ...Всё что работает на частотах выше мегагерца - необходимо устанавливать на печатную плату... Весьма вероятная причина. По DS минимальчая скорость фронтов у этой чипы - 0.1V/ns. Предполагаю, что на концах Ваших проводов фронты будут поболее 30ns. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 6 августа, 2016 Опубликовано 6 августа, 2016 · Жалоба Поснимал биты защиты, прогнал EraseAll - около минуты, как было раньше - считал пару килобайт от начала - все 0xFF. После разрешения записи повставлял задержки на всякий случай. Завтра верну микруху обратно в основную схему ("чинил" на Ф4дискавери), проверю, отпишусь. Частоту там уже вернул обратно, не буду её трогать. Спасибо всем большое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 7 августа, 2016 Опубликовано 7 августа, 2016 · Жалоба Проверил - всё работает. Но осталась одна какая-то странность - эту разлочку надо делать каждый раз после выкл/вкл питания. Такое ощущение, что эти биты надо как-то сохранить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 225 8 августа, 2016 Опубликовано 8 августа, 2016 · Жалоба Всё что работает на частотах выше мегагерца - необходимо устанавливать на печатную плату, на длинных проводах такие вещи просто не работают. Думаю - проблема не в этом. 10см - не такая уж и большая длина. У меня сейчас в одном проекте LCD на такой длине на 4МГц стабильно работает и AT45DB321D на 18МГц на чуть меньшей длине - никаких проблем (на проводах оно находится конечно пока на этапе отладки, потом будет на плате). У автора проблема явно в другом. Я не раз работал с разными флешками на проводах на десятках МГц. На всех линиях включить подтяжки, внимательно и вдумчиво читать даташит - и всё будет ок. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться