Клон программатора SPI-Flash BlackcatUSB |
Для прошивки Flash-памяти BIOS материнских плат, винчестеров, а также своих любительских конструкций мне потребовался программатор. Любимый PonyProg поддерживает только до 256кбит, кроме того LPT-порт теперь редкость, поискав по Интернету, нашел довольно простой USB-вариант "BlackcatUSB". Программатор предназначен для чтения/записи SPI-Flash чипов памяти объемом от 1 Мбита и выше (т.е. более 128кбайт) популярных серий 25ххх, 26ххх. По протоколу JTAG (требуется перепрошивка) CFI-Flash чипов - 25ххх, 28ххх, 29ххх, 39ххх, 49ххх, 58ххх, а так же K8D17ххх, K8D32ххх.
Его основой является микроконтроллер AT90USB162, имеющий USB-загрузчик, поэтому первоначальная его прошивка и обновление ПО производится по шине USB. Для перепрошивки не требуется дополнительных программ - это можно сделать прямо из его собственной программы. ПО распространяется свободно, более того. разработчики предоставляют файлы прошивок и исходники программы. Поддерживается система скриптов для добавления новых алгоритмов. Можно вручную выбирать все параметры работы с неизвестной памятью. Программа не требует установки, просто запускаем и работаем.
Внешний вид фабричного варианта
На оригинальной плате имеются перемычки для выбора напряжения SPI - 3,3V / 5V, кнопка сброса и переключатели выбора режима загрузки: обычный / загрузчик. В повседневной работе сброс и перепрошивка программатора крайне редко требуются, поэтому для клона кнопка и переключатели были исключены. Вместо 10-штырькового разъема установлен DIP-сокет, а разъем USB выполнен продолжением печатной платы:
Чтобы "разъем USB" не болтался в гнезде, он должен быть толщиной 2,5мм, Мне удалось найти кусочек текстолита такой толщины, а для платы в 1,5мм придется приклеивать "подкладку" 1мм. Она должна быть обязательно неметаллической - на случай случайной вставки в разъем "вверх ногами".
Схема программатора
При установке перемычки J1 в положение 1-2 питание микроконтроллера осуществляется от линии 5V USB, при установке 2-3 - от внутреннего стабилизатора 3,3V. Внимательно смотрите даташит памяти перед выбором напряжения программирования - большинство трехвольтовых чипов выйдут из строя при питании от 5V.
Собранный без ошибок клон сразу определится системой как AT90USB162 в режиме DFU. Запускаем оболочку BlackcatUSB и убеждаемся в этом:
Если микроконтроллер не "чистый", то принудительно переводим его в режим загрузчика:
- замыкаем на корпус контакт RESET
- замыкаем на корпус контакт BOOT
- отпускаем RESET
- отпускаем BOOT
Важно, чтобы BOOT был отпущен чуть позже, чем RESET. Далее переходим во вкладку AVR Firmware, выбираем файл прошивки BCUSB.1.09.SPI.hex и кнопкой "Program" запускаем процесс прошивки:
По окончании процесса (пара секунд), жмем "Start Application". Программатор определится системой и потребует драйвер - находим его в папке Drivers. После его установки видим готовый к работе программатор:
Теперь можно проверить его в работе.
ВАЖНО! Если горит (или мигает) светодиод режима, то вставлять и вынимать память из сокета нельзя - он под напряжением, это может испортить информацию!
Поэтому просто вынимаем клон из разъема USB, вставляем память в сокет и пробуем:
Память определилась и появилась вкладка SPI Flash, на которой можно ее прочесть и записать:
В архиве по этой ссылке - программа, прошивка, схема и плата. Для режима JTAG потребуется другая прошивка - BCUSB.6.03.EJTAG.hex., а так же разъем-переходник DIP-сокет - JTAG. Новое назначение выводов можно увидеть в документации к программе.
P.S. Программатор "BlackcatUSB" на сегодняшний момент не поддерживается разработчиком - вместо него выпускается обновленная версия "FlashcatUSB":
Из "железных" обновлений только замена мк на более емкий вариант - ATmega32U2. В программной части обновлений больше - поддержка большей номенклатуры чипов, в том числе NAND. Новые версии программы доступны на сайте разработчика. Новые прошивки NAND (FCUSB.1.07.NAND.hex) и JTAG (FCUSB.7.05.EJTAG_16K.hex) подходят и для нашего клона - во всяком случае запускаются и определяются, функционал не проверял - просто не на чем. Источник: www.bascom.at.ua
C этой схемой также часто просматривают: |
Внутрисхемный SPI-программатор для Atmel At89S8252 на LPT порт Повышающий преобразователь для питания программатора PROGOPIC от батареек SPI шлюз для компьютера (через com-порт) на ATTiny2313 Плата для программатора PICkit3 Цифровая кость Спасатель таксиста Ёмкостной датчик надежно контролирует противоугонное устройство Автомобильная зарядка для сотового телефона
|