8-900-374-94-44
[email protected]
Slide Image
Меню

Avr dragon: Страничка эмбеддера » AVR dragon.

Страничка эмбеддера » AVR dragon.

Семейство микроконтроллеров с архитектурой AVR стало де-факто стандартом для радиолюбительских поделок. Я начинал изучать контроллеры именно с этого семейства, но и сейчас нередко использую их в домашних конструкциях.

Вот уже более года для отладки прошивок я использую AVR dragon.

 

AVR Dragon – самый дешевый отладчик для микроконтроллеров AVR фирмы Atmel, поддерживающий debugWire.

Чем отличается программатор от отладчика?

Программатор – это просто устройство, записывающее программу в контроллер. Дальше программа исполняется сама по себе и если что-то пойдет не так, то узнать что именно — очень сложно. Отладчик позволяет остановить исполнение программы в любой точке и узнать значения всех переменных, регистров и вообще памяти, отладчик позволяет исполнять программу пошагово, посмотреть стек вызовов функций и кучу других полезностей. Вообщем, отладчик – это круто!

 

Интерфесы

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

ISP (In System Programming) – интерфейс внутрисхемного программирования, позволяет программировать контроллер не выпаивая из платы. Через ISP контроллер программируется с небольшой скоростью, но ISP обладает большим достоинством для начинающих – программатор для этого интерфейса состоит из четырех проводков. Во многом благодаря этому интерфейсу, Atmel стал лидером любительских конструкций. Для того, чтобы запрограммировать контроллер, к нему нужно подключить 4 сигнала – MISO, MOSI, SCLK, RESET.

HV prog – высоковольтное программирование. Умеет очень быстро программировать контроллеры, используется при массовом выпуске, в любительской практике практически бесполезен. (может быть использован для восстановления ISP, если вы его случайно отключили по невнимательности). К контроллеру нужно подключить 18 сигналов — PD[7…0], PC[7…0], XTAL, RESET.

JTAG – самый широко используемый отладочный интерфейс. О нем уже очень много написано, поэтому повторяться не буду. Присутствует в контроллерах с большим количеством ножек. Требует подключения пяти сигналов (TCK, TDO, TMS, TDI, RESET).

debugWire – проприетарный отладочный интерфейс Atmel, который позволяет следить за внутренними процессами контроллера по одному проводу (RESET). Так, как в любительской практике обычно используются контроллеры с маленьким количеством ножек, это просто замечательная альтернатива JTAG’у.

К сожалению, Atmel немного испортил всю замечательность идеи тем, что debugWire на новых контроллерах отключен по умолчанию, и включается с помощью ISP интерфейса (тоесть, прийдется сначала подключить к контроллеру целых 4 контакта, включить debugWire, и только после этого можно отключить 3 контакта SPI).

 

 

AVR Dragon позволяет отлаживать контроллеры с памятью до 32кБайт, а программировать умеет вообще все контроллеры AVR (кроме atxmega).

Конечно, за цену AVR dragon можно накупить очень много больших контроллеров ( 33 штуки atmega16, к примеру ) и использовать их с  AVR JTAG ICE clone, так-что покупать дракона или нет – решать вам. Лично я люблю использовать хороший инструмент, поэтому купил.

 

DebugWire

Практически все поделки я собираю на контроллерах: atmega48, atmega88, atmega168 и attiny13. Это очень сбалансированные контроллеры! Все они имеют debugWire интерфейс.

Первая проблема, с которой я столкнулся, купив avrDragon – как-же его подключить к контроллеру? Дело в том, что на самой плате отладчика выведена только колодка. На противоположной стороне нарисована карта расположения выводов, но как они согласуются – далеко не очевидно! Я разок ошибся с подключением,  поэтому выкладываю расположение контактов.

Каждый сигнал нужно подключить к такому-же на контроллере. Сигнал VTG ( Target Voltage ) служит для подстройки логических уровней отладчика к логическим уровням отлаживаемого контроллера и подключается к напряжению его питания.

Вторая проблема – DebugWire не работает, если у контроллера нет тактовой частоты! Я долго искал проблему в драконе и проводах, а оказалось, просто дорожка к кварцу была повреждена.

Третяя проблема – скорость отладки в AVR Studio была значительно выше, чем в IAR. Так как основное мое средство разработки все-же IAR, это меня совсем не радовало. К счастью, в последних версиях IAR’а скорость работы с debugWire значительно увеличилась.

Для подключения дракона к контроллерам, я спаял два проводка. Одни из них припаивается прямо к дорожкам, второй вставляется в разъем на плате. Так как на разъеме дракона нет ключа, я сделал свой – написал TOP. Кстати, провода очень удобно метить такой технологией – пишем маркером на термоусадке название сигнала и термоусаживаем ее – наши надписи теперь стали маленькие, красивенькие и ни за что не слезут с проводков!

Теперь типичная последовательность действий. Запускаем IAR. В опциях проекта меняем отладчик на Dragon (Project->Options->Debugger, устанавливаем Dragon). Подключаем дракона к плате, подаем питание. Теперь выбираем в меню Dragon->Fuse Handler. Устанавливаем те фьюзы, которые нам нравятся, разрешаем debugWire (фьюз DWEN). Отключаем питание, отключаем ISP от контроллера (можно и оставить, если SPI не используется), оставляем только RESET, VTG и GND подключенными. Включаем питание, жмем на кнопку “Download and Debug”. Вуаля:

 

 

Если захочется поменять фюзы, придется опять подключить ISP контакты. В подавляющем большинстве проектов SPI не используется, поэтому можно один раз подключиться и ничего не трогать.

У дракона есть несколько опций (Project->Options->Debugger->Dragon):

Supress download – если поставите галочку, будет спрашивать вас – загружать новую программу в контроллер или оставить старую? Используется для (весьма сомнительной) экономии времени и ресурса флэш-памяти.

Allow download to RAM – иногда в процессе отладки, требуется сохранить данные ОЗУ, а потом загрузить их обратно в контроллер. Эта опция позволяет это сделать. Я никогда ей не пользовался, поэтому ничего толком сказать не могу.

Target consistency check – проверяет правильность записанных данных.

Эти опции используются редко и не очень важны, а вот на второй вкладке есть очень важная опция:

Run timers in stopped mode – таймера контроллера продолжают работать, даже если программа остановлена. К примеру, это очень важно для ШИМов, если их остановить в непредвиденный момент, что-нибуть может выйти из строя.

У меня спрашивали – можно ли программировать контроллер по debugWire, или это только отладочный интерфейс? Ответ – можно. Но опять-же придется сначала включить debugWire с помощью ISP.

 

JTAG

Недавно попробовал использовать JTAG с AVR ами. Впечатления самые положительные. Заливает прошивку значительно быстрее, чем debugWire. Умеет программировать фюзы.

 

Макетное поле

На драконе есть еще макетное поле. Говорят, если впаять туда ZIF-панельку, то будет очень удобно массово программить контроллеры. Лично я этим не занимался, поэтому ничего сказать не могу.

 

Проблема со стабилизатором.

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

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

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

Как на зло, сразу после написания этой статьи стабилизатор моего дракона сгорел. Я произвел переделку, и все заработало (даже лучше, чем до этого – меньше разрывов связи). Переделка очень простая. Нужно выпаять микросхему стабилизатора и пробросить проводок от USB разъема до танталового конденсатора. Микросхема-стабилизатор имеет термалпад, и поэтому отпаивается довольно сложно.

Возникает вопрос – зачем Atmel поставил на плату стабилизатор, если его можно без проблем заменить просто проводком? Сам Atmel на этот вопрос отвечает так —

Большинство компонентов на плате имеют диапазон напряжений питания 4. 5-5.5 вольт. Однако, стандарт USB говорит о том, что напряжение на шине USB в худшем случае может опускаться до 4.15 вольт ( если используется USB хаб с питанием от компьютера ). Для того, чтобы поднять напряжение с 4.15 до 5 используется стабилизатор.

Таким образом, если вы подключаете дракона напрямую к компьютеру или к хабу с внешним питанием, то после переделки дракон будет продолжать работать как ни в чем не бывало.

MiGeRA’s Home Page | AVR Dragon

История покупки сего программатора началась еще пару лет назад (году так в 2012-ом) … даже тогда я уже активно занимался ардуинками, был куплен USBasp и написана статься о нем. Причиной же покупки Дракона явилось то, что внезапно, а именно при конструировании и прошивке Littlу-Wire,  я вдруг обнаружил, что программатора AVR c HV-режимом (режим «высоковольтного» программирования) у меня то и нет! ;-(( В то время как обычных (ISP) включая только-что собранный Little-Wire — стало на один больше . .. вот.

Короче, обновить прошивку в Литле (в контроллере tiny85) — несудьба! Т.к. нога сброса, сконфигурированная как порт ввода-вывода, не позволяет обратиться к контроллеру по ISP. Обыдно … Ищу что делать … Нахожу несколько предлагаемых к сборке «конструкций» (в частности на tiny2313) — программаторами их не назовешь, они лишь «очищают» контроллер, т.е. приводят его к некоему «первоначальному» состоянию (сбрасывая в том числе и ногу ресет, запрограммированную на ввод-вывод к функции «ресет», после чего становится доступным ISP). Но это надо опять подбирать детали, собирать — да и решение имхо не самое удачное (в смысле удобное и правильное). Ищу что предлагает ебэй … Да, есть подобные устройства («чистильщики») уже в сборе — причем баксов так за 25. Дорого, а за что? — мысль опять: «может лучше собрать?» Далее думаю, странно это все как-то, а как оно в оригинале разработчиком предусмотрено? Стал читать доки — «проникся» режимом «высоковольтного» HV-программирования. И решил, что уж лучше заплатить больше денежек и купить функциональный программатор, чем тратить бабло на поебушку за 25 баксов . ..

Этим «функциональным» программатором и стал Дракон. Почему? — по критерию цена/функционал. Нужен был HV-режим и за разумные деньги. Дракон обошелся где-то в 50евро с ебэя из UK.

Да, перед покупкой я прочитал кучу материалов о Драконе и о том как народ трахается с ним, допиливает его, танцует с бубном … Но все равно решил взять, альтернатив то собственно и не было. Ждал долго, но вот приезжает Дракон … Распаковываю посылку и вижу (такой вот каламбур): «Дракона в раздраконеной коробочке!» Достаю плату — вроде новая, не паянная. Но зачем было рвать фирмовую коробочку сбоку (чтоб достать программатор?) когда она не заклеена и легко открывается штатным образом?! Что и зачем «химичил» продавец? Далее еще обнаруживаю и то, что коробочка «не родная»: серийные номера на наклейках на плате и на коробочке не совпадают! Ревизии тоже разные: на коробочке — A09-0061/11; на плате — A09-0062/10, а вместе с тем краской на плате указано A08-0396.D … Чему верить? Утешало лишь одно — что передо мной не та злополучная ревизия (A. 0601.3.1000.C) — которую даже официально разрешили колхозно фиксить.

Распаиваю разъемы — коннекчусь …

… если честно, то сейчас, уже два года спустя, и не вспомню — что там и как в деталях, но не срасталось. Помню лишь что ни один контроллер ни в HV, ни в ISP режимах прошить не удалось, перечитал разных форумов и доков, перепробовал разные версии «студий» и прошивок Дракона на разных операционках и компах … И один хрен: программатор вроде как откликается и работает (как устройство), но только до момента обращения к целевому контроллеру — тут же разные ерроры и ничего результативного … Забросил я Дракона подальше в закрома, предварительно аккуратно подклеив его раздраконеный «домик» скотчем.

И вот отпуск 14 года. Вернувшись творческой мыслью не только к сайту, но и к ардуинам — пишу эту статью — так как руки дошли и до Дракона. Думаю, не дам ему спокойно спать! Не исправен? — будем ремонтировать!!! Но сначала надо потестить что неисправно, а также почитать как это (возможно) ремонтировали уже другие. Коннекчу Дракона к ардуине по ISP — чтозафак?! — контроллер не распознается напряжение питания, ноль с чем-то вольта. Почему? Вскользь просматривая соседние вкладки в браузере, вижу намек, типа прошиваемый контроллер нужно питать отдельно (а не Драконом). Втыкаю USB-шнур в ардуину — и «о чудо!» — понеслась! Конечно сейчас не вспомню как я мумукался пару лет назад — но ввиду того что программаторы как USBasp так и Little-Wire сами питали целевую плату (целевой контроллер), то то, что Дракон (более продвинутый девайс) этого не делает — по меньшей мере странно (лично мне). А дальше, а дальше все хорошо … (или отоспался Дракоша?) — исходя из собранной у меня на харде тогда еще документации (которую я наверняка изучал) успешно оттестировал и HV-режим и прошивку в режиме ISP других разных контроллеров.

Напоследок несколько заметок из серии «для себя» (чтобы еще, если что через пару лет, не смотреть на Дракона как на новые ворота):

1. Распиновка «рабочих» коннекторов на жопе у Дракона указана «через жопу»! А именно: читать ее нужно глядя на Дракона сверху и развернув на 180 градусов! Разработчик видимо предполагал, что у пользователя будет два Дракона! Причем один (наверное сгоревший) будет лежать под рукой вверх тормашками и служить легендой по распиновке ;-))

2. «Поле для прототипирования» (вот словцо-то, чуть пальцы в узел не завязались) — никуда не подключено! Распаивать его смысла нет! По факту же 40 (или 28) контактов под кровати — тупо дублируются на 40 контактов вряд, и все! Ничего больше никуда не подключено, совсем! Видимо разработчик счел удобным (или решил поиздеваться?) … в общем перспектива городить огород из обжатых шлейфиков (приобретаемых отдельно), причем в узко ограниченном пространстве и каждый раз переделывать конфигурацию под очередной контроллер … мрак короче.

Ну и вдогонку:

1. ИМХО несколько странно, что хоть Дракон и является инструментом разработчика, но не имеет при этом никакого корпуса — и даже не то чтобы вид кустарный, да просто и в целом неудобно, и небезопасно (для Дракона с учетом его «чувствительности» к «помехам») … Доступных и изящных решений практически нет, за исключением пожалуй этого (владельцы 3D-принтеров могут «напечатать»).

2. Если все же впаять кровать в поле для прототипирования — наиболее изящным будет решение раздобыть (предварительно) «коммутационные адаптеры» подобные этим.

3. На самом деле есть возможность запитать Драконом внешнее устройство. Для этого нужно использовать пины из коннектора EXT POWER и коннектиться к ним отдельным проводом до целевого устройства. Или же, если разъем ISP разборный (составной) — линию VCC коннектить не к коннектору VCC на ISP — а к VCC на EXT POWER.

4. Ну а кто по финансам или иным понятиям «не тянет» на владение Драконом — могут рассмотреть к самостоятельной сборке конструкцию, совместимую с JTAG ICE (для себя ее сборку не вижу целесообразной, ибо есть Дракон).

Вроде все пока …

MiGeRA (июль 2014)

AVR Dragon and Boards — Kanda

Popular Products

STK200 Dragon

Полный обучающий комплект для микроконтроллеров AVR с Dragon ICE и программатором

AVR-DRAGON

Запускается из Studio и включает все кабели для ISP, DebugWire и JTAG

Учебный комплект ATmega128

64-контактная плата STK300 с DRAGON ICE, а также обучение, пример кода и книги


Kanda AVR Dragon — это подлинный Atmel инструмент, а не клон, но мы включили все кабели ISP, DebugWire, питания, USB и JTAG необходимо упростить настройку и использование, в отличие от стандартной версии. Мы также включили адаптеры для подключения JTAG к платам STK200 и STK500 и подробные инструкции.

  • Работает от Studio 4 до 7
  • Поддерживает ISP, JTAG и DebugWire (для отладки небольших устройств)
  • Провода питания, кабель JTAG, 10- и 6-контактные соединения ISP и DebugWire
  • JTAG-адаптеры
  • Инструкции

Dragon — полноценный эмулятор, не уступающий более дорогим ICE. Единственный отличие в том, что он не обшит. Atmel продает его без зацепок и с плохими инструкциями, что затрудняет подключение его к вашим целевым доскам. Мы исправили оба этих недостатка. Он также может питать вашу доску так что вам не нужен блок питания.

Полные учебные комплекты

Kanda также поставляет STK200 Dragon Kit и комплект STK300 Dragon которые идеально подходят для обучения программированию микроконтроллера AVR. Комплекты включают

  • Эмулятор Dragon для программирования и отладки вашего кода
  • Плата STK200-X для 8, 20, 28 или 40-контактных микросхем или STK300 для 64-контактных устройств
  • Компилятор Studio4 и WinAVR C или бесплатная загрузка Atmel Studio 7 для разработки кода
  • Книга на компакт-диске, которая охватывает все основы, прежде чем перейти к более сложным темам
  • Пример кода на языке C и ассемблере
  • Учебники по программному и аппаратному обеспечению
  • Спецификации микроконтроллеров
  • Полная схема платы

Комплекты STK200-X и STK300 дают вам полное представление о микроконтроллер и как его запрограммировать, чтобы он делал то, что вы хотите. Это позволяет разрабатывать собственные схемы, не полагаясь на дорогостоящие модули, такие как Базовые шилды Stamp или Arduino.

Платы STK200-X и STK300

Разработка намного проще, если у вас есть известное аппаратное обеспечение и пример кода, поэтому наши комплекты включает плату STK200-X или плату STK300 с разъемами и периферийные устройства, такие как светодиоды, переключатели, АЦП, ЭСППЗУ, интерфейсы ЖК-дисплея и клавиатуры, а также последовательный порт. Две платы:

Плата STK200-X

Плата для 8-, 20-, 28- и 40-контактных микроконтроллеров

Плата STK300

Плата для 64-контактных микроконтроллеров

Если вы не имеете в виду конкретный проект, требующий большого количества контактов, STK200-X правильный выбор для большинства людей. Он имеет 40-контактный ATmega16, с 16 КБ памяти идеально подходит для большинства простых проектов, и ее можно заменить другими 40-контактными микроконтроллерами, до 128 КБ ATmega1284, поэтому у вас не будет нехватки памяти.

Эти комплекты производятся в Великобритании компанией Kanda, но мы поставляем их по всему миру.

AVR Dragon — это оригинальный продукт Atmel с нашими улучшениями


АВР Дракон | Адаптер MICROCHIP JTAG для чипов ATMEL

  • Поиск

Производители Новые поступления и предложения Статьи Контакт О нас Карьера

Заказ на импорт Запрос цены

Изображение только для иллюстрации, пожалуйста, смотрите технические характеристики в деталях продукта.

Адаптер JTAG для чипов ATMEL AVR

905107
Номер заказа: 60646
8
8
8 Категория: Средства разработки Сведения о продукте: Недоступно Производитель (марка): MICROCHIP Альтернативные компоненты: Показать

Альтернативный компонент ATMEL-ICE-PCBA в наличии 1 шт.

Больше не поставляется

Альтернативные компоненты: ATMEL-ICE-PCBA

MICROCHIP

+2

Спецификация в деталях продукта.

Артикул: 60646

06 Категория: Средства разработки Информация о продукте: Недоступно Производитель (бренд): MICROCHIP Альтернативные компоненты: Показать

Больше не доступно

Альтернативные компоненты: ATMEL-ICE-PCBA


В вашей корзине уже 0 шт.

В вашем запросе ценового предложения уже 0 шт.

Вы уже заказали: 0 шт. 3 МИКРОЧИП

Тип Адаптер Для AVR n/a Примечание Серия н/д RoHS Да 907714 929106 90900 4

Спецификация: