Клон AVR JTAG ICE

При разработке и отладке программ под микроконтроллеры, возникают вопросы, связанные с программированием и отладкой программы в реальной схеме. Если с программированием микроконтроллеров AVR особых проблем не возникает, поскольку существует множество схем для «заливки» прошивки в кристалл, одной из простейших таких схем является схема получившая название «пять проводов», то с отладкой программы такого богатого выбора не существует.

Для отладки программы возможно использования только двух вариантов – это программный симулятор и внутрисхемный JTAG эмулятор-программатор. Программный симулятор, как правило, не может учитывать всех особенностей работы схемы, таких как внешние воздействия, совместная работа с другими устройствами и прочее. С аппаратными программаторами-отладчиками JTAG появляется возможность пошаговой отладки программы напрямую в самом микроконтроллере установленном непосредственно в схему, просмотра и изменения всех регистров микроконтроллера, установка breakpoints и конечно же внутрисхемного программирования микроконтроллера. Но стоимость оригинального AVR JTAG ICE MkII выпускаемого Atmel колеблется в районе 300 евро, а его аналога AVRDRAGON выпускаемого серийно около 3000руб., что является очень дорогим для людей, занимающихся созданием устройств на микроконтроллерах AVR «для себя».
Но к счастью удалось создать клон, оригинального AVR JTAG ICE, который стоит существенно дешевле оригинала и позволяет проводить программирование и отладку микроконтроллеров AVR с интерфейсом JTAG.

Принципиальная схема программатора AVR JTAG ICE
Рис 1. Принципиальная электрическая схема клона AVR JTAG ICE

Принципиальная электрическая схема приведена на рис. 1. Основой данного JTAG служит микроконтроллер DD3 AVR ATMega16. Микросхема DD2 MAX232 выполняет роль преобразователя интерфейса RS232 в ТТЛ уровни UART. Микросхема DD1 предназначена для защиты входных и выходных цепей микроконтроллера DD3 и согласования напряжения логических уровней при использовании внешнего питания.

Питание JTAG может браться от цепей питания отлаживаемого устройства через четвертый контакт vTref XP3, а также может использоваться внешнее через разъем XP1 и ХР2. Внешнее напряжение может быть в диапазоне от 7 до 15В. При использовании внешнего источника питания, вывод vTref разъема XP3можно не подключать.
Светодиод HL2 отображает наличие питания, HL1 режим работы JTAG.

Подключение JTAG к отлаживаемому микроконтроллеру осуществляется через стандартный десяти выводной разъем. Схема подключения которого изображена на рис. 2.

Схема подключения AVR JTAG ICE к отлаживаемому устройству
Рис 2. Схема подключения AVR JTAG ICE к отлаживаемому устройству

Существует несколько вариантов BootLoader загрузчиков для прошивки JTAG, но на мой взгляд наиболее удачный вариант получился у Кротевич Виталия (Vit). Его загрузчик наиболее близко повторяет фирменный и позволяет обновлять микропрограмму JTAG непосредственно из AVRStudio без перезагрузки JTAG и входа в режим программирования через BootStart. В случае если не планируется производить обновление прошивки JTAG`a , то загрузчик можно не прошивать, а «зашить» только оригинальную прошивку от AVRStudio.

Чтобы «зашить» bootloader в JTAG можно воспользоваться программатором AVReal, PonyProg, STK200, «пять проводов», любо любым другим имеющимся в наличии и совместимым с AVR ISP. Подключение программатора производится к ISP разъему программирования ХР4. Файл прошивки JTAG_ICE.hex.

Пример программирования фьюзов показан на рисунке 3.

Установка фьюзов для AVR JTAG ICE
Рис 3. Установка фьюзов для AVR JTAG ICE

Пример работы AVR JTAG ICE показан на рисунке 4. В качестве примера произведено считывание сигнатуры ATMega128

Чтение сигнатуры микроконтроллера ATMega128 с помощью AVR JTAG ICE
Рис 4. Чтение сигнатуры микроконтроллера ATMega128 с помощью AVR JTAG ICE

Изображение верхнего слоя трассировки печатной платы, с нанесенными элементами
Рис 5. Изображение верхнего слоя трассировки печатной платы, с нанесенными элементами

Изображение нижнего слоя трассировки печатной платы, с нанесенными элементами
Рис 6. Изображение нижнего слоя трассировки печатной платы, с нанесенными элементами

Фотографии готового устройства:

Фото программатора

Фото программатора

P.S. Схема и трассировка печатной платы разработаны автором статьи, загрузчик использован Кротевич Виталия (ака Vit), прошивка от оригинальной AVRStudio.

При написании статьи использовались следующие источники:
1 http://onembedding.bialix.com/files/jtag_vit/
2. Официальное руководство пользователя AVR JTAG ICE JTAGuserguide.pdf

Скачать прошивку, файлы печатных плат вы можете ниже

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
DD1 ИС буфера, драйвера CD74AC244 1
DD2 ИС RS-232 интерфейса MAX232 1 ST232BD
DD3 МК AVR 8-бит ATmega16 1 ATmega16-16PI
DA1 Линейный регулятор LM78L05 1
VD1, VD2 Выпрямительный диод SM4007PL 2
VD3 Стабилитрон BZX55C5V1 1 SMBJ5.0A
VD4, VD5 Диод Шоттки SM5819PL 2
HL1, HL2 Светодиод КР-3216-2 2
C1, C2, C4-C6, C9-C13, C16 Конденсатор 0.1 мкФ 10
C3 Электролитический конденсатор 1
C7 Электролитический конденсатор 470 мкФ 10 В 1 Танталовый
C8 Конденсатор 1200 пФ 1
C14, C15 Конденсатор 22 пФ 2
R1 Резистор 36 кОм 1
R2 Резистор 150 кОм 1
R3-R6 Резистор 10 кОм 4
R4, R10 Резистор 4.7 кОм 2
R9, R11-R15 Резистор 200 Ом 7
R16 Резистор 510 Ом 1
BQ1 Кварц 7.3728 МГц 1
XS1 Разъём DRB-9F 1 RS-232
XP1 Разъём DJK-02 1 Питание
XP2 Разъём WF-2 1 Питание
XP3 Разъём IDC-10M 1 JTAG
XP4 Разъём PLD-6 1 ISP
Разъём PLS-3 2 Перемычки