Внутрисхемный программатор 3.3V SPI EEPROM из Arduino
EEPROM 25 серии в наше время не редкость. Программаторы на основе CH341 для них — тоже, и стоят недорого, но не всегда оказываются под руками в нужный момент.
Что делать, когда прошить микросхему надо срочно, а нечем?
Можно собрать программатор под LPT порт:
Он прост и предельно дешёв, вот только LPT в современном компьютере встречается уже примерно никогда.
Если под руками есть старый ПК с таким портом — повезло, иначе придётся искать другие варианты.
Например, можно воспользоваться Arduino.
Обычно для такого применения рекомендуют использовать довольно редкую Arduino Micro Pro на основе МК ATMega32U4, но можно обойтись и намного более дешёвой китайской Arduino Nano V3:
Так как память 25 серии рассчитана на питание напряжением 3,3В, а МК в Arduino питается напряжением 5 В, то плату придётся немного доработать, чтобы не сжечь микросхему памяти:
Перевернём плату Arduino нижней стороной вверх:
Диод Шоттки, обозначенный на принципиальной схеме D1, нужно аккуратно отпаять и заменить на стабилизатор напряжения 3,3В типа 1117 или аналогичный:
Стабилизатор напряжения можно добыть из негодной ЖК матрицы от настольного монитора, вырезав его оттуда вместе с куском платы и обвязкой из конденсаторов. Только предварительно проверьте его выходное напряжение — иногда они в матрицах попадаются на 1,8В или 2,5В — нам такое не пойдёт. Матрица от ноутбука тоже не подойдёт — она вся питается напряжением 3,3В и дополнительного внутреннего стабилизатора этого напряжения в них нет.
Припаиваем провода к контактам D10, D11, D12, D13, 5V, GND платы Arduino, дополнительный стабилизатор изолируем и прикрепляем к ней каптоновым скотчем:
:
Интерфейс SPI довольно скоростной, поэтому провода длиннее 5-7 см делать не надо — меньше будет проблем с помехами.
На этом аппаратная часть программатора готова — пора переходить к программной.
Создаём на жёстком диске папку, в которую кидаем прошивку программатора, распаковываем программу XLoader, прошивку целевого устройства и программу FlashROM.
Запускаем XLoader, указываем в нем тип используемого в Arduino МК, порт, к которому она подключена и файл «frser-duino.hex»:
Нажимаем кнопку Upload и, если все в порядке, в нижней строке будет сообщение «1368 bytes uploaded». Загрузчик Arduino при этом затирается и если захотите вернуть плату в исходноесостояние — его надо будет восстанавливать.
Для проверки программатора сначала нужно измерить напряжение на выводах D10 и D11, оно должно равняться напряжению питания(3,3В).
Затем запускаем командную строку и вводим следующее:
c:rcvmingw32-w64-flashrom-r1781.exe --programmer serprog:dev=COM3:115200
Если все работает нормально, должен получиться ответ:
flashrom v0.9.7-r1781 on Windows 6.1 (x86)
flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OK.
serprog: Programmer name is "frser-duino"
Found Generic flash chip "unknown SPI chip (RDID)" (0 kB, SPI) on serprog.
===
This flash part has status NOT WORKING for operations: PROBE READ ERASE WRITE
The test status of this chip may have been updated in the latest development
version of flashrom. If you are running the latest development version,
please email a report to flashrom@flashrom.org if any of the above operations
work correctly for you with this flash part. Please include the flashrom
output with the additional -V option for all operations you tested (-V, -Vr,
-VE, -Vw), and mention which mainboard or programmer you tested.
Please mention your board in the subject line. Thanks for your help!
No operations were specified.
Наличие строки «serprog: Programmer name is „frser-duino“ свидетельствует о том, что программатор воспринимается программой и можно отключить его от USB и подключать его к целевому устройству.
Если прошиваемая микросхема припаяна напрямую к плате, то провода от программатора можно паять напрямую к её выводам согласно рисунку:
Если она съёмная, то к проводам для программатора можно припаять панельку:
При этом надо дополнительно соединить на панельке перемычками выводы 3,7 и 8.
Подключив программатор к микросхеме и USB, набираем в командной строке:
c:rcvmingw32-w64-flashrom-r1781.exe --programmer serprog:dev=COM3:115200 -c MX25L1605 -w c:rcvfirmware.hex
Наименование микросхемы памяти надо указывать точно, иначе программа откажется её прошивать.
Результат работы должен быть таким:
flashrom v0.9.7-r1781 on Windows 6.1 (x86)
flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OK.
serprog: Programmer name is "frser-duino"
Found Macronix flash chip "MX25L1605" (2048 kB, SPI) on serprog.
Reading old flash chip contents... done.
Erasing and writing flash chip...
Warning: Chip content is identical to the requested image.
Erase/write done.
После этого можно отключать питание и отпаивать провода — процедура прошивки успешно завершена.
- Доступный робот для мытья окон PhoReal FR-S60
- Когда чоппер - это не про орешки или другую мелочевку
- Кабель Toocki USB A-C, обеспечивающий силу тока 6А
- Сверхъяркая филаментная лампа
- Флюс BEST BST-218. Для тех кому RMA-223 и RMA-218 это слишком нейтрально.
- Шипы для обуви с Ali. Копия Bestgrip 1100
- FNIRSI GC-01: измеритель уровня радиационного излучения
- Тройная экономия: силы, время и картофель
- Заводим авто с севшим аккумулятором - обзор пускового устройства ДаДжет "Автостарт"
- Турецкие осенне-весенние кожаные кроссовки Callizio с Али. Обзор-предупреждение