При написании и отладке прошивки устройств на микроконтроллерах приходится часто выполнять перепрограммирование МК и периодически подключаться к нему через
UART-интерфейс чтобы смотреть логи (по крайней мере, лично я предпочитаю отладку через UART-терминал). Особенностями МК ATMega128 является то, что
1) для внутрисхемного программирования он использует выводы, отличные от выводов SPI-интерфейса и
2) данный МК имеет на борту два UART-а, причем, выводы одного из них совпадают с выводами ISP-интерфейса.
Таким образом, при написании прошивки все манипуляции с устройством можно делать через один разъем для программатора. С одной стороны, это очень удобно и упрощает печатную плату/схему устройства. С другой стороны, в процессе отладки приходится постоянно менять местами шлейфы программатора и UART. А для перезапуска устройства приходится либо устанавливать отдельную кнопку сброса на плату (которая там, как правило, совсем не нужна при обычной работе устройства после завершения отладки), либо делать перезапуск путем выключения-включения питания. Т.к. постоянно дергать туда-сюда шлейфы ни разу не удобно и приводит к тому, что провода обрываются (а еще при этом можно попутать полярность и что-нибудь спалить), решил сделать небольшую плату-адаптер, которая:
Схема адаптера:
Кнопка DEBUG добавлена для возможности включения логов. Т.к., например, при тактировании МК частотой 16 МГц максимальная скорость работы UART-а будет всего 1200 бод (если хочется получить режим безошибочной передачи данных), и передача логов при этом будет идти очень медленно, что приводит к торможению работы всей прошивки. Кнопку DEBUG можно опрашивать, например, в момент инициализации и включать вывод логов только если эта кнопка нажата (ну или наоборот, не нажата).
Внешний вид:
Адаптер в действии:
Ниже по ссылке можно скачать схему и плату для Eagle и SVG-рисунок платы для ЛУТ.