Программатор SPI Flash своими руками

В общем это нужно чтобы перепрошивать 8 ножные SPI флешки. А это в свою очередь нужно чтобы восстанавливать роутеры, сбрасывать пароли на биосы и восстанавливать их, и много чего еще.

Будем делать за 10 минут самый простой программатор своими руками на Ардуино 🙂 Понадобится Arduino Pro Micro ну или любая другая (будет отличаться только распиновка на ардуино). Собираем эту сложную схему:

scheme_prog

Пофиг что 5 вольт, еще ничего не сгорело ни разу. Но только выпаивать флешки надо из платы, так как другие элементы могут быть не такими устойчивыми))))

prog_foto_1  prog_foto_2

Сама прога-программатор:

prog1

prog2

Скачать тут: SpiEepromFlasher.zip

Вот прошивка (скетч) для ардуины:

Ничего сложного и главное нет лишних деталей в схеме))) Главное правильные библиотеки — скачать их вместе с прошивкой тут: spi-eeprom-fw2.zip

Пробовал на флешках 25Q128FVSG, 25L3206E, еще какая-то роутерная безымянная.

Как выяснилось программатор может иногда не работать 🙂 Вариантов несколько:
— либо слишком длинные провода к флешке (нормально см 8-15)
— либо слишком китайская ардуина (например нано в3)
— либо дохлая флешка

← Previous post

Next post →

159 Comments

  1. Юрий

    Здравствуйте! А как с Вами можно связаться? Вопросик по этой программке появился

    • admin

      Здравствуйте, почта kovalev@skproj.ru

    • Александр

      Приветствую.
      Попробовал собрать данный прибор на UNO и на MEGA, работает на простых SPI 25-йсерии.
      Могу я вас попросить доработать устройство для работы с Flash AT45DB161 — Atmel ?
      Очень интересная микруха, а как правильно читать-записывать никак не разберусь.
      Спасибо.

      • admin

        Сейчас времени нет, но там в принципе не сложно, можете сами попробовать. Схема подключения другая и библиотеку для записи чтения можно найти

  2. Мансур

    Здравствуйте! Я всё скачал. прошил ардуину вашим скетчем. Но до меня не доходит как залить прошивку в флешь. Нету кнопки залить или закачать. Только сохранить получается. Подскажите пожалуйста. Очень надо прошить тв с 8 мегабайтной spi. Мой прогер только до 2-х мега берёт. И ещё не понял в архиве 3 файла. 1 то понятно скетч а 2 других куда?

    • admin

      Здравствуйте! Ставите курсор в начало флеша (на нулевую позицию) и нажимаете «вставить файл в текущую позицию», затем выбираете файл прошивки и ждете ))

      Насчет двух дополнительных файлов — это вспомогательные файлы с функциями для скетча, просто пусть они лежат в той же папке, что и сам файл скетча, ардруино сама их подцепит, с ними ничего делать не нужно.

  3. Иван

    Здравствуйте! А можно этим программатором шить флешки биосов материнок , если да а как туда залить (в прогу) прошивку для биоса?

    • admin

      Да наверно, надо только проверить что флешки именно с SPI интерфейсом и ее нужно все ж выпаять из материнки. Чтобы точно сказать напишите модель флешки.

      А чтобы прошить надо сначала сделать бекап (скачать фулфлеш). Потом поставить курсор на самый первый байт в редакторе и нажать «Вставить файл в текущую позицию»

  4. Filin

    Было бы здорово еще исходники проги-программатора заполучить, с целью общего развития и возможного допиливания 🙂

    • admin

      Для общего развития если просто посмотреть — можно декомпилировать без проблем)) а что Вы бы улучшили? Есть предложения? Я готов работать над программой.

      • Filin

        Декомпилировать — это для меня слишком круто 🙂 Я пока только начинаю интересоваться этой темой. Ну нет так нет, не критично. В любом случае спасибо за статью, для начинающего самое то — коротко и по делу.

        • admin

          Вот исходники консольной версии http://skproj.ru/wp-content/uploads/2016/05/SpiEepromCon.zip
          Если допилите, пожалуйста, поделитесь)) Внесу изменения в основную версию

          • URAsikkk

            Добавьте кнопку стереть флеш в 00000.Записывать биос нужно на чистую флеш(так работают все програматоры). И добавте кнопку «Определить размер флеш памяти», а так же кнопку «проверка памяти на битые сектора»…

  5. Виктор

    А если я буду использовать аналог Меги2560 — что нужно изменить? Хочу попробовать прошить флэш мульта ноутбука. Еще есть у мня USB-TTL и COM-TTL переходники. Может как-то с их помощью можно прошить?

    • admin

      Думаю с мегой2560 проблем не возникнет, номера ног для MOSI, MISO и SCK немного другие, но они должны быть соседние.
      Насчет USB-TTL и COM-TTL не знаю, мне кажется есть какие-нибудь программаторы, которые работают через эти переходники, но я не встречал

  6. Виктор

    я так понял -= у вас 2-й пин это SDA. 15й — SCL, 14- MISO 16 — MOSI. это аппаратная распиновка предусмотренная изготовителем контроллера?

    тогда на Mega2560 20й пин — SDA, 21й — SCL, 50 — miso, 51 — mosi. Так и подпаивать к флэшке?

    SDA — нога 1
    MISO — нога 2
    VCC — нога 3, 7, 8
    GND — нога 4
    MOSI — нога 5
    SCL — нога 6

    правильно?

    скетч я уже залил в контроллер, в программку Вашу загрузил BIN с прошивкой, контроллер при прошивке в пустоту мигает светодиодами. осталось припаять пациента и экспериментировать.

    • admin

      Немного не так, CS нога флешки должна идти к D2 (Digital 2). Еще SCL на меге2560 52 пин. MISO и MOSI правильно. Вот тут таблица есть https://www.arduino.cc/en/Reference/SPI

      • Виктор

        Смотрел по схеме. да, 52 пин это SCK. Просто у меня на плате есть надписи где 21 — SCL.

        А вообще я ступил, тут же прям посередине платы есть 6-пиновый разъем ICSP — буду от туда подключатся. там и MISO и MOSI и SCK и Vcc и GND. А 2-й пин значит задается в скетче в начале?

        По поводу переходников — они наверное в другой ситуации используются, там интерфейс UART, т.е. по Rx и Tx данные передаются.

        • admin

          Я чет не уверен что тот 6 пиновый разъем по середине — то что надо. Все ж лучше по таблице делать https://www.arduino.cc/en/Reference/SPI
          Хотя проверить не мешает, может правда просто продублировали ноги в другое место

        • admin

          а 2 пин да, задается в начале. Можно любой использовать какой нравится)

          • uraasikkk

            у ардуино Уно например 2 пин не работает-софт спифлешер виснет.Работает только на 10 пине(проверено лично) Как видим по распиновке на https://www.arduino.cc/en/Reference/SPI указан имено 10 пин)

  7. Виктор

    Да. и на 2560 есть 2 питания 3,3v и 5v, какое надежнее использовать?

    • admin

      Я все делал на 5 вольтах, хотя по документации надо 3.3. попробуйте 3.3 — если не заработает тогда 5 🙂

  8. Виктор

    а какой размер выставлять? в даташите есть такая инфа:

    Pm25LD010: 128K x 8 (1 Mbit)

    • admin

      128 килобайт

      • Виктор

        Все. Спасибо дружище. Прошил флэху. Ноут сразу запустился. До этого лежал мертвым, даже индикации заряда АКБ небыло.

  9. Александр

    Скетч залил на Ардуино Уно. При запуске SpiEepromFlasher выдается сообщение о том, что тот не является приложением WIN32. У меня XP. Нужна WIN7 ?

    • admin

      Нужен .net framework 4.5 и 64 разрядная операционная система

      • urasikkk

        Системные требования не помешают)

  10. Александр

    При попытке перезалить скетч выдает : Arduino: 1.6.6 (Windows XP), Плата:»Arduino/Genuino Uno»

    avr-g++: error: missing filename after ‘-o’

    exit status 1
    Ошибка компиляции.

    • Александр

      Установил последнюю версию Arduino IDE, скетч залил без ошибок. Буду искать 64 разрядную ОС.

  11. Александр

    Всё прошил на отлично !
    Теперь подробнее, возможно кому-то поможет. ОС WIN 7 32-разрядная(достаточно оказалось), на всякий случай поставил последнюю версию Net.framework 4.5.
    Плата китайская Ардуино Uno.
    Подключение :
    Ардуино Микросхема
    2 1 D2
    12 2 MISO
    3.3 v 3, 7, 8 Vcc
    GND 4 GND
    11 5 MOSI
    13 6 SCL
    Автору — искренняя благодарность !!!!
    P.s. а какие еще типы флешек можно прошивать по Вашей методике ?

    • admin

      Был рад помочь. Только SPI флешки

      • Виктор

        Доброго дня. Сегдня принесли автомобильный видеорегистратор, висит на заставке. Пробую прошить. На офсайте прошивка заливается через SD карту. Результата нет — закачал на Sd, включил — все равно не прошился. Я его разобрал и сразу обратил внимание на SPI память с маркировкой 25L320SE. Я так понял микропрограмма вся хранится на этой флэшке? может также прошить с ардуины? других микросхем памяти я не нашел на плате. файл прошивка в формате BIN.

        • Виктор

          сори 25L3206E. такая как у Вас в инструкции.

    • Виктор

      я вообще на WIN 10 64x шил. все в норме прошло. Воскресил ноутбук) щас буду пробовать регистратор восстановить. А вообще заказал программатор на aliexpress что б не паяться к ножкам. стоит он 200 рублей.

  12. Денис

    Спасибо автору!
    Этим способом удалось прошить SATA контроллер.

  13. Легион

    Шил 25032xx Через переходник 5 ->3.3 читает но не пишет. Воткнул напрямую. Шьет. Спасибо.

  14. Metamorf

    Распиновка Arduino nano v3.0
    1 — d2
    2 — 12
    3,7,8 — vcc (5v)
    4 — GND
    5 — 11
    6 — 13

  15. Андрей

    Привет, микросхема 25l8006e со скаллера (после кривой прошивки через усб, была не вовремя прервана). При запуске этого программатора, после выбора нужного ком-порта, открывается окно программы с белым экраном вместо данных и зависает — not responding. Куда копать? Большое Спасибо.

    • admin

      Привет, ну либо провода слишком длинные либо что то с ардуиной не то. попробуйте подключится к ней через монитор порта на скорости 115200 и отправить букву t — если напишет COM ok то проблемы между флешкой и ардуиной или с самой флешкой. Если не напишет COM ok тогда что то не то с ардуиной 🙂
      Если с флешкой проблема попробуйте укоротить провода к ней, ну или другую флешку, может какая-то несовместимость 🙂 Еще почему то не всегда программатор с arduino mini работает

      • Андрей

        Получилось с Мегой! С Nano v3 на отрез отказывается работать. Спасибище!!! 🙂

  16. Сергей

    Всё отлично, хороший программатор на скорую руку получается. Автору огромное спасибо. Только вот я его нагуглил, когда хотел прошить 93C56… А такие маленькие он не шьет(

    • admin

      прошьет))поставьте минимальный размер при прошивке. если нужно считать — фулфлеш потом обрежете просто. а если нужно записать — курсор ставьте на первый байт и записывайте файл нужного размера, хоть 64 байта ))

  17. Алексей

    Спасибо автору! Если внимательно прочитать и сделать как описано, то все получится! Впервые решил перепрошить роутер. Была под рукой запылившаяся Ардуино Нано. Соединил провода. Скачал последний IDE. Прошил успешно!!!

  18. Павел

    Спасибо автору огромное! Очень помогло! Вот только не решил проблему: на меге 2560 первые 128 байт заливаются сплошные FF.

  19. Константин

    Все собрал. ID читает. После нажатия на считывание фулфлеш программа перестает отвечать. Как с этим бороться? Заранее спасибо

    • admin

      Вариантов несколько:
      — либо слишком длинные провода к флешке
      — либо слишком китайская ардуина (например нано в3)
      — либо дохлая флешка

      • urasikkk

        Как узнаеш что флешка дохлая? Может есть скетч который это проверит?

  20. Илья

    Огромное спасибо автору! Восстановил камеру Soocoo C30 после неудачной прошивки. Все супер !

  21. Wikly

    Автор молодец! Спасибо! Было бы прям совсем отлично, если бы сама прога на ПК была под 32х разрядную систему!

    • Wikly

      И еще, при попытке скачать фулфлеш, почему то сохраняется только 4 КБ из 4096. Хм.
      Arduino UNO,
      flash: Winbond w25q32bv

  22. Андрей

    Здравствуйте, помогите с Ардуино Уно Китайский.
    Заливаю скетч проверка проходит. Но когда делаю выгрузку. Сыпет ошибкой.
    Arduino: 1.6.5 (Windows 7), Плата»Arduino Uno»
    Изменена опция сборки, пересобираем все
    Sketch uses 4 332 bytes (13%) of program storage space. Maximum is 32 256 bytes.
    Global variables use 1 276 bytes (62%) of dynamic memory, leaving 772 bytes for local variables. Maximum is 2 048 bytes.
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xc9
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xc9
    Проблема загрузки на плату. Для достижения дзен, курить http://www.arduino.cc/en/Guide/Troubleshooting#upload .
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xc9
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xc9
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xc9
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xc9
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xc9
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xc9
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xc9
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xc9
    Это сообщение будет содержать больше информации чем
    «Отображать вывод во время компиляции»
    включено в Файл > Настройки

  23. alexgz

    Прошил флешку W25Q64FVSIG. арудиной наной на меге168 и консольной версией прогивальщика . Немного пришлось подправить код.
    Спасибо большое!!!

    • admin

      А что подправили? поделитесь? 🙂

  24. Борис

    Спасибо автору за идею.
    Пробовал на плате через SPI разъем шить — не получилось. Прочитать смог. Стереть — тоже. Буду выпаивать. Ардуина UNO китайская (максимальная скорость 115200). Через flashrom — то же самое. Для надежности поставил делители напряжения. Пробовал со скоростью играться — не помогает.

  25. Борис

    Дополняю: флешка SST25VF080B.
    Хотелось бы в программе иметь возможность не писать флешку целиком, а только измененный блок. Или она так и делает? Не смотрел…

  26. Борис

    Прошил flashrom-ом. И только выпаянный чип с первого раза.
    Данная программа не помогла.

  27. Дима

    Скажите, а ST95080W можно шить так? Есть Мега и надо прошить дампом флешь от принтера.

  28. Bozar

    а китайская uno R3 сможет полноценно работать?

  29. Степан

    Большущее спасибо за статью и софт! Спас жизнь материнке 🙂

  30. Павел

    Здравствуйте!

    Собрал данный программатор, всё работает, но есть беда.
    Выбираю файл дампа биоса, а в банку флешера он не отображается — как были нули везде, так и записываются нули, а не мой файл.
    Как туда код засунуть нужный?

    • admin

      Здравствуйте! поставьте курсор в начало флеша (на нулевую позицию) и нажимаете «вставить файл в текущую позицию», затем выбираете файл прошивки и ждите. Если не помогло то возможно либо у вас файл из нулей, либо что-то собрано не так

      • Павел

        Именно так и делаю. Файл точно не из нулей — хекс редактором смотрел. И что интересно, когда считывал микросхему, там были FFF и т.д., а после записи, стали одни нули. Получается, что работает всё правильно, считывает-записывает, но не то что нужно. Есть ли ограничение на размер файла дампа во флешере? Он у меня 16 мегабайт.

      • Павел

        И ещё момент, если физически переподключить ардуино перед запуском флешера — пишет разные device ID. То FFF, то 0, а сейчас вот EF40 написал.

        • admin

          вероятно у вас слишком длинные провода между флешкой и ардуиной. попробуйте сантиметра три оставить

        • Денис

          Здравствуйте. Те же яйца. При запуске скачанного флешера, в окне НЕХ редактора уже есть какой-то код, т.е. видно что это какая-то прошивка (НЕ МОЯ). При попытке выставить курсор на 00 и нажать «Вставить файл с текущей позиции», выбрать при этом свою прошивку — начинается процесс, флешка шьется. Если потом считать — то выдно, что флешка прошилась, только не моим файлом, а тем что было в окне НЕХ редактора ((((
          Может есть предыдущая версия флешера?

          • admin

            Здравствуйте. При запуске флешера в окне НЕХ редактора уже есть бинарник — это ваша текущая прошивка. Данные в это окно загружаются из флешки, а не наоборот.
            Флешер не может шить повторно содержимое HEX редактора, он не запрограммирован на это. Данные берутся из файла, которые вы указываете, а не из окна HEX. Скорее всего флешер просто не может прошить ваш файл по каким то причинам.

            Проверьте все еще раз внимательно, особенно длину проводов. Прям попробуйте те провода, которые до флешки, 3-4 см оставить

        • urasikkk

          таже беда- но читает и даже пишет в память исправно.провода мои по 20-25 см на скрутке.

      • Павел

        И вот ещё нашёл библиотеки для SPIFlash с поддержкой почти всех возможных чипов: https://github.com/Marzogh/SPIFlash/releases/tag/v2.4.0

        Можно ли их как-то использовать с данным флешером?

        • admin

          К сожалению нет времени, но к счастью можно использовать) если сможете сделать — делитесь скетчем, все будут рады!

  31. Олег

    Здравия желаю!
    Скажите пожалуйста, можно ли данным способом залить дамп в FL127SIF10 ?
    .pdf —> http://www.cypress.com/file/177961/download
    Cпасибо.

    • admin

      Попробуйте, наверное можно 🙂

  32. Рафаэль

    Прошил spi флэш winbond с матплаты принтера Canon. Пришлось повозиться т.к. в первый раз такое делаю )))
    Поскольку не знал как по другому подключиться — припаивался к каждой ноге отдельным проводком
    Соединять c Arduino Uno надо по следующей схеме
    2pin — CS
    11pin — MOSI
    12pin — MISO
    13pin — SCLK
    GND — GND
    3.3V — VCC
    Схему выходов (CS, MOSI, MISO и другие) на вашей флешке легко найти в интернете. У меня были так: левый ряд (где контрольная точка, от нее) сверху вниз: CS, MISO, VCC, GND, правый ряд (который без точки) сверху вниз: VCC, VCC, SCLK, MOSI.
    Важная особенность — если ноги слишком длинные, то либо не считывает либо считывает но с ошибками. Проверял после заливки скачиванием залитого фуллфлеш и проверкой контрольной суммы с исходным файлом. Когда проводки были слишком длинные — дампы не совпадали. Остановился на 15 см длине проводов, так все работает стабильно.

    • Victory

      Рафаель добрый вечер. Вы бы не могли мне на почту сбросить фотку или от руки зарисуйте схему подключения spi k arduino uno и какой вы использовали скэч для загрузки в ардуино? заранее благодарен. victory-sokolovsky@mail.ru

  33. Artur

    Проверил на Arduino Nano через ISP порт (6 пиновый). Читал 25P16VG (208mil). Все считалось без проблем.
    Сначала не понял как сохранять… Потом просто добавит .hex прошивка скачалась. Спасибо.

  34. Дмитрий Макаров

    Сначала было подумал не работает. Отлично работает! pm25ld010 .SPI. 1мбит
    Сразу не заработало, потом работало через раз. Проблема оказалось в подключении. Сделал провода как можно короче (4-5 см)[по совету из другого форума] и конденсатор (222К 1 KV, быо под рукой) прямо у ног флешки (между vcc , gnd) arduino pro mini 16к, 5в. Через uart прошиватель про, в режиме 3.3в. Без каких либо поправок в скетче, и exe программы из статьи. Спасибо автору.

    • Здравствуйте Дмитрий Макаров! У меня тоже arduino pro mini 16k, 5v и uart pro, при загрузке скетча пишет ошибка компиляции, flash W25Q32vb и файл SpiEepromFlasher при открытии пишет приложение не win32, установлена XP32bit. Не могли бы Вы написать подробнее последовательность действий с ардуино, и как запустить файл SpiEepromFlasher.exe. Спасибо. dmi-roman@yandex.ru

    • Vlad

      Спасибо за идею про конденсатор!
      Прошивка писалась с ошибками и каждый раз — разный результат.
      Запаял керамический конденсатор между Vcc и GND поближе к флешке — и с первого раза прошилась без ошибок.

  35. mdrs

    Arduino Nano V3 (Кытай) — mx25l8005 без проблем прошиваются.

    • Ricks

      Какую распиновку на ардуинке делали? Я ещё только начал в тему вливаться.

  36. Виталий

    Спасибо автору за труд!
    По работе часто прошиваю spi флеши. Ремонтирую ноутбуки. Приказал долго жить программатор. Ваше решение спасло.
    Но . 4 мегабайтная флеш шьется минут 15. Нельзя ли увеличить скорость?
    Спасибо !

    • admin

      На новых ардуинах можно, но тогда не будет совместимости со старыми дешевыми нано и уно

  37. SpiEepromFlasher не открывает winXP пишет файл не является приложением win32, только этот файл.

  38. Здравствуйте! Подскажите пожалуйста, файл SpiEepromFlasher в winXP не открывает этот файл пишет приложение не win32,в чем может быть проблема. Не открывает только этот файл, антивирус не ругается.

    • admin

      Надо поставить .NET фреймворк

  39. Алексей

    Всем привет!

    Хотел прошить Winbond 25Q128BVFG используя Arduino Duemilanove (пины изменил на другие согласно документации Arduino SPI) и столкнулся со странной проблемой — программа после запуска считывает только Device ID и после этого зависает. Никаких считываний с флешки не происходит согласно светодиодам.

    В то же время через com-порт если вручную команды кидать, то ардуино откликается, так же выдает девайс ID, можно запросить прочитать байты из флешки и т.д. Т.е. похоже на нормальную работу самой ардуины.

    ОС у меня — Win7x64. В чем тут может быть проблема?

    • admin

      Надо пробовать отладить сам прошивальщик из визуал студио. Если интересно попробуйте отладить консольную версию. Если получится выкладывайте сюда))

  40. Возможно ли этим программатором шить EEPROM микросхемы? 24LC32A к примеру?

  41. Руслан

    спасибо. получилось с первого раза. использовал Уно.
    а микросхему 25l8000 даже не выпаивал с платы. приподнял первую ножку (cs) и провода припаял прям на плату. питание брал с Уно 3.3В.

  42. Руслан

    СПАСИБО! УСПЕХОВ ТЕБЕ АВТОР!
    После неудачной прошивки MSI 760G-P43 образовался кирпич.
    Взял ARDUINO UNO на ch340 от ROBOTDYN подключил к разъему JSPI1 питание взял с уны. Проводки по 10 см. Сама микруха на плате 25q16 на 2 мегабайта. Батарейку не вынимал, плту полностью отключил, проц память снял. Прошил с первого раза, сразу запустилась.
    Автор еще раз СПАСИБО, удачи в твоем не легком деле.

  43. Юрий

    спасибо за чудо-программатор!
    с китайской нано в3 не заработала программа. программа зависла. в мониторе порта вообще ничего не писалось.
    на уно сделал те же манипуляции и все получилось.

  44. сергей

    можно ли им прошить m25px80?

  45. Александр

    Приветствую вас форумчане !!! Собрал это чуда на Uno r3 от ROBOTDYN )) Программатор запустился )) Но при попытке считать микруху (pm25LD010) пишет нули и ID:0 . У кого какие есть соображения ???

    • Александр

      В дополнение : думал что скисла флеша купил новую … результат тот же )))

  46. Николай

    Всем привет.
    Респект и уважуха автору. Всё прекрасно работает. Получилось проапгрейдить D-link DIR-615 E4 на 16 Mb.
    Хочу поделиться своими трудностями и найденным решением.
    Под рукой оказалась только кетайская Arduino UNO R3 Mega 328P-AU на CH340G — программатор её не видел, белый экран, эха c COM-порта не обнаружено и это несмотря на то что скетч залился нормально.
    Сначала грешил на длину проводов/какчество пайки, но погуглив чуток нашёл что кетайские товарищи в эту ардуину на линии RX и TX зачем-то залепили резисторы по 1 килоому, заменил их на 220 Ом и «о чудо» — всё заработало.
    Может это поможет кому ещё.
    Автору спасибо.

  47. Автору спасибо! Pm25LV010 считалась и прошилась быстро и легко через Мегу.
    Вопрос — будут ли шиться флешки 24 серии? Там же вроде I2C, а не SPI

  48. Вадим

    все работает на UNO! на Nano висит программа при запуске! спасибо огромное автору!

  49. Alexey

    Всем привет.
    Прошивал несколько раз SPI флеш материнок, все работало.
    Сегодня пробовал прошить SPI flash pm25lv512, читает корректно, и пишет без ошибок, однако при чтении видно, что часть данных не совпадает.
    Думал, бракованный чип — попробовал два других результат аналогичный.
    То ли флешки мелких размеров не пишутся, то ли есть особенности записи на такие чипы.
    Может у кого получалось?

  50. Роман

    Огромная благодарность автору! хотелось бы развития этого проекта, очень хорошая вещь)

  51. Владимир

    Спасибо автору.
    Но вот про 5в не пофиг. Максимальное питание в даташитах микросхем умные дядьки разработчики оных, не с забора списывают.
    Соблюдайте номинал VCC.

  52. Помогите не вижу что и какие данные подправить в скетче((( плата teensy++ тут фото и распин той и этой платы распин нашел , а скетч беда

    https://mega.nz/#!eZMXCJIa!gsmWaP5HIb3RP2A9azQ8jlOWAR8Qmy7c1escR6M9rLw

    фото той и этой платы распин нашел , в скетче беда ((((

  53. Eвгений-Р

    день добрый! помогите ререписать скетч под teency++ распин нашол ,но в скетче не не вижу ни 15-16,2 ,sclk,miso… т.д. туповат я (( фото распина
    https://mega.nz/#!eZMXCJIa!gsmWaP5HIb3RP2A9azQ8jlOWAR8Qmy7c1escR6M9rLw

  54. dimoncha

    Скажите, пожалуйста, если у меня ардуино нано в.3 с распиновкой отсюда http://www.5v.ru/nano30-ch340g.htm (где d11-mosi, d12-miso, 3V3-3,3в, A4-SDA, d13-sck, GND-GND) подключать память следующим образом?
    Память Ардуинo
    1 (CS) — A4
    2 (D0) — D12
    3 (WP) — 3V3
    4(GND) — GND
    5(D1) — D11
    6(CLK) — D13
    7,8(HOLD,VCC) — 3V3
    Или CLK памяти надо кинуть на SCL (A5) ногу ардуины? WP и HOLD лучше запитать 3,3В или 5В?

  55. Дмитрий

    Рафаэль, спасибо за распиновку, а автору огромное спасибо за проект! Все получилось после долгих попыток прошить USBASP-ом

  56. Олег Смирнов

    Хосподи божеж ты мой !!!!
    Ну что я только не делал !!!
    Ну виснет программа — и всё тут !!
    ProMini 3v 8 mhz — виснет…
    Нано китайская — виснет…
    Нано оригинальная — виснет…
    конденсатор на выводы- висим…
    Вин7 — висим..
    Вин10 — висим..
    дот нет фреймворк свежий — висим…

    И тут уже в 10 вечера — достатый ис каропки пыльный freeduino-2013 — левый прелевый — работает !!!!

    Ну афффтор ты и прогу накатал !!! 🙂
    Безусловно полезную, и невероятно капризную.

    ну попробую прошить что нибудь….

  57. roos

    такая беда, при записи визуально все идет ок.
    После перезапуска первые ячейки до адреса 1000 — все FF.
    А потом идут нужные данные (какое-то смещение)
    Читает нормально.
    uno r3 china
    25032fvsig
    win 7\32bit (после выхода из прогера всегда ошибка(платформа .net framework указанный порт не существует))
    .net 4.5

  58. Роман

    А можно написать распиновку на Arduino MEGA 2560

  59. Андрей

    Спасибо автору, метод работает прошил биос IdeaPad S110 Lenovo. Сама микруха была winbond 25q16bvsig. Прошивал Mega2560. Слил дамп на всякий случай и нашел в нем пароль от HDD в этой области 0x0018b4c4.

  60. Анатолий

    Добрые сутки)). При попытке отладить консольную версию Вашей программы возникает не обработанное исключение в строке 16:
    ‘_s = new SerialPort(args[0], 115200) { DtrEnable = true, NewLine = «\n» };’
    с выдачей сообщения:
    «_s = new SerialPort(args[0], 115200) { DtrEnable = true, NewLine = «\n» };». Значение args[0] ={string[0]}. Подскажите, пожалуйста, где «копать»?

  61. Анатолий

    GUI-версия зависает после выдачи ID=FF40

  62. Анатолий

    Спасибо разобрался. Не указал параметры командной строки(4 параметра)

  63. Анатолий

    Консольная версия шьет нормально, а вот читать не хочет — виснет. Прогнал в отладчике. Выяснил, что значения для чтения 4096 нужно уменьшить до 2048. В скетче тоже. Теперь и шьет и читает нормально. Плата Ардуино Про мини 5 вольт. Виндовс-версия не пошла, видимо по этой же причине.

  64. Анатолий

    Спасибо за технохрень))

  65. lozavideo

    Добрый вечер
    Я так понял для ардуино uno ревизии 3
    распиновка
    sck 13
    miso 12
    mosi 11
    ss 10
    правильно?
    я пробывал eeprom 24C64WR и 25LD010
    не удаётся прочитать

  66. Валериан

    Как не мучал китайскую nano v3 ничего не вышло. как только взял UNO китайскую, заработало с пол пинка. Прошивал/читал 25Q64FV. Из-за 1 бита в дампе не инициализировался принтер. Хоть в датащите и указано 3,6 вольта максимум, подключил как на схеме и ничего не сгорело. Распиновка для nano/uno
    D2 -> /CS (указывается в скече, строка SPIFlash flash(2, 0);)
    D11 -> MOSI
    D12 -> MISO
    D13 -> SCLK
    VCC -> VCC + /HOLD + /WP
    GND -> GND
    Автору огромное спасибо за труды.

  67. Виктор

    Кто подскажет у меня флэшка 25q32b-104hip когда буду прошивать какой размер ставить ? Я новичек

  68. Виктор

    Сколько указывать память при прошивке 25q32b-104hip

  69. ВИКТОР

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

  70. Виктор

    Почему когда считываю то в итоге один нули, процесс длиться долго а потом открываю файл блокнота там пусто но файл весит 4мегабайта

  71. Станислав

    Попробовал на леонардо прочитать fm25v02 вроде читает. (id 7f7f )
    но когда попробовал прошить он зашил 80 в несколько участков хотя пробовал нули зашить.Может подскажите где подправить.

  72. Alexander

    В GUIшной проге надо обязательно сделать выбор скорости порта.
    У меня mega2560 пишет с кучей ошибок. Взял сырцы консольной версии, поставил скорость 38400 в проге и в скетче. Всё прошилось без проблем.

  73. Игорь

    прошил по данной инструкции W25Q64JVSIQ, спасибо огромное

  74. Иван

    собрал, прошиваю, всё хорошо, НО!
    при попытке залить на флешку 25q64 (пробовал 3 флешки) биос от матери asus h81m-k (пробовал разные версии) в итоге все биты перемешиваются
    подскажите кто знает.
    ЗЫ. если заливаю на ЭТУ ЖЕ флешку другой биос, всё нормально

  75. Qwertyer123

    НА китайской мега2560 первые 128 бит в ffffffff. или я не правильно выбрал размер флешки? 8 МБ сколькро ставить

  76. Vlad

    собрал программатор, всё прекрасно считывает и записывает. Укомплектовал кроваткой для чипов биоса, 3 между ардуиной и чипом поставил стабилизатор 1117 на 3.3в + cmd электролит 1uF, чтоб всё по феншую, так сказать.

  77. админ однозначно крут, искал даташит на spi а нашел 🙂 черкани на досуге если не занят, с меня сок https://t.me/Bgp_1

  78. Дмитрий

    Спасибо автору!
    Lenovo b560 перестал включаться.
    Прошил PM25LD010 по данной статье. Прошивал с помощью китайской robotdyn uno r3. Распиновка:
    3.3V — на 3,7,8 ногу микросхемы
    GND — на 4 ногу
    Digital11 — на 5
    Digital12 — на 2
    Digital13 — на 6
    Digital2 — на 1

    Так же проверено с микросхемой W25Q80BVSIG

  79. esdf

    eMMC прошить возможно ??

  80. Victor

    Здравствуйте столкнулся с 25LF040A самое интересное читатся она читается а вот записыватся не хочет напроч хотя другие нормально и читаются и пишутся что может быть ?

  81. Victor

    В общем проблему я нашел в чем дело флешка защищёна от записи сначала ее нужно снять нашел тут http://vlab.su/viewtopic.php?f=222&t=62821
    SST25VF040A
    в конце темы описано
    Можете добавить кнопку разблокировки флешки от записи в программу
    ___________________________________
    Прошивка да родная .
    Значит не как не получалось очистить Флешку 25lf040a .
    Пробовал : программы V1.18 V1.19 V1.30 , не одна
    не может очистить флешку .
    Потом я полез в инет , и начал искать похожие проблемы ,
    да есть такие приколы что на некоторых флехах стоит защита
    от записи или стирания . И начал я искать как народ решает эту проблему ,
    и нашёл решение , какой то программер изменил программу V1.19 и добавил
    в неё изменения — которые снимают защиту от записи и стирания . Её я скачал
    установил и легко стёр флешку и загнал прошивку .
    Запаял Флешку 25lf040a в материнку , запустил , запустилась , пишет зайти в биос или
    перезагрузка и всё дальше повисло , следующие включения чёрный экран , плюнул я на это всё
    дело и не стал заморачиваться (нету время и материнка старая ) .
    Вердикт , что то на материнке неисправное которое сносит Биос.
    Выбирал в программе:тип 25/26SPI FLASH;завод SST ;имя SST25VF040A
    ________________________________________________________

  82. Михаил

    Дорабатывалась ли эта программа?

    Нужно ли как-то чистить, стирать флешку перед записью? С другими программаторами говорят перед записью нужно стереть. Как тут это реализовано?

  83. C9VA

    Доброго. Ноут (Y50-70) мамка (ZIVY2 LA-B111P ) прошивку нашёл там два файла .
    Основная прошивка ZIVY2 LA-B111P REV 1 0.BIN — 8 388 608 байт
    И ещё Lenovo Y50-70 ZIVY2 LA-B111P REV-1.0 EC.bin — 131 072 байт
    Флеха mx25l6473e
    Грел станцией чтобы снять грел, грел не снял врубаю не включается думал перегрел флеху сгорела, потом добавил температуры снял, подпаялся читается пишется первый понятно основная прошивка в 8 мег зашил впаял включается и горит питание и клавиатура подсветки экран чёрный для чего второй файл не понимаю, всё таки сдохла флеха или надо ещё второй файл куда-то зашить? Причина прошивки биос под пасом с рук брал не посмотрел.

  84. Алексей

    Перепрошил 25Q128FVEG на умершем MIO MIVUE 568 по инструкции, используя китайскую mega2560. Пришлось повозиться с отпаиванием/припаиванием микросхемы, но в итоге все заработало на ура! Огромное спасибо автору!

  85. Большущее СПАСИБО !!!!!

  86. agusnat

    Hi amazing job, I can read/write winbond chips without a problem, but with a gigadevice 25b64bsig i have integrity issues on the dumped file, this issue can be fixed? How?

  87. Сонёнаг

    Прошил 25q32vfsiq + arduino nano v3.

  88. Serhii Shevchuk

    есть под руками esp8266
    немного переделал скетч поменял библиотеки #include
    на extern
    «C» {
    #include «user_interface.h»
    }
    и изменил пин вроди в esp он
    SPIFlash flash(D2, 0);
    Остальное без изменений.

    Скомпилилось и залилось, но правильно ли хз, пробовал и просто 2 так и сяк запускать, и как понятно не работакет прога, просто зависает и все… смотрел по рапиновке пинов, все подключил правильно юзал 3.3 правда на 5 стремно, Смотрел исходники но там какаято ошибка при запуске дальше не стал разбираться. Но если у кого получилось с Nodemcu esp8266 12e прошить W25Q64JVSIQ или что подобное прошу уведомить на емайл! serh007@gmail.com

  89. Андрей

    У меня полная имитация нормальной работы, диоды мигают, программа всякий раз рапортует «готово», никакой ругани на ошибки что при чтении, что при записи. Но считываю исключительно одни нули, даже после того как успешно записал bin.
    Ардуино мега, win7(x32), NET.framework 4.0.
    Если чего-то недостает, например не тот фреймворк, или неправильно подключил, сообщение об ошибке должно быть?
    После загрузки моего файла в буфер программы, в хекс-окне должен отобразиться мой файл? У меня и в этом случае нули.
    Провода примерно 5-10см. Если дело в подключении, должно быть сообщение об ошибке?

  90. Аллайя

    Я бы флэшы на 1.8 вольта все же через «Зенера» запитывал…

  91. Аллайя

    Может кому будет полезно.
    Подключение флешек на 1.8 вольта — https://disk.yandex.ru/i/TAQuHij2_kf1Fg

  92. Denis

    добрый день , можно схему и LAY ?

  93. Denis

    добрый ден ь , можно получить схему и lay ?

  94. Stewart

    Доброго. Интересная штука. Можно исходник проги? Пусть консольной. Stew_art@mail.ru

  95. александр

    спасибо большое,прошил с первого раза,теперь есть в биосе ME FW,(до этого было N/A),без этого заводской разгон платы Asus Z87-A не работал.
    шил с arduino nano(c alie…ss)напряжением 3.3в запитывал с её источника.

  96. Дмитрий

    Если Вы еще живете, есть вопрос. Как быть с флешками на 1.8 Вольт. Очень актуально.

  97. Ivan

    25L3206E — не пойму какой размер для этого чипа указывать в программе? DATASHEET на эту микросхему выдает такую информацию:
    GENERAL
    • Single Power Supply Operation
    — 2.7 to 3.6 volt for read, erase, and program operations
    • Serial Peripheral Interface compatible — Mode 0 and Mode 3
    • 33,554,432 x 1 bit structure or 16,777,216 x 2 bits (Dual Output mode) structure
    • 1024 Equal Sectors with 4K byte each
    — Any Sector can be erased individually
    • 64 Equal Blocks with 64K byte each
    — Any Block can be erased individually
    • Program Capability
    — Byte base
    — Page base (256 bytes)
    • Latch-up protected to 100mA from -1V to Vcc +1V

  98. Кирилл

    Здравствуйте, а можно ли данный скетч в stm32 блюпил залить? , Ардуино сейчас stm поддерживает(если ядро соответствующее установить), и я уже много что сделал на стм — они мне больше нравятся)

  99. Roman

    Привет!
    Есть мысли, как сделать из твоей идеи продукт, достойно занимающий свое место среди всего многообразия SPI программаторов.
    Не хочу светить идею на все интернет-пространство. Если интересно, напиши об этом мне на мыло, которое я оставил при регистрации.
    А пока замечание к софту только одно — появились флешки с объемом 32 и 64 метра и девайсы с такими флешками. У тебя в программе ограничение на 16 метров.
    Кроме того, 3 и 7 ногу нужно подключать к питанию через сопротивление 4,7кОм, а ардуинки использовать на 3.3В (PRO Micro).

Добавить комментарий для Игорь Отменить ответ