Сказка про Жытаг

20072009138 Одна из главных проблем юного укротителя схем – как с этими схемами общаться. Эмулятор стоит денег (и не копеечных), самодельные программаторы требуют определенной степени фанатизьму.

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

Но не будем о грустном.

Сегодня мы поговорим про внутрисхемный эмулятор JTAGICE2 (mkII), пришедший на замену большинству эмуляторов и программаторов Atmel. В своей микроэлектронной жизни этап «пять проводков в параллельный порт» мы никогда не проходили, зато накопили большой опыт по использованию (и ломанию, в том числе) этих эмуляторов как с семейством AVR, так и с AVR32.

Т.к. большинство наших опытов и проектов творится под протекцией Мегакорпорации, финансовых проблем при покупке у нас не было. Но, тем не менее, небольшой мониторинг рынка при покупке проводился всегда. И показывал он – страшное… Например, в магазине комплектухи «Чип и Дип» наш сегодняшний герой стоит 20-25 тысяч. А у официального (!) представителя Атмели («Эфо») устрашающее «по запросу» превратилось в что-то около 9 тысяч. Но и это, кстати, не предел – хитрожопые страдальцы из КБ 14 где-то нашли один эмулятор еще дешевле… А незадолго до того, как нам понадобилось оборудование, Атмель проводила акцию, в которой за 150 долларов предлагался комплект из JTAGICE2 и отладочной платы STK500. Но, прощелкали…

В принципе, не очень-то и хотелось. Помнится, на заре юности Мегакорпорации (с) мы приобрели в подвальном магазинчике нечто китайское, впоследствии оказавшееся отладочной платой AVRDragon. К сожалению, фоток того, как оно выглядело в упаковке, не сохранилось, но это было феерично. Раскрашенная народными китайскими узорами коробочка, хранившая в себе плату, больше была похожа на праздничный бумажный фонарик. Черная плата внутри – на сувенир. Так оно, в общем-то, и оказалось – работать с комплектным драйвером азиатская штучка никак не захотела. Запустилось оно только много позже, когда кто-то случайно подключил платку к компу, где стояла АВРСтудия и драйвер к JTAGICE2… Хотя в теории, конечно, штука должна была быть интересной и полезной, даже несмотря на ограниченное количество поддерживаемых контроллеров.

Китайское дитя для отладки высоких технологий 20072009126

Китайские высокие технологии...

Как видно на картинке, плате не нужна ни инструкция, ни документация — вся необходимая информация нарисована прямо поверх площадок белой гуашью. Видимо, школа каллиграфии тоже входит в цикл высокотехнологичного производства )

Но даже провалявшись в столе нашего г.к. больше года и пережив переезд, оно продолжает работать

Даже провалявшись в столе нашего г.к. больше года и пережив переезд, оно продолжает работать. Энерджайзер ниачом!

После такого шока, конечно, было решено приобретать только нормальные вещи, с тех пор и началось наше общение с AVR JTAGICE2.

Эмулятор приехал к нам в большой коробке и через пару дней героически погиб. На плату, к которой он был подключен, вместо штатных 5В врубили 27. С красивой вспышкой тогда померло два контроллера – один на платке, другой внутри эмулятора. Впрочем, в хозяйстве все пригодится – погорельца не выкинули, а храним на всякий случай, вдруг понадобятся запчасти.

Трупик...

Тельце погибшего...

Кстати, коробки у эмуляторов сильно разные – бывают обычные, а бывают красивые, как будто в них риальне конструктор «собери терминатора дома». Зависит от того, где покупать.

Коробки бывают для простого быдла, а бывают для ч0тких пацанчиков, любивших в детстве Лего 20072009154

Коробки бывают для простого быдла, а бывают для ч0тких пацанчиков, любивших в детстве Лего

Содержимое коробки, естественно, во всех случаях одинаковое — сам эмулятор, диск с драйверами и всякий стафф: usb-провод, шнурок питания, переходник на SPI, переходник на debugWire, колодка для подключения к отладочным платам. Ну и всякие бумажки, которые вкладывают уже наши продавцы.
20072009152 20072009151 20072009155

Шнурок питания — это типа копчика. Он требуется, когда эмулятор подключают к компу по последовательному интерфейсу. При обычном способе подключения, т.е. через usb, никакого дополнительного питания не надо. Кстати, последовательный кабель даже в комплекте не идет… Или идет, но был кем-то стремительно подбрит?..

20072009136Шлейф-хоботок, на конце которого болтается соединительная колодочка – самое слабое место Житага. У одного из наших эмуляторов колодка просто слетела со шлейфа. Чинится это, конечно, легко, но все же стоит быть аккуратным и присоединять/отсоединять колодку нежно. Да и сам шлейф довольно хрупкий – если эмулятор лежит на столе, то ничего, а если ездит в сумке по командировкам – легко перегнуть…

20072009132Ну, распаковали, повертели, повосхищались — переходим к работе…

Собственно, из трех интерфейсов, по которым позволяет отладку mkII (SPI, JTAG, DebugWire), нас всегда интересовал один — JTAG. С чахоточными контроллерами младших семейств работать не доводилось, а у плат на основе Мег как-то так повелось, что всегда хватало ножек и под JTAG. Это стоит учитывать при дальнейшем чтении.

В комплекте с эмулятором идет диск, откуда ставится стартовый набор – AVRStudio и в комплекте со студией драйвер для девайса. Драйвер, кстати, имеет подозрительное название – Jungo… Точно так же в Питере называется один китайский ресторанчик…

После установки можно подоткнуть эмулятор в usb и, если есть какой-нибудь целевой девайс, попытаться к нему приконнектиться.
Делается это, если все хорошо, за два щелчка в AVRStudio, после чего mkII продемонстрирует часть своего богатого функционала.
20072009157 screen01

screen3screen4

Как видно на скриншотах, комплект из АВРСтудии и JTAGICE позволяет:

  • Читать, писать и верифицировать флэш- и еепром-память контроллера;
  • Выставлять фьюз и лок биты;
  • Считывать сигнатуру и вольтаж;
  • Полностью стирать контроллер;
  • Смотреть калибровочный байт осциллятора.

Причем, все это можно делать в пакетном автоматическом режиме – просто выставив соответствующие галки на закладке Auto.

Наигравшись с настройками контроллера, можно переходить к самому главному – программированию и отладке. На этом АВРСтудия закрывается.

Говорят, mkII позволяет ставить неограниченное количество точек останова. Не знаю, при работе с АВР-ками этого выяснить не удалось. Т.к. разработка у нас идет на С, при работе с 8-битным семейством мы пользуемся IAR Embedded Workbench, а там больше трех точек останова выставить не получается. Единственный раз, когда пользовались Студией – это когда надо было калибровочную прошивку на асме скомпилировать, но тогда брекпоинты не понадобились.

Про отладку в ИАРе сказать в принципе и нечего. Все точно так же, как при дебаге любого «большого» удаленного устройства – остановил программу, посмотрел что надо, погнал дальше. Можно ставить брекпоинты на текст программы, на обращение к памяти, смотреть в переменные, в память, в стек.
screen5

Но с помощью эмулятора легко доступна одна очень важная вещь – все регистры контроллера. Смотреть и менять их можно как в ИАРе, так и в Студии. Крайне полезная функция.
screen6

Легким движением руки перетыкаем mkII в другое устройство – на основе чипа 32-битного семейства и запускаем AVR32Studio.
Основная среда разработки предстает перед нами приятным эклипсовским видом и всеми теми же возможностями, что и восьмибитные аналоги.
screen03 screen04

В этой студии (проверено) можно ставить неограниченное количество брекпоинтов, так же заглядывать в регистры, память, ну и пользоваться всем остальным функционалом, обычным для Eclipse IDE.
screen05 screen06

Единственное, что при одновременном использовании JTAGICE2 с АВР и АВР32 приходится постоянно перешивать эмулятор – старенькая AVRStudio 4 не желает коннектить его к мегам без даунгрейда, а AVR32Studio, соответственно, все-время предлагает апгрейды.

Напоследок хинт: инструкции, безусловно, пишут для трусов, но снимать питание при перетыкании эмулятора все-таки стоит. Зачастую, при горячем переключении девайс клинит, и он отказывается нормально работать, пока его не перепрошьешь: жечь контроллеры может, а вот дебажить — отказывается.

Похожий бред:

Сказка про Жытаг: 1 комментарий

  1. Уведомление: Процессорный модуль DIO16V1.0 на КБ 13

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Protected by WP Anti Spam