В общем это нужно чтобы перепрошивать 8 ножные SPI флешки. А это в свою очередь нужно чтобы восстанавливать роутеры, сбрасывать пароли на биосы и восстанавливать их, и много чего еще.
Будем делать за 10 минут самый простой программатор своими руками на Ардуино 🙂 Понадобится Arduino Pro Micro ну или любая другая (будет отличаться только распиновка на ардуино). Собираем эту сложную схему:
Пофиг что 5 вольт, еще ничего не сгорело ни разу. Но только выпаивать флешки надо из платы, так как другие элементы могут быть не такими устойчивыми))))
Сама прога-программатор:
Скачать тут: SpiEepromFlasher.zip
Вот прошивка (скетч) для ардуины:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
#include "SPIFlash.h" #include <SPI.h> #include <avr/wdt.h> ////////////////////////////////////////// // flash(SPI_CS, MANUFACTURER_ID) // SPI_CS - CS pin attached to SPI flash chip (8 in case of Moteino) // MANUFACTURER_ID - OPTIONAL, 0x1F44 for adesto(ex atmel) 4mbit flash // 0xEF30 for windbond 4mbit flash ////////////////////////////////////////// SPIFlash flash(2, 0); byte buf[1024]; void setup() { Serial.begin(115200); while (!Serial); if (flash.initialize()) Serial.println("Init OK!"); else Serial.println("Init FAIL!"); } void loop() { char cmd; if (!Serial.available()) return; cmd = Serial.read(); if (cmd == 't') { Serial.print("COM ok\n"); return; } if (cmd == 'i') { Serial.print("DeviceID: "); Serial.print(flash.readDeviceId(), HEX); Serial.print('\n'); return; } if (cmd == 'a') { flash.chipErase(); while (flash.busy()); Serial.print("OK"); Serial.print('\n'); return; } if (cmd == 'e') { long sector = Serial.parseInt(); Serial.read(); // разделитель flash.blockErase4K(sector); Serial.print("OK"); Serial.print(sector); Serial.print('\n'); return; } if (cmd == 'w') { long addr = Serial.parseInt(); Serial.read(); // разделитель for (int bufsz = 0; bufsz < 128; bufsz++) { while (Serial.available() == 0); buf[bufsz] = Serial.read(); } flash.writeBytes(addr, buf, 128); Serial.print("OK"); Serial.print(addr); Serial.print('\n'); return; } if (cmd == 'r') { long addr = Serial.parseInt(); Serial.read(); // разделитель for (int i = 0; i < 4; i++) { flash.readBytes(addr + (i * 1024) + 0, buf, 1024); for (int j = 0; j < 1024; j++) Serial.write(buf[j]); } return; } } |
Ничего сложного и главное нет лишних деталей в схеме))) Главное правильные библиотеки — скачать их вместе с прошивкой тут: spi-eeprom-fw2.zip
Пробовал на флешках 25Q128FVSG, 25L3206E, еще какая-то роутерная безымянная.
Как выяснилось программатор может иногда не работать 🙂 Вариантов несколько:
— либо слишком длинные провода к флешке (нормально см 8-15)
— либо слишком китайская ардуина (например нано в3)
— либо дохлая флешка
Юрий
Здравствуйте! А как с Вами можно связаться? Вопросик по этой программке появился
admin
Здравствуйте, почта kovalev@skproj.ru
Александр
Приветствую.
Попробовал собрать данный прибор на UNO и на MEGA, работает на простых SPI 25-йсерии.
Могу я вас попросить доработать устройство для работы с Flash AT45DB161 — Atmel ?
Очень интересная микруха, а как правильно читать-записывать никак не разберусь.
Спасибо.
admin
Сейчас времени нет, но там в принципе не сложно, можете сами попробовать. Схема подключения другая и библиотеку для записи чтения можно найти
Мансур
Здравствуйте! Я всё скачал. прошил ардуину вашим скетчем. Но до меня не доходит как залить прошивку в флешь. Нету кнопки залить или закачать. Только сохранить получается. Подскажите пожалуйста. Очень надо прошить тв с 8 мегабайтной spi. Мой прогер только до 2-х мега берёт. И ещё не понял в архиве 3 файла. 1 то понятно скетч а 2 других куда?
admin
Здравствуйте! Ставите курсор в начало флеша (на нулевую позицию) и нажимаете «вставить файл в текущую позицию», затем выбираете файл прошивки и ждете ))
Насчет двух дополнительных файлов — это вспомогательные файлы с функциями для скетча, просто пусть они лежат в той же папке, что и сам файл скетча, ардруино сама их подцепит, с ними ничего делать не нужно.
Иван
Здравствуйте! А можно этим программатором шить флешки биосов материнок , если да а как туда залить (в прогу) прошивку для биоса?
admin
Да наверно, надо только проверить что флешки именно с SPI интерфейсом и ее нужно все ж выпаять из материнки. Чтобы точно сказать напишите модель флешки.
А чтобы прошить надо сначала сделать бекап (скачать фулфлеш). Потом поставить курсор на самый первый байт в редакторе и нажать «Вставить файл в текущую позицию»
Filin
Было бы здорово еще исходники проги-программатора заполучить, с целью общего развития и возможного допиливания 🙂
admin
Для общего развития если просто посмотреть — можно декомпилировать без проблем)) а что Вы бы улучшили? Есть предложения? Я готов работать над программой.
Filin
Декомпилировать — это для меня слишком круто 🙂 Я пока только начинаю интересоваться этой темой. Ну нет так нет, не критично. В любом случае спасибо за статью, для начинающего самое то — коротко и по делу.
admin
Вот исходники консольной версии http://skproj.ru/wp-content/uploads/2016/05/SpiEepromCon.zip
Если допилите, пожалуйста, поделитесь)) Внесу изменения в основную версию
URAsikkk
Добавьте кнопку стереть флеш в 00000.Записывать биос нужно на чистую флеш(так работают все програматоры). И добавте кнопку «Определить размер флеш памяти», а так же кнопку «проверка памяти на битые сектора»…
Виктор
А если я буду использовать аналог Меги2560 — что нужно изменить? Хочу попробовать прошить флэш мульта ноутбука. Еще есть у мня USB-TTL и COM-TTL переходники. Может как-то с их помощью можно прошить?
admin
Думаю с мегой2560 проблем не возникнет, номера ног для MOSI, MISO и SCK немного другие, но они должны быть соседние.
Насчет USB-TTL и COM-TTL не знаю, мне кажется есть какие-нибудь программаторы, которые работают через эти переходники, но я не встречал
Виктор
я так понял -= у вас 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 пин)
Виктор
Да. и на 2560 есть 2 питания 3,3v и 5v, какое надежнее использовать?
admin
Я все делал на 5 вольтах, хотя по документации надо 3.3. попробуйте 3.3 — если не заработает тогда 5 🙂
Виктор
а какой размер выставлять? в даташите есть такая инфа:
Pm25LD010: 128K x 8 (1 Mbit)
admin
128 килобайт
Виктор
Все. Спасибо дружище. Прошил флэху. Ноут сразу запустился. До этого лежал мертвым, даже индикации заряда АКБ небыло.
Александр
Скетч залил на Ардуино Уно. При запуске SpiEepromFlasher выдается сообщение о том, что тот не является приложением WIN32. У меня XP. Нужна WIN7 ?
admin
Нужен .net framework 4.5 и 64 разрядная операционная система
urasikkk
Системные требования не помешают)
Александр
При попытке перезалить скетч выдает : Arduino: 1.6.6 (Windows XP), Плата:»Arduino/Genuino Uno»
avr-g++: error: missing filename after ‘-o’
exit status 1
Ошибка компиляции.
Александр
Установил последнюю версию Arduino IDE, скетч залил без ошибок. Буду искать 64 разрядную ОС.
Александр
Всё прошил на отлично !
Теперь подробнее, возможно кому-то поможет. ОС 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 рублей.
Виктор
если нужен кому то: http://ru.aliexpress.com/item/CH341A-Series-24-EEPROM-Writer-25-SPI-routing-BIOS-LCD-Flash-USB-Programmer/32427982250.html
Денис
Спасибо автору!
Этим способом удалось прошить SATA контроллер.
Легион
Шил 25032xx Через переходник 5 ->3.3 читает но не пишет. Воткнул напрямую. Шьет. Спасибо.
Metamorf
Распиновка Arduino nano v3.0
1 — d2
2 — 12
3,7,8 — vcc (5v)
4 — GND
5 — 11
6 — 13
Stepik
Спасибо! Работает.
urasikkk
Буду рад распиновке Arduino-pro-mini.
Андрей
Привет, микросхема 25l8006e со скаллера (после кривой прошивки через усб, была не вовремя прервана). При запуске этого программатора, после выбора нужного ком-порта, открывается окно программы с белым экраном вместо данных и зависает — not responding. Куда копать? Большое Спасибо.
admin
Привет, ну либо провода слишком длинные либо что то с ардуиной не то. попробуйте подключится к ней через монитор порта на скорости 115200 и отправить букву t — если напишет COM ok то проблемы между флешкой и ардуиной или с самой флешкой. Если не напишет COM ok тогда что то не то с ардуиной 🙂
Если с флешкой проблема попробуйте укоротить провода к ней, ну или другую флешку, может какая-то несовместимость 🙂 Еще почему то не всегда программатор с arduino mini работает
Андрей
Получилось с Мегой! С Nano v3 на отрез отказывается работать. Спасибище!!! 🙂
Сергей
Всё отлично, хороший программатор на скорую руку получается. Автору огромное спасибо. Только вот я его нагуглил, когда хотел прошить 93C56… А такие маленькие он не шьет(
admin
прошьет))поставьте минимальный размер при прошивке. если нужно считать — фулфлеш потом обрежете просто. а если нужно записать — курсор ставьте на первый байт и записывайте файл нужного размера, хоть 64 байта ))
Алексей
Спасибо автору! Если внимательно прочитать и сделать как описано, то все получится! Впервые решил перепрошить роутер. Была под рукой запылившаяся Ардуино Нано. Соединил провода. Скачал последний IDE. Прошил успешно!!!
Павел
Спасибо автору огромное! Очень помогло! Вот только не решил проблему: на меге 2560 первые 128 байт заливаются сплошные FF.
admin
Может флеш не исправна?
Константин
Все собрал. ID читает. После нажатия на считывание фулфлеш программа перестает отвечать. Как с этим бороться? Заранее спасибо
admin
Вариантов несколько:
— либо слишком длинные провода к флешке
— либо слишком китайская ардуина (например нано в3)
— либо дохлая флешка
urasikkk
Как узнаеш что флешка дохлая? Может есть скетч который это проверит?
Илья
Огромное спасибо автору! Восстановил камеру Soocoo C30 после неудачной прошивки. Все супер !
Wikly
Автор молодец! Спасибо! Было бы прям совсем отлично, если бы сама прога на ПК была под 32х разрядную систему!
Wikly
И еще, при попытке скачать фулфлеш, почему то сохраняется только 4 КБ из 4096. Хм.
Arduino UNO,
flash: Winbond w25q32bv
Андрей
Здравствуйте, помогите с Ардуино Уно Китайский.
Заливаю скетч проверка проходит. Но когда делаю выгрузку. Сыпет ошибкой.
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
Это сообщение будет содержать больше информации чем
«Отображать вывод во время компиляции»
включено в Файл > Настройки
alexgz
Прошил флешку W25Q64FVSIG. арудиной наной на меге168 и консольной версией прогивальщика . Немного пришлось подправить код.
Спасибо большое!!!
admin
А что подправили? поделитесь? 🙂
Борис
Спасибо автору за идею.
Пробовал на плате через SPI разъем шить — не получилось. Прочитать смог. Стереть — тоже. Буду выпаивать. Ардуина UNO китайская (максимальная скорость 115200). Через flashrom — то же самое. Для надежности поставил делители напряжения. Пробовал со скоростью играться — не помогает.
Борис
Дополняю: флешка SST25VF080B.
Хотелось бы в программе иметь возможность не писать флешку целиком, а только измененный блок. Или она так и делает? Не смотрел…
Борис
Прошил flashrom-ом. И только выпаянный чип с первого раза.
Данная программа не помогла.
Дима
Скажите, а ST95080W можно шить так? Есть Мега и надо прошить дампом флешь от принтера.
admin
Наверное можно
Bozar
а китайская uno R3 сможет полноценно работать?
admin
думаю да
Степан
Работает, только что зашил
Степан
Большущее спасибо за статью и софт! Спас жизнь материнке 🙂
Павел
Здравствуйте!
Собрал данный программатор, всё работает, но есть беда.
Выбираю файл дампа биоса, а в банку флешера он не отображается — как были нули везде, так и записываются нули, а не мой файл.
Как туда код засунуть нужный?
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
К сожалению нет времени, но к счастью можно использовать) если сможете сделать — делитесь скетчем, все будут рады!
Олег
Здравия желаю!
Скажите пожалуйста, можно ли данным способом залить дамп в FL127SIF10 ?
.pdf —> http://www.cypress.com/file/177961/download
Cпасибо.
admin
Попробуйте, наверное можно 🙂
Рафаэль
Прошил 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
Artur
Проверил на Arduino Nano через ISP порт (6 пиновый). Читал 25P16VG (208mil). Все считалось без проблем.
Сначала не понял как сохранять… Потом просто добавит .hex прошивка скачалась. Спасибо.
Дмитрий Макаров
Сначала было подумал не работает. Отлично работает! pm25ld010 .SPI. 1мбит
Сразу не заработало, потом работало через раз. Проблема оказалось в подключении. Сделал провода как можно короче (4-5 см)[по совету из другого форума] и конденсатор (222К 1 KV, быо под рукой) прямо у ног флешки (между vcc , gnd) arduino pro mini 16к, 5в. Через uart прошиватель про, в режиме 3.3в. Без каких либо поправок в скетче, и exe программы из статьи. Спасибо автору.
rom
Здравствуйте Дмитрий Макаров! У меня тоже arduino pro mini 16k, 5v и uart pro, при загрузке скетча пишет ошибка компиляции, flash W25Q32vb и файл SpiEepromFlasher при открытии пишет приложение не win32, установлена XP32bit. Не могли бы Вы написать подробнее последовательность действий с ардуино, и как запустить файл SpiEepromFlasher.exe. Спасибо. dmi-roman@yandex.ru
Vlad
Спасибо за идею про конденсатор!
Прошивка писалась с ошибками и каждый раз — разный результат.
Запаял керамический конденсатор между Vcc и GND поближе к флешке — и с первого раза прошилась без ошибок.
mdrs
Arduino Nano V3 (Кытай) — mx25l8005 без проблем прошиваются.
Ricks
Какую распиновку на ардуинке делали? Я ещё только начал в тему вливаться.
Виталий
Спасибо автору за труд!
По работе часто прошиваю spi флеши. Ремонтирую ноутбуки. Приказал долго жить программатор. Ваше решение спасло.
Но . 4 мегабайтная флеш шьется минут 15. Нельзя ли увеличить скорость?
Спасибо !
admin
На новых ардуинах можно, но тогда не будет совместимости со старыми дешевыми нано и уно
RoM
SpiEepromFlasher не открывает winXP пишет файл не является приложением win32, только этот файл.
RoM
Здравствуйте! Подскажите пожалуйста, файл SpiEepromFlasher в winXP не открывает этот файл пишет приложение не win32,в чем может быть проблема. Не открывает только этот файл, антивирус не ругается.
admin
Надо поставить .NET фреймворк
Алексей
Всем привет!
Хотел прошить Winbond 25Q128BVFG используя Arduino Duemilanove (пины изменил на другие согласно документации Arduino SPI) и столкнулся со странной проблемой — программа после запуска считывает только Device ID и после этого зависает. Никаких считываний с флешки не происходит согласно светодиодам.
В то же время через com-порт если вручную команды кидать, то ардуино откликается, так же выдает девайс ID, можно запросить прочитать байты из флешки и т.д. Т.е. похоже на нормальную работу самой ардуины.
ОС у меня — Win7x64. В чем тут может быть проблема?
admin
Надо пробовать отладить сам прошивальщик из визуал студио. Если интересно попробуйте отладить консольную версию. Если получится выкладывайте сюда))
Den
Возможно ли этим программатором шить EEPROM микросхемы? 24LC32A к примеру?
admin
Нет к сожалению
Руслан
спасибо. получилось с первого раза. использовал Уно.
а микросхему 25l8000 даже не выпаивал с платы. приподнял первую ножку (cs) и провода припаял прям на плату. питание брал с Уно 3.3В.
Руслан
СПАСИБО! УСПЕХОВ ТЕБЕ АВТОР!
После неудачной прошивки MSI 760G-P43 образовался кирпич.
Взял ARDUINO UNO на ch340 от ROBOTDYN подключил к разъему JSPI1 питание взял с уны. Проводки по 10 см. Сама микруха на плате 25q16 на 2 мегабайта. Батарейку не вынимал, плту полностью отключил, проц память снял. Прошил с первого раза, сразу запустилась.
Автор еще раз СПАСИБО, удачи в твоем не легком деле.
Юрий
спасибо за чудо-программатор!
с китайской нано в3 не заработала программа. программа зависла. в мониторе порта вообще ничего не писалось.
на уно сделал те же манипуляции и все получилось.
сергей
можно ли им прошить m25px80?
Александр
Приветствую вас форумчане !!! Собрал это чуда на Uno r3 от ROBOTDYN )) Программатор запустился )) Но при попытке считать микруху (pm25LD010) пишет нули и ID:0 . У кого какие есть соображения ???
Александр
В дополнение : думал что скисла флеша купил новую … результат тот же )))
Николай
Всем привет.
Респект и уважуха автору. Всё прекрасно работает. Получилось проапгрейдить D-link DIR-615 E4 на 16 Mb.
Хочу поделиться своими трудностями и найденным решением.
Под рукой оказалась только кетайская Arduino UNO R3 Mega 328P-AU на CH340G — программатор её не видел, белый экран, эха c COM-порта не обнаружено и это несмотря на то что скетч залился нормально.
Сначала грешил на длину проводов/какчество пайки, но погуглив чуток нашёл что кетайские товарищи в эту ардуину на линии RX и TX зачем-то залепили резисторы по 1 килоому, заменил их на 220 Ом и «о чудо» — всё заработало.
Может это поможет кому ещё.
Автору спасибо.
ish
Автору спасибо! Pm25LV010 считалась и прошилась быстро и легко через Мегу.
Вопрос — будут ли шиться флешки 24 серии? Там же вроде I2C, а не SPI
Вадим
все работает на UNO! на Nano висит программа при запуске! спасибо огромное автору!
Alexey
Всем привет.
Прошивал несколько раз SPI флеш материнок, все работало.
Сегодня пробовал прошить SPI flash pm25lv512, читает корректно, и пишет без ошибок, однако при чтении видно, что часть данных не совпадает.
Думал, бракованный чип — попробовал два других результат аналогичный.
То ли флешки мелких размеров не пишутся, то ли есть особенности записи на такие чипы.
Может у кого получалось?
Роман
Огромная благодарность автору! хотелось бы развития этого проекта, очень хорошая вещь)
Владимир
Спасибо автору.
Но вот про 5в не пофиг. Максимальное питание в даташитах микросхем умные дядьки разработчики оных, не с забора списывают.
Соблюдайте номинал VCC.
Евгений Р
Помогите не вижу что и какие данные подправить в скетче((( плата teensy++ тут фото и распин той и этой платы распин нашел , а скетч беда
https://mega.nz/#!eZMXCJIa!gsmWaP5HIb3RP2A9azQ8jlOWAR8Qmy7c1escR6M9rLw
фото той и этой платы распин нашел , в скетче беда ((((
Eвгений-Р
день добрый! помогите ререписать скетч под teency++ распин нашол ,но в скетче не не вижу ни 15-16,2 ,sclk,miso… т.д. туповат я (( фото распина
https://mega.nz/#!eZMXCJIa!gsmWaP5HIb3RP2A9azQ8jlOWAR8Qmy7c1escR6M9rLw
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В?
Дмитрий
Рафаэль, спасибо за распиновку, а автору огромное спасибо за проект! Все получилось после долгих попыток прошить USBASP-ом
Олег Смирнов
Хосподи божеж ты мой !!!!
Ну что я только не делал !!!
Ну виснет программа — и всё тут !!
ProMini 3v 8 mhz — виснет…
Нано китайская — виснет…
Нано оригинальная — виснет…
конденсатор на выводы- висим…
Вин7 — висим..
Вин10 — висим..
дот нет фреймворк свежий — висим…
И тут уже в 10 вечера — достатый ис каропки пыльный freeduino-2013 — левый прелевый — работает !!!!
Ну афффтор ты и прогу накатал !!! 🙂
Безусловно полезную, и невероятно капризную.
ну попробую прошить что нибудь….
urasikkk
смотри распиновку тут https://www.arduino.cc/en/Reference/SPI
roos
такая беда, при записи визуально все идет ок.
После перезапуска первые ячейки до адреса 1000 — все FF.
А потом идут нужные данные (какое-то смещение)
Читает нормально.
uno r3 china
25032fvsig
win 7\32bit (после выхода из прогера всегда ошибка(платформа .net framework указанный порт не существует))
.net 4.5
Роман
А можно написать распиновку на Arduino MEGA 2560
Андрей
Спасибо автору, метод работает прошил биос IdeaPad S110 Lenovo. Сама микруха была winbond 25q16bvsig. Прошивал Mega2560. Слил дамп на всякий случай и нашел в нем пароль от HDD в этой области 0x0018b4c4.
Анатолий
Добрые сутки)). При попытке отладить консольную версию Вашей программы возникает не обработанное исключение в строке 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]}. Подскажите, пожалуйста, где «копать»?
Анатолий
GUI-версия зависает после выдачи ID=FF40
Анатолий
Спасибо разобрался. Не указал параметры командной строки(4 параметра)
Анатолий
Консольная версия шьет нормально, а вот читать не хочет — виснет. Прогнал в отладчике. Выяснил, что значения для чтения 4096 нужно уменьшить до 2048. В скетче тоже. Теперь и шьет и читает нормально. Плата Ардуино Про мини 5 вольт. Виндовс-версия не пошла, видимо по этой же причине.
Анатолий
Спасибо за технохрень))
lozavideo
Добрый вечер
Я так понял для ардуино uno ревизии 3
распиновка
sck 13
miso 12
mosi 11
ss 10
правильно?
я пробывал eeprom 24C64WR и 25LD010
не удаётся прочитать
Валериан
Как не мучал китайскую 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
Автору огромное спасибо за труды.
Виктор
Кто подскажет у меня флэшка 25q32b-104hip когда буду прошивать какой размер ставить ? Я новичек
Виктор
Сколько указывать память при прошивке 25q32b-104hip
ВИКТОР
Не знаю получиться ли у меня такое повторить , я даже не могу комент оставить.
Виктор
Почему когда считываю то в итоге один нули, процесс длиться долго а потом открываю файл блокнота там пусто но файл весит 4мегабайта
Станислав
Попробовал на леонардо прочитать fm25v02 вроде читает. (id 7f7f )
но когда попробовал прошить он зашил 80 в несколько участков хотя пробовал нули зашить.Может подскажите где подправить.
Alexander
В GUIшной проге надо обязательно сделать выбор скорости порта.
У меня mega2560 пишет с кучей ошибок. Взял сырцы консольной версии, поставил скорость 38400 в проге и в скетче. Всё прошилось без проблем.
Игорь
прошил по данной инструкции W25Q64JVSIQ, спасибо огромное
Иван
собрал, прошиваю, всё хорошо, НО!
при попытке залить на флешку 25q64 (пробовал 3 флешки) биос от матери asus h81m-k (пробовал разные версии) в итоге все биты перемешиваются
подскажите кто знает.
ЗЫ. если заливаю на ЭТУ ЖЕ флешку другой биос, всё нормально
Qwertyer123
НА китайской мега2560 первые 128 бит в ffffffff. или я не правильно выбрал размер флешки? 8 МБ сколькро ставить
Vlad
собрал программатор, всё прекрасно считывает и записывает. Укомплектовал кроваткой для чипов биоса, 3 между ардуиной и чипом поставил стабилизатор 1117 на 3.3в + cmd электролит 1uF, чтоб всё по феншую, так сказать.
BoBA
админ однозначно крут, искал даташит на spi а нашел 🙂 черкани на досуге если не занят, с меня сок https://t.me/Bgp_1
Дмитрий
Спасибо автору!
Lenovo b560 перестал включаться.
Прошил PM25LD010 по данной статье. Прошивал с помощью китайской robotdyn uno r3. Распиновка:
3.3V — на 3,7,8 ногу микросхемы
GND — на 4 ногу
Digital11 — на 5
Digital12 — на 2
Digital13 — на 6
Digital2 — на 1
Так же проверено с микросхемой W25Q80BVSIG
esdf
eMMC прошить возможно ??
Victor
Здравствуйте столкнулся с 25LF040A самое интересное читатся она читается а вот записыватся не хочет напроч хотя другие нормально и читаются и пишутся что может быть ?
Victor
Да кстати вот даташит https://www.ersinelektronik.com/class/INNOVAEditor/assets/Datasheets/SST25LF040A.pdf
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
________________________________________________________
Михаил
Дорабатывалась ли эта программа?
Нужно ли как-то чистить, стирать флешку перед записью? С другими программаторами говорят перед записью нужно стереть. Как тут это реализовано?
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 мег зашил впаял включается и горит питание и клавиатура подсветки экран чёрный для чего второй файл не понимаю, всё таки сдохла флеха или надо ещё второй файл куда-то зашить? Причина прошивки биос под пасом с рук брал не посмотрел.
Алексей
Перепрошил 25Q128FVEG на умершем MIO MIVUE 568 по инструкции, используя китайскую mega2560. Пришлось повозиться с отпаиванием/припаиванием микросхемы, но в итоге все заработало на ура! Огромное спасибо автору!
Nik
Большущее СПАСИБО !!!!!
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?
Сонёнаг
Прошил 25q32vfsiq + arduino nano v3.
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
Андрей
У меня полная имитация нормальной работы, диоды мигают, программа всякий раз рапортует «готово», никакой ругани на ошибки что при чтении, что при записи. Но считываю исключительно одни нули, даже после того как успешно записал bin.
Ардуино мега, win7(x32), NET.framework 4.0.
Если чего-то недостает, например не тот фреймворк, или неправильно подключил, сообщение об ошибке должно быть?
После загрузки моего файла в буфер программы, в хекс-окне должен отобразиться мой файл? У меня и в этом случае нули.
Провода примерно 5-10см. Если дело в подключении, должно быть сообщение об ошибке?
Аллайя
Я бы флэшы на 1.8 вольта все же через «Зенера» запитывал…
Аллайя
Может кому будет полезно.
Подключение флешек на 1.8 вольта — https://disk.yandex.ru/i/TAQuHij2_kf1Fg
Denis
добрый день , можно схему и LAY ?
Denis
добрый ден ь , можно получить схему и lay ?
Stewart
Доброго. Интересная штука. Можно исходник проги? Пусть консольной. Stew_art@mail.ru
александр
спасибо большое,прошил с первого раза,теперь есть в биосе ME FW,(до этого было N/A),без этого заводской разгон платы Asus Z87-A не работал.
шил с arduino nano(c alie…ss)напряжением 3.3в запитывал с её источника.
Дмитрий
Если Вы еще живете, есть вопрос. Как быть с флешками на 1.8 Вольт. Очень актуально.
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
Кирилл
Здравствуйте, а можно ли данный скетч в stm32 блюпил залить? , Ардуино сейчас stm поддерживает(если ядро соответствующее установить), и я уже много что сделал на стм — они мне больше нравятся)
Roman
Привет!
Есть мысли, как сделать из твоей идеи продукт, достойно занимающий свое место среди всего многообразия SPI программаторов.
Не хочу светить идею на все интернет-пространство. Если интересно, напиши об этом мне на мыло, которое я оставил при регистрации.
А пока замечание к софту только одно — появились флешки с объемом 32 и 64 метра и девайсы с такими флешками. У тебя в программе ограничение на 16 метров.
Кроме того, 3 и 7 ногу нужно подключать к питанию через сопротивление 4,7кОм, а ардуинки использовать на 3.3В (PRO Micro).