При разработке и отладке программ под микроконтроллеры, возникают вопросы, связанные с программированием и отладкой программы в реальной схеме. Если с программированием микроконтроллеров AVR особых проблем не возникает, поскольку существует множество схем для «заливки» прошивки в кристалл, одной из простейших таких схем является схема получившая название «пять проводов», то с отладкой программы такого богатого выбора не существует.
Для отладки программы возможно использования лишь 2-х вариантов – это программный симулятор и внутрисхемный JTAG эмулятор-программатор. Программный симулятор, как правило, не может учитывать всех особенностей работы схемы, таких как внешние воздействия, совместная работа с другими устройствами и прочее. С аппаратными программаторами-отладчиками JTAG появляется возможность пошаговой отладки программы напрямую в самом микроконтроллере установленном непосредственно в схему, просмотра и изменения всех регистров микроконтроллера, установка breakpoints и конечно же внутрисхемного программирования микроконтроллера. Но стоимость оригинального AVR JTAG ICE MkII выпускаемого Atmel колеблется в районе 300 евро, а его аналога AVRDRAGON выпускаемого серийно около 3000руб., что является очень дорогим для людей, занимающихся созданием устройств на микроконтроллерах AVR «для себя».
Но к счастью удалось создать клон, оригинального AVR JTAG ICE, который стоит существенно дешевле оригинала и позволяет проводить программирование и отладку микроконтроллеров AVR с интерфейсом JTAG.
Рис 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.
Рис 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.
Рис 3. Установка фьюзов для AVR JTAG ICE
Пример работы AVR JTAG ICE показан на рисунке 4. В качестве примера произведено считывание сигнатуры ATMega128
Рис 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
ИС буфера, драйвераCD74AC2441
DD2
ИС RS-232 интерфейсаMAX2321
ST232BDDD3
МК AVR 8-битATmega161
ATmega16-16PIDA1
Линейный регуляторLM78L051
VD1, VD2
Выпрямительный диодSM4007PL2
VD3
СтабилитронBZX55C5V11
SMBJ5.0AVD4, VD5
Диод ШотткиSM5819PL2
HL1, HL2
СветодиодКР-3216-22
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-9F1
RS-232XP1
РазъёмDJK-021
ПитаниеXP2
РазъёмWF-21
ПитаниеXP3
РазъёмIDC-10M1
JTAGXP4
РазъёмPLD-61
ISP
РазъёмPLS-32
ПеремычкиДобавить все
Скачать список элементов (PDF)
Прикрепленные файлы:
- AVR JTAG ICE.rar (723 Кб)