Схема подключения jtag ice atmega8. Внутрисхемный эмулятор

DV164045 - высокоскоростной и экономически эффективный инструмент для внутрисхемного программирования и отладки микроконтроллеров PIC и цифровых сигнальных контроллеров dsPIC от компании Microchip. Высокая скорость работы обеспечивается за счет применения в изделии 300 МГц 32-битного MCU с 2 МБ RAM и высокоскоростной ПЛИС FPGA, которая обеспечивает более скоростные коммуникации, загрузки и отладку по сравнению с предыдущими версиями устройства. Процесс отладки и программирования осуществляется с применением мощного, но простого в использовании графического интерфейса интегрированной среды разработки IDE MPLAB X. MPLAB ICD4 подключается к вашему ПК через USB 2.0 HS интерфейс и к отладочному разъему целевой платы, который также совместим с внутрисхемными эмуляторами MPLAB ICD3 и MPLAB REAL ICE™. Кроме того, MPLAB ICD4 может работать с интерфейсом JTAG.

В настоящее время программатор/ отладчик MPLAB 4 поддерживает многие, но не все PIC и dsPIC. Прошивка постоянно обновляется для расширения списка поддерживаемых микроконтроллеров. Адрес для запроса поддержки приоритетных чипов или для сообщения о возникших проблемах: [email protected] .

Если у вас инсталлирована IDE MPLAB X, вы сможете найти список поддерживаемых микросхем в папке «docs» инсталляционной директории. Имя файла “Device Support.htm”. Кроме того, список можно скачать по ссылке http://www.microchip.com/mplabx-ide-release-notes .

Рис. Внутрисхемный программатор/ отладчик DV164045

Отличительные особенности:

  • Полноскоростная эмуляция в режиме реального времени:
    • Изделие разработано для поддержки высокоскоростных процессоров, работающих на максимальных скоростях
    • Отладка приложений на вашей плате в режиме реального времени
  • Надежный интерфейс:
    • Добавлена защита цепей драйверов отладчика, чтобы обезопасить их от скачков питания на целевой плате
    • Мониторинг VDD и VPP с целью защиты от перенапряжения. Все линии защищены от перегрузки по току
    • Безопасное питание до 1 A с дополнительным источником питания
  • Microchip Standard Connectivity Plus JTAG:
    • Поставляется со стандартным отладочным разъемом Microchip. Имеется возможность использования JTAG
  • Совместимость:
    • Поддерживает все MPLAB ICD 3 разъемы
  • Портативное устройство с питанием от USB; соответствие RoHS:
    • Плата размещена в прочном черном корпусе с матовой алюминиевой крышкой и линейкой светодиодов для индикации статуса отладки
    • Питание от USB порта, не требуется внешний источник питания
    • CE- и RoHS-соответствие
  • Широкий диапазон напряжений эмуляции:
    • Поддерживает целевые напряжения от 20 В до 5.5 В
  • Высокоскоростное программирование:
    • Быстрая перезагрузка прошивки для быстрой отладки/внутрисхемного перепрограммирования
    • Включает программируемую настройку скорости отладки для оптимизации программирования
  • Тестовый интерфейсный модуль:
    • Включает модуль обратной связи для тестирования отладочного порта и кабеля
  • Простота обслуживания и обновления функций:
    • Добавьте поддержку новых микросхем и функций, инсталлируя позднейшую версию MPLAB X IDE, которая доступна для бесплатной загрузки на www.microchip.com/mplabx
    • Обновление прошивки через MPLAB X IDE
  • Экономическая эффективность:
    • Особенности и эксплуатационные характеристики на уровне стоимости сопоставимых эмуляционных систем
  • Мощная отладка:
    • Мощная отладка с MPLAB X IDE
    • Поддержка нескольких точек останова, секундомера и отладки исходного кода
    • Опция выбора подтяжки для целевого интерфейса в редакторе MPLAB X IDE для быстрой программной модификации/ отладки
  • Требования к системе:
    • MPLAB X IDE ver. 4.00 или выше
    • Доступный USB порт
    • Microsoft Windows ® 7 или выше, Mac OSX ® и Linux ®
  • Официальный программатор, выпускаемый фирмой Atmel стоит примерно 300 евро (без доставки и растаможивания). Вариант подешевле — можно найти неофициальные «клоны» по цене примерно $150 .
  • Вариант еще дешевле, но требующий усилий, т.к. из разряда «сделай сам»:
    в сети через поисковик (clone AVR-JTAGICE mkII ) без проблем можно найти схему с прошивкой программатора сопровождаемые инструкцией по сборке.

Характеристики программатора

  • Полная поддержка JTAG программирования, поддерживает также интерфейсы ISP и DebugWire.
  • Подключение к PC осуществляется с помощью USB 1.1 или RS-232 интерфейса
  • Точки останова по адресам памяти программ и памяти данных
  • Все операции и точки останова выполняются в режиме реального времени
  • Напряжение подаваемое в отлаживаемую схему 1.8-5.5 В
  • Напряжение внешнего источника питания 9-12В, так же отладчик может питаться от USB порта

Программатор AVR-JTAGICE3

Официальный программатор для микроконтроллеров фирмы Atmel семейства AVR, поддерживающих интерфейс для отладки и программирования JTAG.

Думаю для отладки AVR микроконтроллеров в среде AVR Studio 5 является лучшим выбором. Кстати, неофициальных клонов найти не смог. Если кто знает, прошу сообщить в комментариях к странице.

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

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

Из преимуществ выделю его малые габариты (по сравнению с его предшественником AVR-JTAGICE mkII) и универсальность — кроме интерфейса JTAG также доступны и aWire, SPI и PDI.

Из сложностей — его стоимость. Считаю, что она достаточно прилична — около 15000 рублей через официальных дилеров в России.

Характеристики программатора:

  • Поддержка интерфейсов JTAG, aWire, SPI и PDI
  • 3 аппаратных точки останова и 1 маскируемая
  • Символьная отладка сложных типов данных
  • До 128 программных точек останова
  • Поддержка микросхем с напряжением питания от 1.8 до 5.5В
  • Высокая скорость работы (загрузка 256KB программы ~14 сек. (XMEGA по интерфейсу JTAG) interface)
  • Питание от USB.

Программатор AVR-JTAG-USB

Применяется данный программатор для микроконтроллеров фирмы Atmel семейства AVR, поддерживающих интерфейс для отладки и программирования JTAG. Данный программатор является клоном оригинального Atmel’евского программатора. Производит его фирма Olimex и отличается он от официального более выгодной ценой (приблизительно 4000 рублей через официальных дилеров в России, и естественно, можно дешевле напрямую из-за бугра), при этом по функциональности вполне надежный и во время работы с ним нареканий у меня не возникало. Работает и питается от USB порта компьютера.

Единственная особенностью на которую стоит обратить заранее — это то, что при использовании в качестве средства разработки AVR Studio работать будет только под AVR Studio 4. Если вы собираетесь работать на AVR Studio 5 то он для отладки абсолютно бесполезен, т.к. не поддерживается. Поэтому для пятой версии я купил другой программатор — AVR-JTAGICE3.

Характеристики программатора

  • Программирование всех AVR микроконтроллеров с поддержкой JTAG интерфейса;
  • Целевое напряжение 3,0 — 5,0В;
  • Питание от USB интерфейса;
  • JTAG коннектор совместим с Atmel 2×5 пин коннектором JTAG;
  • Совместим с Atmel AVR STUDIO для программирования, эмуляции в режиме реального времени, отладки, выполнения программы в пошаговом режиме, установки точек останова, дампа памяти и т.д.;
  • Полная эмуляция всех аналоговых и цифровых функций;
  • Полная поддержка программирования через JTAG порт;
  • Обновление через AVR STUDIO;
  • Разъём USB интерфейса – типа «А».

Комплектация: программатор/эмулятор AVR-JTAG-USB.
Для работы может понадобиться USB кабель «А-А» — SCUAA-1



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

Для отладки программы возможно использования только двух вариантов – это программный симулятор и внутрисхемный 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.

При написании статьи использовались следующие источники:

2. Официальное руководство пользователя AVR JTAG ICE JTAGuserguide.pdf

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

1 Описание

AVR JTAG представляет собой инструмент для отладки устройств, выполненных на основе микроконтроллеров семейства AVR фирмы Atmel. AVR JTAG является полным аналогом AVR JTAG ICE фирмы Atmel. Для получения дополнительных сведений о работе AVR Studio с AVR JTAG может использоваться документация от Atmel.

Для работы с AVR JTAG используется программа AVR Studio от Atmel. AVR JTAG поддерживает все микроконтроллеры семейства, имеющие интерфейс JTAG:

    ATmega16;
    ATmega162;
    ATmega169;
    ATmega32;
    ATMega323;
    ATMega64;
    ATmega128.

Поддержка новых устройств осуществляется за счет обновления встроенного ПО AVR JTAG, которое поставляется в составе AVR Studio.

Рисунок 1 Расположение соединителей и индикаторов на плате AVR JTAG

Комплект поставки

В комплект поставки AVR JTAG входят:

  • плата AVR JTAG;
  • сетевой источник питания;
  • кабель для подключения AVR JTAG к компьютеру;
  • кабель для подключения AVR JTAG к отлаживаемому устройству;
  • компакт-диск с ПО и справочной информацией.

Рисунок 2 Внешний вид платы

Подключение

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

Подключение к компьютеру

AVR JTAG подключается к стандартному COM порту компьютеру. Для подключения используется 9-ти контактный "прямой" кабель (входит в комплект поставки).

При запуске AVR Studio автоматически ищет поддерживаемые им устройства, обращаясь по порядку ко всем COM портам компьютера. Поиск прекратится, как только будет найдено поддерживаемое устройство. Например, если к COM1 подключен AVR Prog, а к COM2 AVR JTAG, то AVR Studio обнаружит только AVR Prog. Поэтому при запуске AVR Studio убедитесь, что остальные поддерживаемые им устройства отключены или после запуска AVR Studio вручную задайте порт, к которому подключен AVR JTAG.

Если COM порт, к которому подключен AVR JTAG, используется другими программами (например, терминалом), то AVR Studio не сможет обнаружить AVR JTAG. Завершите эти программы перед запуском AVR Studio.

Подключение к отлаживаемому устройству

Для подключения к отлаживаемому устройству используются 6 линий: TCK, TDO, TDI, TMS, VTref и GND, подключение этих линий необходимо для правильной работы AVR JTAG с отлаживаемым устройством.

Дополнительно к отлаживаемому устройству может быть подключена линия nSRST (используется для управления и наблюдения за линией сброса микроконтроллера). Использование этого сигнала не является необходимым для отладки, однако, если программа микроконтроллера установит бит JTD в регистре MCUCSR, то интерфейс JTAG будет отключен и для его включения потребуется, чтобы AVR JTAG мог управлять линией сброса микроконтроллера.


Рисунок 3 Подключение AVR JTAG к отлаживаемому устройству

Подключение питания

AVR JTAG получает питание от внешнего источника питания (входит в комплект поставки) постоянного или переменного тока. Для подключения источника к AVR JTAG используется гнездо под штекер 2.5 мм. Полярность источника постоянного тока не имеет значения.

Для того чтобы AVR Studio обнаружило AVR JTAG необходимо, чтобы питание AVR JTAG и отлаживаемого устройства было включено до начала отладки (кнопкой Start Debugging AVR Studio).

  1. включите питание отлаживаемого устройства;
  2. включите питание AVR JTAG;
  3. запустите AVR Studio.

Обновление ПО

Обновление встроенного ПО AVR JTAG может быть проведено либо автоматически, либо вручную.

Автоматическое обновление

Автоматическое обновление происходит в том случае, если AVR Studio обнаружит, что версия встроенного ПО (firmware), входящего в состав AVR Studio, больше версии firmware AVR JTAG. В этом случае AVR Studio выдает соответствующее сообщение и предлагает выполнить обновление firmware. Если пользователь соглашается выполнить обновление ПО, то AVR Studio выдает диалог с инструкциями по обновлению ПО. Для обновления ПО выполните следующие действия:

  1. нажмите кнопку "Ok" в диалоге AVR Studio;
  2. в появившемся диалоге AVR Prog нажмите кнопку "Program";

Обновление ПО AVR JTAG завершено.

Ручное обновление

Ручное обновление ПО AVR JTAG может оказаться необходимым, если автоматическое обновление ПО было прервано по каким-либо причинам (сбой питания и т.п.). В этом случае AVR Studio не сможет обнаружить AVR JTAG, выяснить версию его ПО и начать автоматическое обновление ПО.

Чтобы выполнить ручное обновление ПО:

  1. выключите питание AVR JTAG;
  2. снимите перемычку на плате AVR JTAG;
  3. включите питание AVR JTAG;
  4. запустите программу AVR Prog;
  5. выберите для программирования файл с расширением.EBN из папки JTAGICE, находящейся в папке, в которую установлен AVR Studio;
  6. нажмите кнопку "Program";
  7. после завершения прошивки firmware закройте окно AVR Prog;
  8. установите перемычку на плате AVR JTAG;
  9. выключите и включите питание AVR JTAG.

ручное обновление ПО AVR JTAG завершено.

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

Чем является JTAG-программатор?

Он представляет собой упрощенный вариант профессионального AVR JTAG ICE, который, как можно догадаться по его названию, предназначен для программирования микроконтроллеров семейства AVR. Его главное отличие в том, что собрать его может даже непрофессионал, и конечная стоимость будет многократно ниже, чем при покупке заводского. По сути, представленный в статье механизм - китайская реплика, поэтому этот программатор AVR ещё и можно купить. Поэтому не кривя душой можно сказать, что существует ещё и вариант покупки. Но сборка своими руками позволит избежать возможных негативных последствий вследствие дешевизны и низкого качества покупаемых деталей при производстве.

Почему выбирают именно программатор JTAG?

Главное - его низкая стоимость и лёгкость в сборке. JTAG-программатор может программировать все устройства, имеющие интерфейс JTAG. Для работы через компьютер необходима среда разработки AVR Studio 4-й или больше версии. С ними этот программатор AVR сможет работать.

Недостатки программатора

Самые последние версии семейств микроконтроллеров, без дополнительной работы, не программируются. Также существуют значительные проблемы с теми представителями, у которых меньше 40 ног и 16 Кб памяти. Как можно заметить, круг потенциальных клиентов довольно ограничен. Но несколько популярных моделей как раз подпадают под него, так что он пригодится.

Схема

Схема программатора простая, для работы необходима ATMega16 и немного дополнительной электроники. В качестве интерфейса может быть использовано MAX232 (для работы с COM) и FT232RL (для работы с USB). Стоит оговориться, что при использовании второго варианта подключать питание через USB не рекомендуют. В таких случаях из-за ошибки или недосмотра могут получить напряжение защитные диоды, и на выводах FT232RL будет Это чревато выходом из строя или программатора, или объекта программирования. Решается этот нюанс подачей питания через плату.

Для большей простоты тем, кто не имеет достаточной квалификации, программатор рассчитан на MAX232, но для другого варианта требуется только установить другой разъем.

Настройка

Учитывая, что есть необходимые схемы, следует только вытравить плату. Далее всё аккуратно подсоединяется, припаивается на места, и проверяется работа программатора путём прошивки загрузчика. Затем следует с AVR Studio обновить прошивку для JTAG-программатора до последней версии или до тех пор, пока надо. К адаптеру подключается программатор. Если он работает - значит можно переходить к следующему разделу, в котором обрисованы нюансы работы и программирования. Следует учесть, что все необходимые провода есть, они только нестандартно расположены.

В качестве подготовки к работе следует выставить Fuse биты. Они зависят от нотации, в которой производится работа. Для лучшего понимания представляем вот такую таблицу:

Прямая нотация (Даташит, UniProf)

Инверсная нотация (AVR DUDE GUI, PonyProg)

А как понять, какую выбрать? Ответ на вопрос прост: следует подключиться к микроконтроллеру и начать читать эти самые биты. Обратите внимание на SPIEN - если есть галочка напротив него, то это значит, что нотация инверсная. Если её нет - значит, она прямая. Если всё было сделано правильно, то программатор готов, чтобы прошивать микроконтроллеры. Но если он в последующем не сможет сделать прошивку - перечитайте и проверьте всё ещё раз.

Работа с программатором

Для большей понятливости будет приведён пример программирования мигания светодиодов. Первоначально следует запустить студию и создать новый проект. Затем выбрать язык программирования (в данном случае ассемблер) и задать имя проекта. Программа сама сможет определить, что вы используете JTAG-программатор. В качестве платформы следует выбрать его, а в окошечке рядом - программируемый им микроконтроллер. Далее всё довольно обычно - следует только вбить текст для программы. Чтобы читатели могли проверить работоспособность, предлагаем опробовать JTAG-программатор указанным в статье кодом. Можно увидеть, что диоды начали мигать очень быстро, что неудивительно, ведь здесь не предусмотрена задержка. Итак, программатор, инструкция его создания и использования есть. Вам остаётся только воплотить полёт своей фантазии.

Немного о практике. Для проверки подключите к порту А 3 светодиода. Затем к плате подключается: четыре провода интерфейса (TCK, TDI, TMS, TDO) и 2 силовых Vcc идут на плюс, а GND подключается к земле. Всё, питание есть, можно идти дальше. В студии необходимо провести компиляцию кода и его запуск. Проект быстро скомпилируется, тут же будет прошит и начнёт работать. Чтобы следить за процессом исполнения, можно нажать F11, и тогда можно наблюдать, на каком ряду кода сейчас программа. Для этого достаточно поднести курсор к ряду, который включает светодиод, и он загорится. Существует ещё много экспериментов. Помните, что для того чтобы что-то сделать, необходимо работать. Пускай продвижение будет медленным, но со временем вы сможете получить именно то, что хотите, главное - не опускать руки и продолжать экспериментирование с упором на теоретическую базу (без неё никак).