16

Клон программатора 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. Для перепрошивки не требуется дополнительных программ – это можно сделать прямо из его собственной программы. ПО распространяется свободно, более того. разработчики предоставляют файлы прошивок и исходники программы. Поддерживается система скриптов для добавления новых алгоритмов. Можно вручную выбирать все параметры работы с неизвестной памятью. Программа не требует установки, просто запускаем и работаем.
Внешний вид фабричного варианта:
1
На оригинальной плате имеются перемычки для выбора напряжения SPI – 3,3V / 5V, кнопка сброса и переключатели выбора режима загрузки: обычный / загрузчик. В повседневной работе сброс и перепрошивка программатора крайне редко требуются, поэтому для клона кнопка и переключатели были исключены. Вместо 10-штырькового разъема установлен DIP-сокет, а разъем USB выполнен продолжением печатной платы:
2
0
Чтобы “разъем USB” не болтался в гнезде, он должен быть толщиной 2,5мм, Мне удалось найти кусочек текстолита такой толщины, а для платы в 1,5мм придется приклеивать “подкладку” 1мм. Она должна быть обязательно неметаллической – на случай случайной вставки в разъем “вверх ногами”.
Схема:
3
При установке перемычки J1 в положение 1-2 питание микроконтроллера осуществляется от линии 5V USB, при установке 2-3 – от внутреннего стабилизатора 3,3V.
Внимательно смотрите даташит памяти перед выбором напряжения программирования – большинство трехвольтовых чипов выйдут из строя при питании от 5V.

Собранный без ошибок клон сразу определится системой как AT90USB162 в режиме DFU. Запускаем оболочку BlackcatUSB и убеждаемся в этом:
4
Если микроконтроллер не “чистый”, то принудительно переводим его в режим загрузчика:
1) замыкаем на корпус контакт RESET
2) замыкаем на корпус контакт BOOT
3) отпускаем RESET
4) отпускаем BOOT
Важно, чтобы BOOT был отпущен чуть позже, чем RESET.
Далее переходим во вкладку AVR Firmware, выбираем файл прошивки BCUSB.1.09.SPI.hex и кнопкой “Program” запускаем процесс прошивки:
5
По окончании процесса (пара секунд), жмем “Start Application”. Программатор определится системой и потребует драйвер – находим его в папке Drivers. После его установки видим готовый к работе программатор:
6
Теперь можно проверить его в работе.
ВАЖНО! Если горит (или мигает) светодиод режима, то вставлять и вынимать память из сокета нельзя – он под напряжением, это может испортить информацию!
Поэтому просто вынимаем клон из разъема USB, вставляем память в сокет и пробуем:
Siete
Память определилась и появилась вкладка SPI Flash, на которой можно ее прочесть и записать:
8
Для режима JTAG потребуется другая прошивка – BCUSB.6.03.EJTAG.hex., а так же разъем-переходник DIP-сокет – JTAG. Новое назначение выводов можно увидеть в документации к программе.
P.S. Программатор “BlackcatUSB” на сегодняшний момент не поддерживается разработчиком – вместо него выпускается обновленная версия “FlashcatUSB”:
9
Из “железных” обновлений только замена мк на более емкий вариант – ATmega32U2. В программной части обновлений больше – поддержка большей номенклатуры чипов, в том числе NAND. Новые версии программы доступны на сайте разработчика.
Новые прошивки NAND (FCUSB.1.07.NAND.hex) и JTAG (FCUSB.7.05.EJTAG_16K.hex) подходят и для нашего клона – во всяком случае запускаются и определяются, функционал не проверял – просто не на чем.
Судя по документации, назначение переключателей изменилось, возможно есть изменения и в печатной плате. Если кто-то соберет вариант на ATmega32U2 (чипы по ножкам совместимы), просьба отписаться о результатах.

administración

16 Comentarios

  1. Большое спасибо за статью!
    Собрал устройство, всё работает отлично!
    К сожаления в магазине не было ATmega32U2, поэтому поставил AT90USB162.
    Новая прошивка SPI с сайта FCUSB.3.05.SPI.hex заливается, но устройство с ней не работает 🙁 (USB устройство не определено)

  2. Пробовал заливать все подряд. В итоге пока остановился на прошивке SPI из архива с этой статьи.

  3. Win 8.1 х64 при перемычке 3.3в не опознается системой (неизвестное USB устройство) , при 5.0в все нормально. Без перемычки на J1 напряжения (отн. земли) 1- 5.0в, 2- 4.0в, 3-3.2в. Какое напряжение у Вас на 2 контакте J1 без перемычки (32+4 пин AVCC+VCC на контроллере)?

  4. Gena,
    Win 8 не пробовал за неимением, но на Win 7 x64 и Win XP у меня работает.
    На 2 контакте J1 без перемычки 0 вольт.

  5. По поводу оригинальной схемы PCB 1.8: контакты 3 и 4 SA2 и Анод VD2 лучше подключить на контакт 2 X2.

  6. Здравствуйте, а как к нему подключить CFI flash: 29LV400BB? Нигде не могу найти какие пины куда на флеш, только про SPI есть информация.

    • 29LV400BB на прямую к нему не подключается! Программируется она КОТОМ внутрисхемно, т.е. в устройстве если в нем есть такая возможность! Прошивка контроллера должна быть для NAND памяти, допустим – FCUSB.1.07.NAND.hex. Назначение пинов:
      – EJ (от анг. Enable JTAG) – Включение режима ОТЛАДКИ (сигнал с КОТА на Плату);
      – SI, SO, SCLK, CS (SPI интерфейс) -> к SPI разъёму платы;
      – KSK он же KIOSK для большинства Плат не нужен, не подключается. Не давал памяти заснуть.
      – XX (типа: “Все …заканчиваем! Нах-Нах!”) – Сигнал сброса (С Платы на КОТА, после завершения или в случае ошибки…).

  7. ребят скинте печатную версию в формате sprinn lay

    • Для зборки программатора Нету возможности купить микроконтроллер AT90USB162,подскажите откуда можно снять?С какой техники или Компьютера? или заменит чемта

    • плату в SPLAY могу отправить по электронке, здесь прикрепить не могу.

  8. на идеальную трассировку не претендую, но собранный девайс работает с 32U2 и прошивкой и программой с оригинального сайта(пробовал версию 330). С этой прошивкой и этой программой запустить не смог. может что-то делал не так, но с оригинальной все заработало без танцев с бубном.
    ps у меня работает без конденсаторов у кварца, резисторы USB и на целевой чип стоят 68 ом тк были под рукой.

Deja una Respuesta

Your email address will not be published. Required fields are marked *