Прошивка AVR через RS232 bitbang

Случилась недавно оказия — сгорел старый AVR910, других — нет. Заказывать — минимум 4..5 дней.
А проект нужно сдавать завтра.

LPT и 5 проводками обойтись не получится — LPT давно нет.
Вспомнил что в документации Avrdude упоминались serial-bitbang адаптеры www.nongnu.org/avrdude/user-manual/avrdude_1.html.

В наличии были адаптеры на PL2303 и CP2102.
Из конфига avrdude ни один из вариантов не заработал (нужна инверсия всех сигналов).

Пришлось добавить новое описание в avrdude.conf:
programmer
  id    = "cp2102";
  desc  = "Serial-USB bitbang, reset=!txd sck=!rts mosi=!dtr miso=!cts";
  type  = serbb;
  reset = ~3;
  sck   = ~7;
  mosi  = ~4;
  miso  = ~8;
;


Распиновка:
RES - TX (можно не подключать - см.ниже)
MOSI - DTR
MISO - CTS
SCK - RTS

Сразу законектиться не получилось — оказалось что USB-RS232 не может выдать постоянный уровень 0 на RX.
Помогла принудительная подача сброса джампером перед программированием.

Единственный недостаток — работает очень медленно.
Прошивка бутлоадера Ардуино заняла полтора часа!
Зато работает с любыми адаптерами, на всех системах (в отличии от патча USBBit для FT232 bitbang).
  • +3
  • 16 июля 2013, 10:16
  • zubb

Комментарии (2)

RSS свернуть / развернуть
Лучше, конечно, иметь несколько вариантов программаторов. У меня, например:
для AVR: Громов, USBASP, AVRISP-MK2, FTBB или HappyJTAG PinBoard2
для PIC: ICD2, PicPGM на Pinboard2
STM32: CoLink на PinBoard2
универсальный: OpenProgrammer на макетке и TL866
Всяко можно выкрутиться.
Часть программаторов использую как отладочные платы, тот же AVRISP-MK2 и OpenProgrammer.
0
конечно лучше. но если поблизости нет магазинов, и все нужно заказывать — приходится выдумывать выход из ситуации.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.