"Программатор" 24\25 флешек на ардуино.

Навеяно постом http://pikabu.ru/story/arduino_snova_vyiruchaet_5192318

Только 3 дня назад воспользовался сам этим проектом, думаю кому-то окажется полезным.

Успешно зашил 10 штук 25х флешей (2-2мб, 5-4мб, 3-8мб).

Собственно сам проект был взят у неизвестного товарища с сайта "технохрень" (не для рекламы). Далее текст из источника.



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

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

"Программатор" 24\25 флешек на ардуино. Arduino, Программатор, Spi, Сообщество arduino, Сообщество ремонтеров, Длиннопост

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

"Программатор" 24\25 флешек на ардуино. Arduino, Программатор, Spi, Сообщество arduino, Сообщество ремонтеров, Длиннопост
"Программатор" 24\25 флешек на ардуино. Arduino, Программатор, Spi, Сообщество arduino, Сообщество ремонтеров, Длиннопост

Скачать софт http://skproj.ru/wp-content/uploads/2015/12/SpiEepromFlasher...


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



#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;

}

}



Ничего сложного и главное нет лишних деталей в схеме))) Главное правильные библиотеки — скачать их вместе с прошивкой тут: http://skproj.ru/wp-content/uploads/2015/12/spi-eeprom-fw2.z...


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


Как выяснилось программатор может иногда не работать 🙂 Вариантов несколько:

— либо слишком длинные провода к флешке (нормально см 8-15)

— либо слишком китайская ардуина (например нано в3)

— либо дохлая флешка



Лично сделал такое безобразие (платку под панельку развел, но еще не травил):

"Программатор" 24\25 флешек на ардуино. Arduino, Программатор, Spi, Сообщество arduino, Сообщество ремонтеров, Длиннопост

Как показала практика 3х вольтовые флешки отлично работают от 5и вольтовой линни, но для низковольтовых лучше все таки добавить преобразователь.


Отлично завелось от ПониПрога.

Сообщество Ремонтёров

7.3K постов42.1K подписчиков

Добавить пост

Правила сообщества

ЕСЛИ НЕ ХОТИТЕ, ЧТОБЫ ВАС ЗАМИНУСИЛИ НЕ ПУБЛИКУЙТЕ В ЭТОМ СООБЩЕСТВЕ ПРОСЬБЫ О ПОМОЩИ В РЕМОНТЕ, ДЛЯ ЭТОГО ЕСТЬ ВТОРОЕ СООБЩЕСТВО:


Посты с просьбами о помощи в ремонте создаются в дочернем сообществе: https://pikabu.ru/community/HelpRemont

К публикации допускаются только тематические статьи с тегом "Ремонт техники".

В сообществе строго запрещено и карается баном всего две вещи:

1. Оскорбления.

2. Реклама.

В остальном действуют базовые правила Пикабу.

Вы смотрите срез комментариев. Показать все
9
Автор поста оценил этот комментарий

CH341A Gold + sop8-dip8 переходник - 150 грн (320 рублей).

Адруинки дороже продаються + видок не ахти получается.

А так, компактно и красиво.

Шьется все 24/25 - мониторы, материнки, роутеры и т.п., ПО ровное, пока ошибок не заметил.

Иллюстрация к комментарию
раскрыть ветку (20)
3
Автор поста оценил этот комментарий
А то и дешевле...
Иллюстрация к комментарию
раскрыть ветку (4)
6
Автор поста оценил этот комментарий

Еще у меня в комплекте к минипро есть Nano Usb bios programmer.... ух, ад! в общем, там где минипро шьет за 5 минут, это чудо, самое дешевое, типа такого, справляется минимум минут за 20 а то и все 30.

На дуине 8 метров зашил за 10 минут (как раз минипро за 5 минут с ней справляется).

По моему приятно не имея ничего и з-вна и палок собрать за 5 минут программатор для епромов.

раскрыть ветку (3)
Автор поста оценил этот комментарий

Че? 8 метров за 10 минут? Я вон тем китайским, за 130 рублей, шью за 4! ^^

раскрыть ветку (2)
5
Автор поста оценил этот комментарий
Подтверждаю, 4-5минут с верификацией, зачем платить больше?:)
1
Автор поста оценил этот комментарий

С верификацией? Тяжело верится.

2
Автор поста оценил этот комментарий

Приветствую. По неопытности прошивал low power биос на 1.8В

прочитал, записал.... Почле ещё разок и ещё... Иии... видимо больше её не хватило... Ноут больше вообще не заводился.


Убил ?


Подскажите я могу заменить на не оригинальную но по параметрам подходящую?


Спасибо


PS.. Оригинал GD25LQ32D

2
Автор поста оценил этот комментарий

Можно, например, купить вообще USBasp и залить в него модифицированную прошивку - http://plc-blog.com.ua/usbasp-flash-25xxx.

Будет 2в1, программатор для AVR и программатор для флешек :)

раскрыть ветку (1)
Автор поста оценил этот комментарий
А ЧТО, ТАК МОЖНО БЫЛО?
Автор поста оценил этот комментарий

каким конкретно ПО шьете ?

раскрыть ветку (4)
1
Автор поста оценил этот комментарий

ponyprog2000 или софтина по ссылке в посте

раскрыть ветку (3)
Автор поста оценил этот комментарий

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

раскрыть ветку (2)
Автор поста оценил этот комментарий
Пони не вспомню(((
Уже не занимаюсь
раскрыть ветку (1)
Автор поста оценил этот комментарий

спасибо за ответ:)

DELETED
Автор поста оценил этот комментарий
Комментарий удален. Причина: данный аккаунт был удалён
раскрыть ветку (5)
Автор поста оценил этот комментарий

Именно для биоса и собирал)

ну и те же роутеры, к примеру, и мониторы, и магнитолы)

раскрыть ветку (2)
Автор поста оценил этот комментарий
а смысл? у тебя же мини про есть.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Это на работе(( и в момент колхоза на коленке было влом ради одной флеши ехать на работу.

Автор поста оценил этот комментарий

Да, если они на 24/25 серии и в корпусе DIP8/SOP8.

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Комментарий удален. Причина: данный аккаунт был удалён
Автор поста оценил этот комментарий

о, у мну такая же. клевая штука ) а до покупки этой приходилось извращаться с помощью самопаяного COM программатора  )

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку