Так что я сделал себе usb-программатор
Оказалось, дешево и сердито все придумано давным-давно - USBtinyISP тини2313 стоит $1.5, остальное копейки, ну в $3-4 максимум все обошлось; я выбрал первую версию схемы, развел платку с smd, вместо впайного usb разьема у меня разьем на шнурке - usb разьемы на ноуте по бокам и поэтому неудобно, если что-то из ноута торчит - руками зацепается
Вечером вытравил плату, днем распаял, прошил, потратил пол-дня на понять - почему не шьется, потом почему не определяется виндой - и в пайке было 3 косяка, и фьюзы прошивал неправильно :)
Заготовка платки:
Проутюженая платка:
Откисание (я просто бросаю платку в теплую воду на минут 5, пока бумага не "взрыхлится"):
Снимание бумаги (просто скатываю бумагу без фанатизма, под струйкой теплой воды):
Платка готовая к травлению:
Внезапно обнаружил, что хлорное железо в банке (от времени?) закаменело, а сверху покрыто слоем непонятной рыжей жидкости :( Кое-как наковырял немного, залил горячей водой, бросил травить:
Плата получилась на хорошо+ (а огрехи - типа вот слева-сверху пады разные - это принтер глючил)
Залудил, распаял
На схеме, которую я делал (v.1.0) есть 3 перемычки: JP5 замыкается для программирования самого программатора - разьем "настоящего" программатора включается в разьем на плате, а эта перемычка подключает линию RESET к RST программируемого контроллера - после программирования перемычку надо убрать, а то наш программатор сам себя попробует еще перепрограммировать :) Эта фича не работает на v.2 схемы, там буферы на выходе
Перемычка JP4 определяет, откуда питается программатор - от usb или от внешнего питания (т.е. от схемы, которую он программирует); перемычка JP3 определяет, откуда питается схема, которую программируем - от своего истояника питания или от usb; usb тут может отдать имхо ток всего 100 мА, поэтому надо бдить
Глюки были с прошивкой, точнее с фьюзами; в итого получилось самым правильным способом (который из-за лени не использовал сразу.. вот и получилось, что ленивый 2 раза делает) - в архиве с исходниками с сайта есть готовая прошивка (main.hex в папке spi), а в makefile есть команд-лайн для прошивки (в котором только надо было поменять тип программатора - у меня простой на LPT, он идентифицируется как STK200):
avrdude -c STK200 -pt2313 -U flash:w:main.hexavrdude у меня уже был (он устанавливается скорее всего с WinAVR.. ну или я его установил туда когда-то), так что после прошивки вот таким образом все завелось с первого раза - при подключении программатора к usb зажегся светодиодик, винда спросила за драйверы
avrdude -c STK200 -pt2313 -U hfuse:w:0xdb:m -U lfuse:w:0xef:m
а при прошивке зажигается другой светодиодик, сигнализирующий, что что-то работает :)
Шьется не то, чтоб супер быстро, медленнее имхо, чем от lpt, но а) прошивки небольшие у меня обычно, б) я никуда не спешу :)
Зато у меня есть программатор и я начну ковырять очередной новый прожект.. ну если ничего больше не помешает :)
Комментариев нет:
Отправить комментарий