Однажды произошел сбой при перепрошивке биоса на материнской плате ASUS и получился большой «кирпич» — плата не стартовала. Рассказываю, как я решил проблему по раскирпичиванию биоса.
Нашел на просторах рунета схему программатора с использованием Ардуино. Схема мне понравилась тем, что на сборку макета ушло 10 минут. Из деталей нужны только макетка, ардуинка, провода, и сама микросхема флеш. К счастью, на моей материнской плате биос не был запаян, а вставлен в 8-pin колодку. Микросхема BIOS — EN25F80-100QCP, 1024K-byte Serial Flash memory, продается на Али.
Информация из даташита EN25F80:
• Single power supply operation
— Full voltage range: 2.7-3.6 volt
• 8 Mbit Serial Flash
— 8 M-bit/1024 K-byte/4096 pages
— 256 bytes per programmable page
• High performance
— 100MHz clock rate
• Low power consumption
— 5 mA typical active current
— 1 μA typical power down current
• Uniform Sector Architecture:
— 256 sectors of 4-Kbyte
— 16 blocks of 64-Kbyte
— Any sector or block can be erased individually
Вывод микросхемы флеш-памяти | Вывод платы Arduino |
---|---|
CS# | цифровой пин 10 |
SI | цифровой пин 11 |
SO | цифровой пин 12 |
SCLK | цифровой пин 13 |
WP# | 3V3 |
HOLD# | 3V3 |
VCC | 3V3 |
GND | GND |
Плата Arduino Nano использует 3.3в уровень, т.е. для прошивания флешки в самый раз. Из программ — среда Arduino IDE и программа-программатор (в прикрепленном файле).
С софтом пришлось немного повозиться, т.к. zip файлы с библиотеками автора не открывались, но чудом удалось найти копипаст этих библиотек, и проект продолжился.
Итак, что нужно:
1. Подключаем к компу по usb и прошиваем Ардуино Nano.
Как прошивать? Находим на компе, где хранятся скетчи Ардуино (папка Arduino). Кладем туда содержимое проекта из архива в виде папки с файлами, открываем скетч с расширением ino и прошиваем в нашу плату. Проверено на среде После запуска прошивки плата будет слушать определенный порт, это тот же самый порт, к которому мы подключили Arduino Nano при прошивке.
2. Отключаем плату от компьютера, и собираем простую схему с нашим флешем. Втыкаем все в макетку и соединяем по схеме:
СКАЧАТЬ архив со скетчем и библиотекой
СКАЧАТЬ архив — программатор для Windows
Также была проверена работа программатора с другими микросхемами: 25Q128FVSG, 25L3206E, Winbond 25Q64BVAIG
Важный комментарий по скетчу:
При использовании плат Arduino Nano и Uno в скетче необходимо исправить назначение вывода SS (2->10), и прошить плату.
Программатор для SPI 16-pin, на примере MX25L1605D, MX25L3205D, MX25L6405D
Аналогично можно программировать 16 pin SPI flash, в которых также используются только 8 ног.