Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Страничка эмбеддера » 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 используется стабилизатор.

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

AVR Dragon ATAVRDRAGON программатор отладчик от ATMEL купити в Києві та Україні

Каталог

  • Новинки магазину
  • Подарункові сертифікати, сувеніри
  • Arduino контролери
    • Контролери Arduino (original)
    • Контролери Arduino (Китай)
    • Arduino для розробників
    • Плати розширень Arduino
      • Силові
      • Комунікаційні
      • Прототипування
      • Відображення інформації
      • Переферійні
      • Audio, звук, голос, mp3
      • Інші

Головна  »  Архівні товари

код: ZKE123

Архивный товар, который больше не продается в нашем магазине.

голосовать

Данный программатор снят с производства. Замена – Atmel-ICE. Оригинальный программатор от ATMEL. Обеспечивая полную внутрисхемную отладку и программирование более чем 30 различных моделей AVR флеш-микроконтроллеров, программатор-отладчик AVR Dragon является самым универсальным отладочным инструментом с малой стоимостью.

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

AVR Dragon поддерживает следующие интерфейсы программирования:

  • SPI, JTAG, PDI*, высоковольное программирование, паралельное программирование, aWire

Так же поддерживаются следующие интерфейсы отладки:

  • debugWIRE, JTAG, PDI*, aWire

Исправлен баг с выходом из строя из-за статического электричества, свежая версия. При подключении к Atmel Studio проверяется прошивка программатора и если есть более свежая версия – происходит обновление прошивки AVR Dragon.

Параметры:

  • Тип: Внутрисхемный
  • Интерфейс подключения: USB
  • Целевое подключение: JTAG
  • Исполнение: плата
  • Поддерживаемые устройства: МК Atmel AVR
  • Производитель базового компонента: Atmel
  • Ядро: AVR
  • Разрядность: 8 бит
  • Периферия платы: USB , JTAG/BDM, ISP, EEPROM, SDRAM
  • Интерфейс: USB
  • Подключение: JTAG / ICSP-6 / socket
  • Протокол программирования: ISP, HVSP, PP, JTAG
  • Протокол отладки: JTAG, debugWire
  • ПО поддерживающее работу: AVR Studio, WinAVR, avrdude
  • Поддерживаемые устройства: МК Atmel AVR 8/32-bit
  • Напряжение питания: 5. 0 В
  • Целевое напряжение: 1.8…5

Список поддерживаемых микроконтроллеров:

AT90PWM2, AT90PWM3, ATmega128, ATmega1280, ATmega1281, ATmega16, ATmega162, ATmega165, ATmega165P, ATmega168, ATmega169, ATmega169P, ATmega2560, ATmega2561, ATmega32, ATmega325, ATmega3250, ATmega329, ATmega3290, ATmega48, ATmega64, ATmega640, ATmega644, ATmega645, ATmega6450, ATmega649, ATmega6490, ATmega8, ATmega8515, ATmega8535, ATmega88, ATtiny12, ATtiny13, ATtiny15L, ATtiny2313, ATtiny24, ATtiny25, ATtiny25 Automotive, ATtiny26, ATtiny44, ATtiny45, ATtiny45 Automotive, ATtiny84, ATtiny85, ATtiny85 Automotive

Ссылки:

  • Документация
  • про AVR Dragon…

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 с нашими улучшениями


Исправление плохих настроек предохранителя « Маленький золотой скипетр

Этот пост не об обычном виде дракона (если он вообще существует). AVR Dragon — это штуковина, сделанная Atmel, полезная для программирования их линейки микроконтроллеров AVR. Это относительно дешево (около 50 долларов США на момент написания этой статьи) и делает много полезных вещей. Конкретное приложение, о котором я собираюсь рассказать здесь, использует его для «исправления» частей, когда вы установили фьюзы таким образом, что указанные части не будут общаться с более простыми программистами. Подробности после прыжка.

Зачем нужен дракон?

Есть много программистов AVR. Если вы только начинаете, есть более дешевые варианты, которые хорошо работают (например, USBtinyISP от Lady Ada). Если вы не любите пайку, один из вариантов Arduino (со встроенным оборудованием для программирования) может оказаться более полезным.

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

  • высоковольтное последовательное программирование, поэтому вы можете программировать микросхемы AVR с малым числом выводов
  • поддержка debugWIRE и JTAG для внутрисхемной отладки
  • Поддержка эмуляции
  • для устройств с флэш-памятью 32 КБ или менее
  • параллельное программирование, так что вы можете «разблокировать» чипы с неправильно установленными фьюз-битами

Поддерживает тот же шестипроводной провайдер, что и большинство дешевых вариантов. Утилита avrdude также поддерживает большинство режимов Dragon.

Начальная сборка

Дракон не готов к использованию. Они дают вам гибкую область прототипирования и место, где вы можете припаять разъемы. Есть много подходов, которые работают. Мой выбор, с которым у меня были хорошие результаты, состоит в том, чтобы добавить контактные разъемы в область разъема HV Prog и соседний 40-контактный разъем «EXPAND», а затем добавить 40-контактный разъем ZIF в область прототипирования. Это позволяет мне использовать Dragon для любой поддерживаемой комбинации цели и режима программирования, просто добавляя перемычки в нужном месте.

На изображении справа (с веб-сайта Atmel) показан конечный результат:

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

Перемычки: ленивый метод

Набор перемычек для параллельного программирования ATmega328P

Большинство подходов к разводке перемычек на Dragon, которые я видел, включают ленточные кабели с обжимными разъемами на одном конце и набор отдельных одноконтактных разъемов. розетки с другой. Это работает, но требует изготовления нескольких таких кабелей. В моем местном магазине электроники я заметил перемычки SchmartBOARD. Это хорошие многожильные 3-дюймовые провода со штыревыми разъемами на каждом конце, снабженные термоусадочной трубкой для изоляции и снятия натяжения. Качество сборки кажется хорошим, и по цене около 5 долларов США за упаковку из 10 штырей (с полосой из 20 штыревых разъемов, я уверен, вы найдете ей применение) они достаточно дешевы.

Если вы занимаетесь параллельным программированием, вам понадобится два пакета. 3-дюймовая версия отлично работала для всех конфигураций, которые я использовал до сих пор, хотя вам может понадобиться несколько более длинных перемычек, если вы программируете 40-контактные микроконтроллеры.

Режимы программирования

Существует несколько различных способов взаимодействия Dragon с вашим микроконтроллером. Одной из самых простых и привычных является шестипроводная шина ISP (внутрисистемное программирование). Это популярный метод, так как он требует относительно небольшого количества выводов и позволяет программировать микроконтроллер, не удаляя его из схемы.

Однако вы не всегда можете использовать провайдера. Одна из причин заключается в том, что некоторые компоненты с малым количеством выводов, такие как ATtiny11, не поддерживают его. Другое дело, что ISP работает только с определенными комбинациями настроек фьюз-битов. Поскольку с помощью ISP вы можете установить для фьюз-битов произвольные значения (даже значения, которые не имеют смысла), вы можете «заблокировать» микроконтроллер, применяя настройки фьюзов, которые не работают и которые вы не можете изменить с помощью ISP. Вот несколько конкретных примеров:

  • ISP зависит от вывода сброса, который действует как сброс, а не как ввод-вывод общего назначения. Если вы включите (установите на ноль) бит RSTDISBL, ISP не будет работать.
  • Отключение (установка на единицу) бита разрешения последовательного программирования (SPIEN) остановит работу ISP.
  • Установка тактовых битов на что-то, что препятствует надежному тактированию микроконтроллера (например, указание использовать внешний кристалл, когда его нет), приведет к тому, что ISP не будет работать.

В некоторых случаях есть обходные пути. Например, если вы включили RSTDISBL, вы все равно можете сбросить чип, подав +12 В на контакт сброса. Если вы сделали что-то глупое с часами, иногда вы можете обойти это, подав соответствующую прямоугольную волну (возможно, сгенерированную другим микроконтроллером AVR) на вход часов и/или поэкспериментировав с настройками времени на вашем программаторе.

Перемычки PP для ATmega48(P)/88(P)/168(P)/328P

Однако единственным полностью универсальным решением является использование либо HVSP (высоковольтное последовательное программирование), либо PP (параллельное программирование), в зависимости от конкретного микроконтроллера, который вы пытаетесь исправить.

Для популярных компонентов ATmega168 и ATmega328P вам нужно параллельное программирование. Начните с просмотра онлайн-справки AVR Dragon, особенно списка поддерживаемых устройств. Найдите свое устройство и нужный режим программирования (один из HVSP или PP). Посмотрите на лист подключения (ссылка из списка поддерживаемых устройств) и установите перемычки соответственно.

На изображении справа (с веб-сайта справки Atmel) показаны правильные установки перемычек для параллельного программирования на компонентах ATmegaXX8(P) (где XX — это 4, 8, 16 или 32).

Фиксация предохранителей

После того, как вы установили перемычки и нацелили микроконтроллер на разъем ZIF, починить предохранители довольно просто. Просто используйте утилиту командной строки «avrdude» с параметрами «-c dragon_pp -P usb» и запрограммируйте как обычно. (Другое программное обеспечение также может работать. Dragon поддерживается программным обеспечением Atmel AVR Studio, хотя я сам им не пользовался.)

Для помощи в поиске правильных номиналов предохранителей весьма полезен калькулятор предохранителей Engbedded. Он даже дает вам правильные аргументы командной строки avrdude для вырезания и вставки. Обратите внимание, однако, что неиспользуемые/несуществующие биты (например, биты 3..7 расширенного байта на ATmega328P) считываются обратно как все единицы на Dragon, в то время как другие программисты считывают их обратно как все нули.

Это означает (снова используя в качестве примера расширенные биты ATmega328P), если вы хотите установить уровень BOD на 4,3 В (BODLEVEL = 100), вы получите ошибку проверки, если попытаетесь использовать ‘-U efuse:w :0x03:м’.

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

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