Программатор для прошивки биоса своими руками usb
Давно уже достал вопрос:
-"А как я прошью BIOS,если на экране ничего нет?".
Ответ:
-"На програматоре."
И сделать его очень легко.Поэтому я и решил создать данную тему.Тут особо объяснять нечего,я например собрал данный програматор специально для данной темы,Вы можете его видеть на фото 1.Всё нашлось дома и на него не было потрачено ни копейки.
Собственно понадобилось:
LPT шнур.
Четыре резистора по 100 Ом.
Один конденсатор 1uF.
Кроватка для батарейки.
Я ещё сделал клипсу для SOIC-8,но это я уже заморочился. сделана из обычного PCI порта снятого с не рабочей материнской платы,
шаг там как раз совпадает с шагом флешки BIOS.
В моём LPT шнуре провода были припаяны не так как мне надо,поэтому я перепаял их в соответствии с распиновкой указанной на рисунке 1,далее я припаял четыре резистора по 100 Ом на соответствующих проводах и поставил конденсатор между землёй и питанием с батарейки.Я завёл всё это дело в своеобразный кожух как видно первом фото,но Вы можете не заморичиваться.Ну и припаял провода к клипсе SOIC-8,в соответствии с распиновкой флешки BIOS.
Так же я сделал вариант этого же програматора с питанием от USB,Вы можете это видеть на фото 2.Как известно питание на USB +5V,но нам надо +3.3V,как быть?Опять же всё просто,за счёт резистивного делителя получаем нужное напряжение,на рисунке 2 я нарисовал USB разъём и его подключение к схеме.На питание +5V ставим резистор на 6.8 кОм,на землю ставим резистор 15 кОм,вторые выводы резисторов соединяем между собой и получаем между ними деление напряжения,у меня правда 3.4V получилось,но это вполне нормально для корректной работы.Так же важный момент заключается в том чтобы обязательно подключить землю от USB к земле в схеме как указано на рисунке 2.
Так получился полностью рабочий програматор который прошивает подавляющее большинство флешек BIOS.
В итоге если схема собрана полностью правильно,то он работает сразу.
Остаётся припаять флешку BIOS в соответствии с распиновкой и можно запускать прошивальщик SPIPGM.
Не знаю у кого как,многие говорят,что под WINDOWS не шьёт,не работает,но на деле у меня всё работает и под XP и под семёркой.
Как что делать:
Распаковываем прикреплённый архив в C:\Documents and Settings\(Ваша учётная запись)в моём случае KOL.
C:\Documents and Settings\KOL
Заходим в диспетчер устройств,вызываем свойства LPT порта,там есть вкладка"Параметры порта",переходим в неё и там выбираем "Использовать
любое прерывание,назначенное порту"->Ok.
Подключаем програматор к LPT порту,вызываем командную строку(Пуск->Выполнить->cmd->ENTER)откроется командная строка,
***Заметка***
Новая прошивка закидывается туда же где лежит программа прошивальщик.
***
далее набираем команды:
spipgmw /i,жмём Enter,флешка определилась.
spipgmw /u,жмём Enter,флешка разблокировалась.
spipgmw /d oldbios.bin,жмём Enter,сохранение старого дампа.
spipgmw /е,жмём Enter,флешка стирается.
spipgmw /p newbios.bin,жмём Enter,запись на флешку рабочего дампа(прошивки).
Далее на скриншотах можете видеть эти команды в действии.
AMIC:
A25L05PU/PT (64kB)
A25L10PU/PT (128kB)
A25L20PU/PT (256kB)
A25L40PU/PT (512kB)
A25L80PU/PT (1MB)
A25L16PU/PT (2MB)
A25L32PU/PT (4MB)
A25L64PU/PT (8MB)
A25L512 (64kB)
A25L010 (128kB)
A25L020 (256kB)
A25L040 (512kB)
A25L080 (1MB) - tested OK
Atmel:
AT25F512B (64kB)
AT25F1024A (128kB) - this chip may be supported but a tester is needed
AT25DF021 (256kB)
AT26DF041 (512kB)
AT25DF041A (512kB)
AT26F004 (512kB) - tested OK
AT26DF081 (1MB)
AT25/26DF081A (1MB)
AT25DF081 (1MB)
AT26DF161 (1MB)
AT26DF161A (2MB)
AT25DF161 (2MB)
AT25DQ161 (2MB)
AT25/26DF321 (4MB)
AT25DF321A (4MB)
AT25DQ321A (4MB)
AT25DF641(A) (8MB)
EON:
EN25B10 (128kB)
EN25B20 (256kB)
EN25B40(T) (512kB)
EN25B80 (1MB)
EN25B16 (2MB)
EN25P32 (4MB)
EN25P64 (8MB)
EN25P128 (16MB)
EN25Q40 (512kB)
EN25Q80 (1MB)
EN25Q16 (2MB)
EN25Q32 (4MB)
EN25Q64 (8MB)
EN25Q128 (16MB)
EN25F10 (128kB)
EN25F20 (256kB)
EN25F40 (512kB)
EN25F80 (1MB) - tested OK
EN25F16 (2MB)
EN25F32 (4MB)
EN25F64 (8MB)
EN25F128 (16MB)
EN25T10 (128kB)
EN25T20 (256kB)
EN25T40 (512kB)
EN25T80 (1MB)
EN25T16 (2MB)
EN25T32 (4MB)
EN25T64 (8MB)
EN25QH16 (2MB)
EN25QH32 (4MB) - tested OK
EN25QH64 (8MB)
EN25QH128 (16MB)
EN25QH256 (32MB)
ESMT:
F25L004A (512kB) - tested OK
F25L008A/08PA (1MB)
F25L016A/16PA (2MB)
F25L32PA (4MB)
F25L64PA (8MB)
F25S04PA (512kB)
F25L08PA (1MB)
F25L16QA (2MB)
F25L32QA (4MB)
F25L64QA (8MB)
GigaDevice:
GD25Q512 (64kB)
GD25Q10 (128kB)
GD25Q20 (256kB)
GD25Q40 (512kB)
GD25Q80 (1MB)
GD25Q16 (2MB) - tested OK
GD25Q32 (4MB) - tested OK
GD25Q64 (8MB)
Macronix:
MX25L512E/25V512 (64kB)
MX25L5121E (64kB)
MX25U5121E (64kB)
MX25L1005/1006/1025/1026E/25V1006E (128kB) - tested OK
MX25L1021E (128kB)
MX25U1001E (128kB)
MX25L2005/2006/2025/2026E/25V2006 (256kB)
MX25U2033E (256kB)
MX25L4005/4006/4025/4026/25V4005/4006E (512kB)
MX25U4033/4035/25V4033/4035 (512kB)
MX25L8005/8006/8008/8035/8036/8073/8075E (1MB) - tested OK
MX25U8033/8035E (1MB)
MX25V8035 (1MB)
MX25L1605/1606/1608E (2MB) - tested OK
MX25L1633/1635/1636/1673/1675E (2MB)
MX25L1635/1636E (2MB)
MX25U1635 (2MB)
MX25L3205/3206/3208/3233/3235/3273/3275E (4MB)
MX25U3235/25L3239E (4MB)
MX25L3225/3236/3237D (4MB)
MX25L6405/6406/6408/6435/6436/6445/6465/6473/6475E (8MB) - tested OK
MX25U6435/25L6439E (8MB) - tested OK
MX25L12835/12836/12839/12845/12865/12873/12875F (16MB) - tested OK
MX25U12835F (16MB)
MX25L25635/25639/25735/25835E (32MB)
MX25U25635F (32MB)
MX66L51235F/51245G (64MB)
MX66U51235F (64MB)
MX66L1G45G (128MB)
PMC:
Pm25LD512 (64kB) - tested OK
Pm25LD010 (128kB) - tested OK
Pm25LD020 (256kB)
Pm25LV512(A) (64kB) - tested OK
Pm25LV010(AB) (128kB) - tested OK
Pm25LV020 (256kB)
Pm25LV040 (512kB) - tested OK
Pm25LV080B (1MB)
Pm25LV016B (2MB)
Pm25LV032B (4MB)
Pm25LV064B (8MB)
*Pm25LQ032C (4MB)
Spansion:
S25FL001A (128kB)
S25FL002A (256kB)
S25FL004A (512kB)
S25FL008A (1MB)
S25FL016A (2MB)
S25FL032A/P (4MB) - tested OK
S25FL064A/P (8MB)
S25FL128P/S/129P/S (16MB) - tested OK
S25FL256S (32MB)
S25FL512S (64MB)
S25FL01GS (128MB)
ST Microelectronic/Numonyx:
M25P05 (64kB)
M25P10 (128kB)
M25P10AV (128kB) - tested OK
M25P20 (256kB)
M25P40 (512kB)
M25P80 (1MB)
M25P16 (2MB)
M25P32 (4MB) - tested OK
M25P64 (8MB)
M25P128 (16MB)
M45PE10 (128kB)
M45PE20 (256kB)
M45PE40 (512kB)
M45PE80 (1MB)
M45PE16 (2MB)
M25PX80 (1MB)
M25PX16 (2MB)
M25PX32 (4MB)
M25PX64 (8MB)
N25Q032A13E (4MB)
N25Q032A11E (4MB)
N25Q064A13E (8MB)
N25Q064A11E (8MB)
N25Q128A13E (16MB)
N25Q128A11E (16MB)
N25Q256A13E (32MB)
N25Q256A11E (32MB)
N25Q512A13G (64MB)
N25Q512A11G (64MB)
N25Q00AA13GB (128MB)
Winbond:
W25Q10B (128kB)
W25Q20BV (256kB)
W25Q40BV (512kB)
W25Q80BV (1MB) - tested OK
W25Q16BV (2MB) - tested OK
W25Q32BV (4MB) - tested OK
W25Q64BV/FV (8MB) - tested OK
W25Q128BV/FV (16MB)
W25Q256FV (32MB)
W25Q16FW 1,8V (2MB)
W25Q32FW 1,8V (4MB)
W25Q64FW 1,8V (8MB)
W25Q128FW 1,8V (16MB)
W25X10 (128kB)
W25X20 (256kB)
W25X40 (512kB)
W25X80 (1MB) - tested OK
W25X16 (2MB)
W25X32 (4MB) - tested OK
W25X64 (8MB)
P.S. Я не создатель данного софта и идея данного програматора не моя.Я просто на практическом примере показал и рассказал,что данный способ програмирования флешек работает и в самой конструкции нет ничего сложного.
Привет, Дзен! В этой короткой заметке хочу рассказать о двух самых простых программаторах, которые позволят перепрошить микросхему Bios на материнской плате ноутбука или системного блока.
Кроме того, один подписчик просил выкладывать фото каких-нибудь самодельных, сделанных своими руками, устройств. Выкладываю.
Энное количество времени назад, мне впервые потребовалось прошить микросхему биоса ноутбука. Естественно, я без проблем смог найти у друзей и коллег программатор. Но мне очень захотелось сделать для себя подобный и нужный гаджет самостоятельно.
Почитав различные форумы, пообщавшись с теми, кто успешно смог собрать такой программатор, мой выбор пал на BlackcatUSB.
Почему? Да все потому, что он довольно прост в изготовлении и про него было довольно много информации. Сразу отвечу некоторым комментаторам, которые тут же начнут хаять, что мол зачем собирать, выдумывать, можно за пару сотен взять с Али и не заморачиваться. Да, действительно, можно. И о таком программаторе я расскажу ниже. Но есть одно объяснение, которое многим диванным экспертам не понять. Это хобби, интерес и возможность решить поставленную задачу своими руками и мозгами.
После сборки и настройки вот что у меня получилось.
Да, вид не презентабельный, согласен, но этот программатор работает до сих пор и без проблем прошивает SPI 25 серии и некоторые другие. К тому же, его единственная задача это стабильно работать и выполнять свою функцию, а не красоваться на полке под стеклом.
Основой для такого программатора служит микроконтроллер AT90USB162. Эта микросхема уже содержит в себе USB-загрузчик, что позволяет сделать его первоначальную прошивку по шине USB.
А вот теперь, для тех, кто не хочет собирать самостоятельно, немного расскажу о недорогом программаторе CH341A, стоимость которого составляет не более 300 рублей.
Данный программатор поддерживается операционными системами Windows и позволяет работать с микросхемами 25, 26 серии SPI FLASH и 24, 25 EEPROM.
Естественно, что для закрепления микросхем в программаторе, требуется докупить дополнительные колодки под разные типы, ведь припаиваться проводками не совсем удобно).
Хотелось бы отметить еще один момент. Во многих современных ноутбуках используются SPI FLASH с пониженным напряжением питания. Поэтому, для прошивки требуется переходник с 3,3 вольта на 1,8 вольта. Все это есть в продаже, и стоит копейки.
Надеюсь, что начинающим ремонтерам и просто интересующимся будет интересно).
Давно уже достал вопрос:
-"А как я прошью BIOS,если на экране ничего нет?".
Ответ:
-"На програматоре."
И сделать его очень легко.Поэтому я и решил создать данную тему.Тут особо объяснять нечего,я например собрал данный програматор специально для данной темы,Вы можете его видеть на фото 1.Всё нашлось дома и на него не было потрачено ни копейки.
Собственно понадобилось:
LPT шнур.
Четыре резистора по 100 Ом.
Один конденсатор 1uF.
Кроватка для батарейки.
Я ещё сделал клипсу для SOIC-8,но это я уже заморочился. сделана из обычного PCI порта снятого с не рабочей материнской платы,
шаг там как раз совпадает с шагом флешки BIOS.
В моём LPT шнуре провода были припаяны не так как мне надо,поэтому я перепаял их в соответствии с распиновкой указанной на рисунке 1,далее я припаял четыре резистора по 100 Ом на соответствующих проводах и поставил конденсатор между землёй и питанием с батарейки.Я завёл всё это дело в своеобразный кожух как видно первом фото,но Вы можете не заморичиваться.Ну и припаял провода к клипсе SOIC-8,в соответствии с распиновкой флешки BIOS.
Так же я сделал вариант этого же програматора с питанием от USB,Вы можете это видеть на фото 2.Как известно питание на USB +5V,но нам надо +3.3V,как быть?Опять же всё просто,за счёт резистивного делителя получаем нужное напряжение,на рисунке 2 я нарисовал USB разъём и его подключение к схеме.На питание +5V ставим резистор на 6.8 кОм,на землю ставим резистор 15 кОм,вторые выводы резисторов соединяем между собой и получаем между ними деление напряжения,у меня правда 3.4V получилось,но это вполне нормально для корректной работы.Так же важный момент заключается в том чтобы обязательно подключить землю от USB к земле в схеме как указано на рисунке 2.
Так получился полностью рабочий програматор который прошивает подавляющее большинство флешек BIOS.
В итоге если схема собрана полностью правильно,то он работает сразу.
Остаётся припаять флешку BIOS в соответствии с распиновкой и можно запускать прошивальщик SPIPGM.
Не знаю у кого как,многие говорят,что под WINDOWS не шьёт,не работает,но на деле у меня всё работает и под XP и под семёркой.
Как что делать:
Распаковываем прикреплённый архив в C:\Documents and Settings\(Ваша учётная запись)в моём случае KOL.
C:\Documents and Settings\KOL
Заходим в диспетчер устройств,вызываем свойства LPT порта,там есть вкладка"Параметры порта",переходим в неё и там выбираем "Использовать
любое прерывание,назначенное порту"->Ok.
Подключаем програматор к LPT порту,вызываем командную строку(Пуск->Выполнить->cmd->ENTER)откроется командная строка,
***Заметка***
Новая прошивка закидывается туда же где лежит программа прошивальщик.
***
далее набираем команды:
spipgmw /i,жмём Enter,флешка определилась.
spipgmw /u,жмём Enter,флешка разблокировалась.
spipgmw /d oldbios.bin,жмём Enter,сохранение старого дампа.
spipgmw /е,жмём Enter,флешка стирается.
spipgmw /p newbios.bin,жмём Enter,запись на флешку рабочего дампа(прошивки).
Далее на скриншотах можете видеть эти команды в действии.
AMIC:
A25L05PU/PT (64kB)
A25L10PU/PT (128kB)
A25L20PU/PT (256kB)
A25L40PU/PT (512kB)
A25L80PU/PT (1MB)
A25L16PU/PT (2MB)
A25L32PU/PT (4MB)
A25L64PU/PT (8MB)
A25L512 (64kB)
A25L010 (128kB)
A25L020 (256kB)
A25L040 (512kB)
A25L080 (1MB) - tested OK
Atmel:
AT25F512B (64kB)
AT25F1024A (128kB) - this chip may be supported but a tester is needed
AT25DF021 (256kB)
AT26DF041 (512kB)
AT25DF041A (512kB)
AT26F004 (512kB) - tested OK
AT26DF081 (1MB)
AT25/26DF081A (1MB)
AT25DF081 (1MB)
AT26DF161 (1MB)
AT26DF161A (2MB)
AT25DF161 (2MB)
AT25DQ161 (2MB)
AT25/26DF321 (4MB)
AT25DF321A (4MB)
AT25DQ321A (4MB)
AT25DF641(A) (8MB)
EON:
EN25B10 (128kB)
EN25B20 (256kB)
EN25B40(T) (512kB)
EN25B80 (1MB)
EN25B16 (2MB)
EN25P32 (4MB)
EN25P64 (8MB)
EN25P128 (16MB)
EN25Q40 (512kB)
EN25Q80 (1MB)
EN25Q16 (2MB)
EN25Q32 (4MB)
EN25Q64 (8MB)
EN25Q128 (16MB)
EN25F10 (128kB)
EN25F20 (256kB)
EN25F40 (512kB)
EN25F80 (1MB) - tested OK
EN25F16 (2MB)
EN25F32 (4MB)
EN25F64 (8MB)
EN25F128 (16MB)
EN25T10 (128kB)
EN25T20 (256kB)
EN25T40 (512kB)
EN25T80 (1MB)
EN25T16 (2MB)
EN25T32 (4MB)
EN25T64 (8MB)
EN25QH16 (2MB)
EN25QH32 (4MB) - tested OK
EN25QH64 (8MB)
EN25QH128 (16MB)
EN25QH256 (32MB)
ESMT:
F25L004A (512kB) - tested OK
F25L008A/08PA (1MB)
F25L016A/16PA (2MB)
F25L32PA (4MB)
F25L64PA (8MB)
F25S04PA (512kB)
F25L08PA (1MB)
F25L16QA (2MB)
F25L32QA (4MB)
F25L64QA (8MB)
GigaDevice:
GD25Q512 (64kB)
GD25Q10 (128kB)
GD25Q20 (256kB)
GD25Q40 (512kB)
GD25Q80 (1MB)
GD25Q16 (2MB) - tested OK
GD25Q32 (4MB) - tested OK
GD25Q64 (8MB)
Macronix:
MX25L512E/25V512 (64kB)
MX25L5121E (64kB)
MX25U5121E (64kB)
MX25L1005/1006/1025/1026E/25V1006E (128kB) - tested OK
MX25L1021E (128kB)
MX25U1001E (128kB)
MX25L2005/2006/2025/2026E/25V2006 (256kB)
MX25U2033E (256kB)
MX25L4005/4006/4025/4026/25V4005/4006E (512kB)
MX25U4033/4035/25V4033/4035 (512kB)
MX25L8005/8006/8008/8035/8036/8073/8075E (1MB) - tested OK
MX25U8033/8035E (1MB)
MX25V8035 (1MB)
MX25L1605/1606/1608E (2MB) - tested OK
MX25L1633/1635/1636/1673/1675E (2MB)
MX25L1635/1636E (2MB)
MX25U1635 (2MB)
MX25L3205/3206/3208/3233/3235/3273/3275E (4MB)
MX25U3235/25L3239E (4MB)
MX25L3225/3236/3237D (4MB)
MX25L6405/6406/6408/6435/6436/6445/6465/6473/6475E (8MB) - tested OK
MX25U6435/25L6439E (8MB) - tested OK
MX25L12835/12836/12839/12845/12865/12873/12875F (16MB) - tested OK
MX25U12835F (16MB)
MX25L25635/25639/25735/25835E (32MB)
MX25U25635F (32MB)
MX66L51235F/51245G (64MB)
MX66U51235F (64MB)
MX66L1G45G (128MB)
PMC:
Pm25LD512 (64kB) - tested OK
Pm25LD010 (128kB) - tested OK
Pm25LD020 (256kB)
Pm25LV512(A) (64kB) - tested OK
Pm25LV010(AB) (128kB) - tested OK
Pm25LV020 (256kB)
Pm25LV040 (512kB) - tested OK
Pm25LV080B (1MB)
Pm25LV016B (2MB)
Pm25LV032B (4MB)
Pm25LV064B (8MB)
*Pm25LQ032C (4MB)
Spansion:
S25FL001A (128kB)
S25FL002A (256kB)
S25FL004A (512kB)
S25FL008A (1MB)
S25FL016A (2MB)
S25FL032A/P (4MB) - tested OK
S25FL064A/P (8MB)
S25FL128P/S/129P/S (16MB) - tested OK
S25FL256S (32MB)
S25FL512S (64MB)
S25FL01GS (128MB)
ST Microelectronic/Numonyx:
M25P05 (64kB)
M25P10 (128kB)
M25P10AV (128kB) - tested OK
M25P20 (256kB)
M25P40 (512kB)
M25P80 (1MB)
M25P16 (2MB)
M25P32 (4MB) - tested OK
M25P64 (8MB)
M25P128 (16MB)
M45PE10 (128kB)
M45PE20 (256kB)
M45PE40 (512kB)
M45PE80 (1MB)
M45PE16 (2MB)
M25PX80 (1MB)
M25PX16 (2MB)
M25PX32 (4MB)
M25PX64 (8MB)
N25Q032A13E (4MB)
N25Q032A11E (4MB)
N25Q064A13E (8MB)
N25Q064A11E (8MB)
N25Q128A13E (16MB)
N25Q128A11E (16MB)
N25Q256A13E (32MB)
N25Q256A11E (32MB)
N25Q512A13G (64MB)
N25Q512A11G (64MB)
N25Q00AA13GB (128MB)
Winbond:
W25Q10B (128kB)
W25Q20BV (256kB)
W25Q40BV (512kB)
W25Q80BV (1MB) - tested OK
W25Q16BV (2MB) - tested OK
W25Q32BV (4MB) - tested OK
W25Q64BV/FV (8MB) - tested OK
W25Q128BV/FV (16MB)
W25Q256FV (32MB)
W25Q16FW 1,8V (2MB)
W25Q32FW 1,8V (4MB)
W25Q64FW 1,8V (8MB)
W25Q128FW 1,8V (16MB)
W25X10 (128kB)
W25X20 (256kB)
W25X40 (512kB)
W25X80 (1MB) - tested OK
W25X16 (2MB)
W25X32 (4MB) - tested OK
W25X64 (8MB)
P.S. Я не создатель данного софта и идея данного програматора не моя.Я просто на практическом примере показал и рассказал,что данный способ програмирования флешек работает и в самой конструкции нет ничего сложного.
Давно уже достал вопрос:
-"А как я прошью BIOS,если на экране ничего нет?".
Ответ:
-"На програматоре."
И сделать его очень легко.Поэтому я и решил создать данную тему.Тут особо объяснять нечего,я например собрал данный програматор специально для данной темы,Вы можете его видеть на фото 1.Всё нашлось дома и на него не было потрачено ни копейки.
Собственно понадобилось:
LPT шнур.
Четыре резистора по 100 Ом.
Один конденсатор 1uF.
Кроватка для батарейки.
Я ещё сделал клипсу для SOIC-8,но это я уже заморочился. сделана из обычного PCI порта снятого с не рабочей материнской платы,
шаг там как раз совпадает с шагом флешки BIOS.
В моём LPT шнуре провода были припаяны не так как мне надо,поэтому я перепаял их в соответствии с распиновкой указанной на рисунке 1,далее я припаял четыре резистора по 100 Ом на соответствующих проводах и поставил конденсатор между землёй и питанием с батарейки.Я завёл всё это дело в своеобразный кожух как видно первом фото,но Вы можете не заморичиваться.Ну и припаял провода к клипсе SOIC-8,в соответствии с распиновкой флешки BIOS.
Так же я сделал вариант этого же програматора с питанием от USB,Вы можете это видеть на фото 2.Как известно питание на USB +5V,но нам надо +3.3V,как быть?Опять же всё просто,за счёт резистивного делителя получаем нужное напряжение,на рисунке 2 я нарисовал USB разъём и его подключение к схеме.На питание +5V ставим резистор на 6.8 кОм,на землю ставим резистор 15 кОм,вторые выводы резисторов соединяем между собой и получаем между ними деление напряжения,у меня правда 3.4V получилось,но это вполне нормально для корректной работы.Так же важный момент заключается в том чтобы обязательно подключить землю от USB к земле в схеме как указано на рисунке 2.
Так получился полностью рабочий програматор который прошивает подавляющее большинство флешек BIOS.
В итоге если схема собрана полностью правильно,то он работает сразу.
Остаётся припаять флешку BIOS в соответствии с распиновкой и можно запускать прошивальщик SPIPGM.
Не знаю у кого как,многие говорят,что под WINDOWS не шьёт,не работает,но на деле у меня всё работает и под XP и под семёркой.
Как что делать:
Распаковываем прикреплённый архив в C:\Documents and Settings\(Ваша учётная запись)в моём случае KOL.
C:\Documents and Settings\KOL
Заходим в диспетчер устройств,вызываем свойства LPT порта,там есть вкладка"Параметры порта",переходим в неё и там выбираем "Использовать
любое прерывание,назначенное порту"->Ok.
Подключаем програматор к LPT порту,вызываем командную строку(Пуск->Выполнить->cmd->ENTER)откроется командная строка,
***Заметка***
Новая прошивка закидывается туда же где лежит программа прошивальщик.
***
далее набираем команды:
spipgmw /i,жмём Enter,флешка определилась.
spipgmw /u,жмём Enter,флешка разблокировалась.
spipgmw /d oldbios.bin,жмём Enter,сохранение старого дампа.
spipgmw /е,жмём Enter,флешка стирается.
spipgmw /p newbios.bin,жмём Enter,запись на флешку рабочего дампа(прошивки).
Далее на скриншотах можете видеть эти команды в действии.
AMIC:
A25L05PU/PT (64kB)
A25L10PU/PT (128kB)
A25L20PU/PT (256kB)
A25L40PU/PT (512kB)
A25L80PU/PT (1MB)
A25L16PU/PT (2MB)
A25L32PU/PT (4MB)
A25L64PU/PT (8MB)
A25L512 (64kB)
A25L010 (128kB)
A25L020 (256kB)
A25L040 (512kB)
A25L080 (1MB) - tested OK
Atmel:
AT25F512B (64kB)
AT25F1024A (128kB) - this chip may be supported but a tester is needed
AT25DF021 (256kB)
AT26DF041 (512kB)
AT25DF041A (512kB)
AT26F004 (512kB) - tested OK
AT26DF081 (1MB)
AT25/26DF081A (1MB)
AT25DF081 (1MB)
AT26DF161 (1MB)
AT26DF161A (2MB)
AT25DF161 (2MB)
AT25DQ161 (2MB)
AT25/26DF321 (4MB)
AT25DF321A (4MB)
AT25DQ321A (4MB)
AT25DF641(A) (8MB)
EON:
EN25B10 (128kB)
EN25B20 (256kB)
EN25B40(T) (512kB)
EN25B80 (1MB)
EN25B16 (2MB)
EN25P32 (4MB)
EN25P64 (8MB)
EN25P128 (16MB)
EN25Q40 (512kB)
EN25Q80 (1MB)
EN25Q16 (2MB)
EN25Q32 (4MB)
EN25Q64 (8MB)
EN25Q128 (16MB)
EN25F10 (128kB)
EN25F20 (256kB)
EN25F40 (512kB)
EN25F80 (1MB) - tested OK
EN25F16 (2MB)
EN25F32 (4MB)
EN25F64 (8MB)
EN25F128 (16MB)
EN25T10 (128kB)
EN25T20 (256kB)
EN25T40 (512kB)
EN25T80 (1MB)
EN25T16 (2MB)
EN25T32 (4MB)
EN25T64 (8MB)
EN25QH16 (2MB)
EN25QH32 (4MB) - tested OK
EN25QH64 (8MB)
EN25QH128 (16MB)
EN25QH256 (32MB)
ESMT:
F25L004A (512kB) - tested OK
F25L008A/08PA (1MB)
F25L016A/16PA (2MB)
F25L32PA (4MB)
F25L64PA (8MB)
F25S04PA (512kB)
F25L08PA (1MB)
F25L16QA (2MB)
F25L32QA (4MB)
F25L64QA (8MB)
GigaDevice:
GD25Q512 (64kB)
GD25Q10 (128kB)
GD25Q20 (256kB)
GD25Q40 (512kB)
GD25Q80 (1MB)
GD25Q16 (2MB) - tested OK
GD25Q32 (4MB) - tested OK
GD25Q64 (8MB)
Macronix:
MX25L512E/25V512 (64kB)
MX25L5121E (64kB)
MX25U5121E (64kB)
MX25L1005/1006/1025/1026E/25V1006E (128kB) - tested OK
MX25L1021E (128kB)
MX25U1001E (128kB)
MX25L2005/2006/2025/2026E/25V2006 (256kB)
MX25U2033E (256kB)
MX25L4005/4006/4025/4026/25V4005/4006E (512kB)
MX25U4033/4035/25V4033/4035 (512kB)
MX25L8005/8006/8008/8035/8036/8073/8075E (1MB) - tested OK
MX25U8033/8035E (1MB)
MX25V8035 (1MB)
MX25L1605/1606/1608E (2MB) - tested OK
MX25L1633/1635/1636/1673/1675E (2MB)
MX25L1635/1636E (2MB)
MX25U1635 (2MB)
MX25L3205/3206/3208/3233/3235/3273/3275E (4MB)
MX25U3235/25L3239E (4MB)
MX25L3225/3236/3237D (4MB)
MX25L6405/6406/6408/6435/6436/6445/6465/6473/6475E (8MB) - tested OK
MX25U6435/25L6439E (8MB) - tested OK
MX25L12835/12836/12839/12845/12865/12873/12875F (16MB) - tested OK
MX25U12835F (16MB)
MX25L25635/25639/25735/25835E (32MB)
MX25U25635F (32MB)
MX66L51235F/51245G (64MB)
MX66U51235F (64MB)
MX66L1G45G (128MB)
PMC:
Pm25LD512 (64kB) - tested OK
Pm25LD010 (128kB) - tested OK
Pm25LD020 (256kB)
Pm25LV512(A) (64kB) - tested OK
Pm25LV010(AB) (128kB) - tested OK
Pm25LV020 (256kB)
Pm25LV040 (512kB) - tested OK
Pm25LV080B (1MB)
Pm25LV016B (2MB)
Pm25LV032B (4MB)
Pm25LV064B (8MB)
*Pm25LQ032C (4MB)
Spansion:
S25FL001A (128kB)
S25FL002A (256kB)
S25FL004A (512kB)
S25FL008A (1MB)
S25FL016A (2MB)
S25FL032A/P (4MB) - tested OK
S25FL064A/P (8MB)
S25FL128P/S/129P/S (16MB) - tested OK
S25FL256S (32MB)
S25FL512S (64MB)
S25FL01GS (128MB)
ST Microelectronic/Numonyx:
M25P05 (64kB)
M25P10 (128kB)
M25P10AV (128kB) - tested OK
M25P20 (256kB)
M25P40 (512kB)
M25P80 (1MB)
M25P16 (2MB)
M25P32 (4MB) - tested OK
M25P64 (8MB)
M25P128 (16MB)
M45PE10 (128kB)
M45PE20 (256kB)
M45PE40 (512kB)
M45PE80 (1MB)
M45PE16 (2MB)
M25PX80 (1MB)
M25PX16 (2MB)
M25PX32 (4MB)
M25PX64 (8MB)
N25Q032A13E (4MB)
N25Q032A11E (4MB)
N25Q064A13E (8MB)
N25Q064A11E (8MB)
N25Q128A13E (16MB)
N25Q128A11E (16MB)
N25Q256A13E (32MB)
N25Q256A11E (32MB)
N25Q512A13G (64MB)
N25Q512A11G (64MB)
N25Q00AA13GB (128MB)
Winbond:
W25Q10B (128kB)
W25Q20BV (256kB)
W25Q40BV (512kB)
W25Q80BV (1MB) - tested OK
W25Q16BV (2MB) - tested OK
W25Q32BV (4MB) - tested OK
W25Q64BV/FV (8MB) - tested OK
W25Q128BV/FV (16MB)
W25Q256FV (32MB)
W25Q16FW 1,8V (2MB)
W25Q32FW 1,8V (4MB)
W25Q64FW 1,8V (8MB)
W25Q128FW 1,8V (16MB)
W25X10 (128kB)
W25X20 (256kB)
W25X40 (512kB)
W25X80 (1MB) - tested OK
W25X16 (2MB)
W25X32 (4MB) - tested OK
W25X64 (8MB)
P.S. Я не создатель данного софта и идея данного програматора не моя.Я просто на практическом примере показал и рассказал,что данный способ програмирования флешек работает и в самой конструкции нет ничего сложного.
В интернете представлено множество схем программаторов микроконтроллеров. Представляю вариант внутрисхемного универсального USB программатора с возможностью отладки, которым пользуюсь я. Вы сможете собрать данный программатор своими руками.
Основой программатора является микросхема FT2232D. Представляет она собой преобразователь USB в два порта UART. Особенность заключается в том, что «верхний» канал А может работать в режимах JTAG, SPI и I 2 C, что и требуется для программирования микроконтроллеров, различных микросхем памяти и т.п.
Разработка данного USB-программатора ведется на компьютере с использованием библиотек от фирмы FTDI Chip.
Питается устройство от интерфейса USB. При правильной сборке схема не нуждается в настройке. Функционирование устройства зависит от мастерства разработчика ПО. Резисторы R8, R9, R12, R13, R14, R15, R16 являются токоограничивающими при неправильном соединении с устройством, соответственно, выводы программируемого устройства не должны соединяться с другими элементами в схеме, или иметь такие подтяжки, которые при образовании делителей напряжения не искажали бы логические уровни. Микросхема U1 используется для сохранения пользовательских настроек.
Выводы U2 (канал А):
24 — ADBUS0 – выход- в режиме JTAG TCK, в режиме SPI SK;
23 — ADBUS1 – выход- в режиме JTAG TDI, в режиме SPI DO;
22 — ADBUS2 – вход- в режиме JTAG TDO, в режиме SPI DI;
21 — ADBUS3 – выход- в режиме JTAG TMS, в режиме SPI как вспомогательный сигнал(CS);
20 — ADBUS4 – в режиме JTAG вход\выход, в режиме SPI вспомогательный выход. Этот вывод используется для подачи сигнала RESET в микроконтроллер;
15 — AСBUS0 – свободно программируемый вход\выход во всех режимах (опционно используется для подачи питания в программируемое устройство);
13 — AСBUS1 – свободно программируемый вход\выход во всех режимах.
В принципе, эти выводы многофункциональные. Их поведение определяется выбранным режимом при открытии порта.
Канал В используется для отладки программируемого устройства. Для этого нужно только иметь незадействованный порт UART в микроконтроллере. Далее дело техники. В программе микроконтроллера в нужных местах используем функцию форматированного вывода printf().
40 —BDBUS0 – выход- в режиме UART TXD;
39 —BDBUS1 – вход- в режиме UART RXD;
28 — BСBUS2 – выход- в режиме UART LED-индикатор (зажигается при передаче данных через USB);
27 — BСBUS3 – выход- в режиме UART LED-индикатор (зажигается при приеме данных через USB).
Ниже приведена печатная плата программатора
Читайте также: