Клон avr jtag ice

О всяком… – avr jtag ice my clone

С статье подробно, начиная с процесса поиска информации рассказывается, о возникновении моей схемотехнической версии популярного программатора AVR JTAG ICE (mk!!). Данный программатор интересен тем, что для AVR-микроконтроллёров, имеющий встроенный JTAG. может производить отладку “на кристалле”, чего не позволяют программаторы с универсальным для AVR интерфейсом ISP.

Захотел я сделать себе отладчик для 8-ми битных AVR контролеров серии ATMega16A/32A/64A/128/256.

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

Это же касается покупного – самого первого в моей коллекции – программатора от магазина ekits.ru. Поэтому поискав немного по интернету решил собрать себе JTAG программатор.

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

1. На сайте avrportal.com нашлась статья на требуемую тему. Смотрим схему (к сожалению владелец сайта не позволяет сторонним ресурсам использовать ссылки на его материалы. Ну и ладно. В конечном итоге закрою и забуду :), 

Как видно схема достаточно простая. Преобразование уровней RS232  в ТТЛ происходит на паре транзисторов. Это можно взять себе на заметку. Имеется кварцевый резонатор. имеется кнопка сброса Reset (полезная вещь).

Очень плохо стабилизировано питание самого микроконтроллера – всего пара конденсаторов при том, что порты питания раскиданы по всем четырем сторонам корпуса – я планирую использовать МК в корпусе TQFP-44.

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

2. На сайте “Электроника для всех” находим статью “Внутрисхемная отладка AVR через JTAG ICE” датированную еще 2009 годом. Собственно автор не скрывает, что для своего программатора/отладчика использовал информацию с другого ресурса. Смотрим схему

DI HALT признанный специалист по микроэлектронике. Заподозрить его в ошибках нельзя. Собственно и по его статьям я учился и учусь :). Это я к тому что питание МК на его схеме по питанию никак не обвязано. Но в тексте есть пояснение

Так что никаких проблем. Насколько стабилизированным напряжением питается его целевая схема неизвестно, так что предполагаем, что с нее берётся сверх стабильное питание. Выходы МК отладчика, судя по схеме, тоже никак не защищены ::(. Но… автору можно верить.

Его схемы работают! Из новшеств: в качестве альтернативы СОМ-порту предлагается USB интерфейс на базе FT232R. Уже интереснее. К сожалению схема разведена под DIP корпус, да и автор не реализовал USB-интерфейс, так что все равно придется разводить схему самому.

Зато есть описание работы в режиме отладки :).. Ищем дальше…

3. На частном сайте вроде моего находим статью “AVR JTAG Programmer”. Смотрим на фотографии изделия. Видим TQFP44-корпус – то уже ближе к тому, что я хочу собрать для себя. К сожалению опять СОМ-интерфейс на MAX232.

Имеются ссылки на прошивки, впрочем в предыдущих статьях они тоже имелись. Опять слабая – всего два конденсатора – развязка питания, но есть и различие – в выходных цепях предусмотрены защитные резисторы номиналом 100 Ом.

Возьмем на заметку

4. Далее поисковик приводит на сайт avrdevices.ru, где имеется статья “Отладчик JTAG ICE”, датированная 2010 годом и являющаяся как бы самостоятельной реализацией идей, описанных DI HALT в пункте 2 настоящего перечня. Как и раньше скопирую ссылку схемы с указанного сайта да бы не копировать к себе само изображение. Общие замечания все те же. 

5. Есть и еще более бедный на обвязку вариант, названный автором ARM mini ICE. Тащить сюда его схему я не буду. 

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

Итак:

  1. Мой отладчик должен работать от USB. Так что воспользуюсь имеющимся опытом построения USB-UART преобразователя на базе уже испробованной микросхемы CP2102. Здесь просто указу ссылки на статью, в которой данный преобразователь подробно описан, хотя разводка этого автора у меня “не пошла” – спалил целых три преобразователя, пока научился работать с безвыводными MLF-корпусами :(. В статье есть вся необходимая информация чтоб разобраться с данным преобразователем и,конечно, ссылки на даташиты. К сожалению ссылок на готовый AVR JTAG ICE с USB-интерфейсом реализованном на CP2102 мне не встретилось в рунете. Может никто не собирал, а скорее всего никто не выкладывал. Вообще, интерес к AVR-программаторам и отладчикам, судя по датам статей, наблюдался в период от 2009 до 2012 года. А в 2012 все как-то неожиданно обрывается. Ну да ладно.
  2. В качестве буферной части между USB-коннектором и преобразователем, хотя строго говоря этого не требуется, использую известную по программатору PROTTOS ucGoZilla микросхему STF202, ну и защитный дроссель на питание USB-порта, как уважение к правилам хорошего тона :). USB-коннектор буду использовать формата USB-B. Пусть уж все (почти) мои программаторы имеют один и тот же стандарт.
  3. В качестве редактора на этот раз буду использовать Eagle. Плата должна получиться относительно маленькой так что даже бесплатной версии должно хватить с запасом. Набрасываем схему

У DI HALT есть цикл статей о том, как работать с Eagle CAD:

У EagleCAD есть и полуофициальный сайт eaglecad.ru и там тоже есть учебник,но похоже поддерживается он энтузиастом и не слишком тщательно  Также можно не лишним будет почитать пару статей сс сайта chipenable.ru:

Совокупности материалов по приведенным ссылкам вполне достаточно, что бы уверенно работать с Eagle CAD. по крайней мере мне сильно помогло в свое время ;). Ну если совсем туго, то есть еще статья на “паяльнике”. 😀

Продолжим поиск по рунету.

  • Про встраиваемые системы”, к сожалению прекративший свое развитие в 2006, содержит статью “JTAG для AVR”. Хотя информация и устаревшая, но кое какие решения в части “транзисторно-диодной” обвязки почерпнуть из материалов можно.
  • Просто шикарный обвес хоть и в другом программаторе. Пример для подражания. Без шуток. См. здесь.
  • Известный и уважаемый ресурс – сайт “Паяльник” порадовал очень и очень хорошей статьей по тематике: “Клон AVR JTAG ICE” и этот клон довольно сильно отличается от того, что я рассматривал раньше. Ядро-то у него тоже самое – микроконтроллер Mega16A, а вот обвязка уже гораздо внушительнее. Да бы не нарушать ни чьих авторских прав, позаимствую ссылку на картинку.

Плата у авторов получилась 48 на 40,6 мм, что впечатляет. Правда авторам для этого пришлось монтировать компоненты на обе стороны платы. Что же. Я тоже так делал, когда хотел сэкономить :). Ну да начну разбор этой весьма насыщенной и грамотной схемы. С моей дилетантской точки зрения, разумеется. 

  1. Независимый источник питания на линейном стабилизаторе. Буду я ставить дополнительный источник питания? USB порт только по стандарту должен питать устройства с током потребления до 500 мА. По факту современные USB- порты еще мощнее. Программировать какие-либо процессоры напряжениями более 5 В этот тип программатора не позволяет. Резюме: мне дополнительный источник питания не нужен.
  2. Использование буферной микросхемы 74FC244. Однозначно “да”. Буферную микросхему введу. И размещу, если получится, на обратной стороне :).
  3. Ножки с 19 по 22 ( родной JTAG МК) подтянуты к земле через резисторы 10к. У меня, как и во всех ранее рассмотренных схемах, висят. Решение: сделаю так же. В крайнем случае резисторы 0805 много места не занимают (а можно и 0603 в проект внести) и их можно просто не запаивать. Вообще я часто на платах вижу не запаянные компоненты. И считаю, что это нормально. Резерв который можно использовать, а можно оставить или заменить на перемычку.
  4. Очень трепетно “обвешены” порты питания МК. Но у меня это уже предусмотрено :).
  5. В выходных цепях использованы резисторы по 200 и 220 Ом. В предыдущих схемах по 100 Ом. Я же планировал использовать более “знакомые” мне 68 Ом… Подумаю-попробую.
  6. JTAG выводов на два больше. Дополнительно выведены сигналы VTRef и Vsup – питание целевой платы. У меня не будет отличного от 5 вольт питания.
  7. Защитный стабилитрон на питании МК – у меня предусмотрен.

Ну что же. Неплохо. Про буферную микросхему я точно подзабыл, когда в уме составлял схему своего клона. Так что напоминание весьма своевременное :). С другой стороны, если прошивка не управляет входами разрешения (enable) и они заземлены, как у авторов т.е.

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

Читайте также:  Применение электронного блока часов

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

С другой стороны, в приведенных выше ссылка есть упоминания авторских прошивок с исходниками и есть возможность переписать код так, что бы какой-либо один или несколько оставшихся свободными, входов микроконтроллера управляли бы этими входами разрешения (enable).

Исходя из этого буферную схему все же оставлю, но использую не восьми канальную 74АС244, как у авторов с заземлением половины ножек, а четырехканальную 74АС125 с независимыми выходами разрешения пропускания сигнала на канал. Для пятой сигнальной линии буду использовать микросхему MC74VHC1G125 в корпусе SOT23-5, содержащую один буферный элемент.

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

Рисуем схему по пути сразу вставляя какие-то бродящие в голове идеи.

Вариант разведения дорожек получился у меня таким (выводные компоненты: USB-B, кварцевый резонатор, штырьки, – выведены на одну сторону, разведение платы на второй стороне):

3D-модель приближенно должна выглядеть так:

В настоящий момент у меня нет в наличии ни Mega16A, ни “экзотического” кварца на 7,3728 МГц. Поэтому практическая проверка схемы пока откладывается. Как только появятся компоненты – статья будет продолжена.

Итак, заказанные компоненты наконец-то доставлены и у меня нашлось время заняться своим хобби. Внешний вид собранной платы моего клона выглядит так:

Вид сверху

Вид снизу. По отношению к синтезированной в SketchUp фактическая плата получилась визуально инвертированной – верх и низ поменялись местами. По крайней мере так можно судить по асимметрично расположенному модулю СР2102. 

Нашел ссылку на коммерческую реализацию данного программатора. Просят больше 35$. Однако…

Источник: http://ovsjakom.info/index.php/mikrokonrolljory/programmatory/avr/25-avr-jtag-ice-my-clone

Прогаммирование и JTAG-отладка микроконтроллера Atmega16 на языке C в среде IAR, часть 1

Введение

По моему мнению, чтобы быстро научится программировать практически любой микроконтроллер, существующий в мире, нужно освоить язык C и пользоваться JTAG-отладкой, конечно, помимо изучения технической документации. Поясню свою мысль. Компиляторы языка C существуют практически для всех существующих микроконтроллеров.

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

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

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

Такие микроконтроллеры как AVR, STM8, MSP430, AVR32, STM32, EFM32, Renesas RX имеют компиляторы языка С и возможность отладки при помощи интерфейса JTAG. Единой кроссплатформенной средой для этих многих других микроконтроллеров является Embedded Workbench.

Хоть среда и платная, но есть возможность использовать 30-дневную бесплатную версию или версию с ограничением по размеру кода. Для начального изучения нового семейства месяца может быть вполне достаточно.

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

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

Выбор JTAG-отладчика

Для внутрисхемной отладки написанных на языке C программ нам потребуется JTAG-отладчик для микроконтроллеров AVR. Самыми доступными по цене и простыми в изготовления являются клоны фирменного отладчика AVR JTAGICE. Такой клон можно заказать по небольшой цене с eBay. Качество здесь, как лотерея.

Также клоны производит, например, фирма Olimex. Есть классический вариант, подключаемый к компьютеру через COM-порт и более новый вариант, где подключение осуществляется по интерфейсу USB.

При личном изготовлении такого клона, если нет возможности сделать свою печатную плату, можно использовать только DIP-компоненты, что упростит монтаж. Ранняя версия Evertool, который содержит в себе клон JTAGICE, была сделана именно так.

]

В основе большинства клонов JTAGICE лежит схема, изображенная на рисунке снизу. Точнее часть, которая называется JTAGICE section. Ядром отладчика является микроконтроллер Atmega16L. Если хотим получить подключение клона JTAGICE по USB, то меняем микросхему преобразования уровней MAX3232 на микросхему FTDI FT232.

Однако FT232 в DIP-корпусе не выпускают, а цены на DIP-модули с данной микросхемой довольно высоки. Поэтому тут уже одной монтажной платой и DIP-компонентами не отделаешься.

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

Прошивку можно найти в папке установки AVR Studio 4 или скачать здесь.

Недостатком клонов JTAGICE, описанных выше, является то, что в AVR Studio 6 они не поддерживаются. Однако в старой версии AVR Studio 4 и старых и новых версиях IAR для AVR данные клоны прекрасно поддерживаются. Для отладки примеров кода на C, написанных далее, я пользовался клоном, сделанным по данной схеме. Микросхема MAX3232 в нем замена на ADM3202, что сути не меняет.Данный клон JTAGICE достался мне по наследству. Я нашел в коробке с радиотехническим мусором на работе. Он не работал, и я решил его перепрошить. Для чего потребовалось сделать специальный переходник, потому что, как видно на фото, разъем AVR ISP для программирования Atmega16L не выведен для уменьшения габаритов. После прошивки JTAGICE заработал и обрел «загробную» жизнь.

Сейчас, когда COM-порт стал немодным, я не стал бросать «старого друга» и купил кабель-преобразователь USB в RS-232.

Отладочная плата

В качестве отладочной платы я буду использовать цифровой термометр, собранный мной на макетной плате. Питается плата по USB, ядром является микроконтроллер Atmega16 в DIP-корпусе.

Микроконтроллер тактируется от кварцевого резонатора частотой 16 МГц и обвязан минимально необходимым набором пассивных компонентов (конденсаторы по 22 пФ для кварца, резистор 10 кОм на подтяжку линии Reset к питанию, конденсаторы 0,1 мкФ по питанию).

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

Индикационный светодиод и сегменты индикатора подключены к микроконтроллеру через токоограничивающие резисторы по 500 Ом. Каждый из трех семисегментных индикаторов подключен к выводам с нулевого по шестой одного из портов A, B и D. Индикационный светодиод подключен к 7-му выводу порта D. Выход аналогового датчика подключен к 7-му выводу порта A (7-й канал встроенного АЦП).

Все элементы были спаяны проводом МГТФ.

Среда разработки IAR

Для написания и отладки программ будем использовать среду IAR Embedded Workbench for Atmel AVR, а именно бесплатную ее версию с ограничением по размеру кода в 4 Кб. Для небольших проектов на языке С для микроконтроллеров семейства AVR этого вполне достаточно.

Зайдем сюда и почитаем, что обеспечивает последняя версия IAR для AVR на текущий момент времени. Отладчик JTAGICE, о котором говорилось выше, как и раньше, поддерживается.

В списке поддерживаемых семейств есть megaAVR.

Убедившись, что наш JTAG-отладчик и отладочная плата пойдут, скачаем IAR.

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

Мы выбираем язык C и вариант AVR Studio 4 compatible output, на случай если придется зашивать выходной hex-файл средствами AVR Studio 4.После выбора языка перед нами появится совсем пустой почти пустой source-файл.Перейдем к настройкам нашего проекта. Т.к. мы будем писать программы для Atmega16, выберем данный микроконтроллер в графе Processor configuration.

В пункте меню Debugger выберем JTAGICE.В пункте меню Debugger-> JTAGICE выберем номер COM-порта, к которому подключен отладчик.Для корректной работы определений значащих битов регистров периферии микроконтроллера в библиотеках среды также необходимо поставить галочку Enable bit definitions in I/O-Include files в пункте меню General Options->System.

Программирование и отладка

Читайте также:  Светофон - генератор, управляемый светом

Прежде чем приступить к описанию примеров, нужно объяснить некоторые особенности среды IAR. В заголовочном файле iom16.h, который содержит определения адресов регистров для Atmega16, есть макросы, которые позволяют обращаться к конкретным битам регистров внутренней периферии, следующим образом:

… * Examples of how to use the expanded result: * TCCR2 |= (1

Источник: http://AnalogIndex.ru/news/progammirovanie-i-jtag-otladka-mikrokontrollera-atmega16-na-zyke-c-v-srede-iar-ast-1_65366.html

avrdude on ubuntu with JTAGICE mkII clone – problems connecting ATmega1280 (RSP_ILLEGAL_JTAG_ID)

Hopefully I've been struggling with this long enough to ask a question here…

I can't connect ATmega1280 with a cheaper version of JTAGICE mkII like this one. I'm trying to first set fuses for JTAG debugging. I've already done udev config as described here (and here).

EDIT: I'm able to connect my hardware on my computer via my JTAGICE in Windows using AVRStudio, so I'm already positive the wiring is ok.

All I'm getting is:

$ avrdude -P usb -c jtagmkii -p m1280 -U hfuse:w:0x1a:m avrdude: jtagmkII_program_enable(): bad response to enter progmode command: RSP_ILLEGAL_JTAG_ID
avrdude: jtagmkII_program_enable(): bad response to enter progmode command: RSP_ILLEGAL_JTAG_ID
avrdude: JTAGEN fuse disabled?
avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. avrdude done. Thank you.

I've read this can help solving JTAGICE problems. Sadly, I don't understand how it could help, but maybe you do:

$ avarice –part atmega1280 –mkII –jtag usb –read-fuses –read-lockbits –debug
AVaRICE version 2.10, Feb 8 2010 07:22:18 Defaulting JTAG bitrate to 250 kHz. Found JTAG ICE, serno: 070000004693
JTAG config starting.
Attempting synchronisation at bitrate 19200 command[0x01, 1]: 01 recv: 0x1b
recv: 0x00
recv: 0x00
recv: 0x1c
recv: 0x00
recv: 0x00
recv: 0x00
recv: 0x0e
sDATA: reading 28 bytes
read: 86 01 ff 26 04 00 ff 26 04 01 07 00 00 00 46 93 4a 54 41 47 49 43 45 6d 6b 49 49 00
recv: 0xb9
recv: 0xfe
CRC OK
Got message seqno 0 (command_sequence == 0)
response: 86 01 FF 26 04 00 FF 26 04 01 07 00 00 00 46 93 4A 54 41 47 49 43 45 6D 6B 49 49 00 Found a device: JTAGICEmkII
Serial number: 07:00:00:00:46:93
JTAG ICE mkII sign-on message:
Communications protocol version: 1
M_MCU: boot-loader FW version: 255 firmware version: 4.38 hardware version: 0
S_MCU: boot-loader FW version: 255 firmware version: 4.38 hardware version: 1 command[0x02, 1]: 02 03 01 recv: 0x1b
recv: 0x01
recv: 0x00
recv: 0x01
recv: 0x00
recv: 0x00
recv: 0x00
recv: 0x0e
sDATA: reading 1 bytes
read: 80
recv: 0xcd
recv: 0x83
CRC OK
Got message seqno 1 (command_sequence == 1)
response: 80 command[0x0a, 1]: 0A 01 recv: 0x1b
recv: 0x02
recv: 0x00
recv: 0x01
recv: 0x00
recv: 0x00
recv: 0x00
recv: 0x0e
sDATA: reading 1 bytes
read: 80
recv: 0x1d
recv: 0x09
CRC OK
Got message seqno 2 (command_sequence == 2)
response: 80 Automatic device detection: command[0x03, 1]: 03 0E recv: 0x1b
recv: 0xff
recv: 0xff
recv: 0x06
recv: 0x00
recv: 0x00
recv: 0x00
recv: 0x0e
sDATA: reading 6 bytes
read: e0 fe ff 00 00 00
recv: 0x82
recv: 0x16
CRC OK
Got message seqno 65535 (command_sequence == 3) got asynchronous event: 0xe0
recv: 0x1b
recv: 0x03
recv: 0x00
recv: 0x05
recv: 0x00
recv: 0x00
recv: 0x00
recv: 0x0e
sDATA: reading 5 bytes
read: 81 ff ff ff ff
recv: 0x24
recv: 0x19
CRC OK
Got message seqno 3 (command_sequence == 3)
response: 81 FF FF FF FF JTAG id = 0xFFFFFFFF : Ver = 0xf : Device = 0xffff : Manuf = 0x7ff
Reported JTAG device ID: 0xFFFF
Looking for device: atmega1280
Configured for device ID: 0x9703 atmega1280 — FORCED with atmega1280 command[0x0c, 1]: 0C FF FF FF FF FF 3D B9 F8 00 00 00 00 00 00 00 00 FF FF 1F E0 FF 1D A9 F8 00 00 00 00 00 00 00 00 73 FF 3F FF F7 3F F7 3F F7 3F 5F 3F 37 37 36 00 00 00 00 00 FF 0F 00 00 F7 3F 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 73 FF 3F F8 F7 3F F7 3F F7 3F 5F 2F 36 36 36 00 00 00 00 00 FF 0F 00 00 F7 3F 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 57 3B 00 01 08 00 FE 00 00 36 01 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3E 3D 00 02 00 00 00 00 00 01 00 00 02 00 00 00 3C 1F 00 recv: 0x1b
recv: 0x04
recv: 0x00
recv: 0x01
recv: 0x00
recv: 0x00
recv: 0x00
recv: 0x0e
sDATA: reading 1 bytes
read: 80
recv: 0xac
recv: 0x14
CRC OK
Got message seqno 4 (command_sequence == 4)
response: 80 JTAG config complete. command[0x14, 1]: 14 recv: 0x1b
recv: 0x05
recv: 0x00
recv: 0x01
recv: 0x00
recv: 0x00
recv: 0x00
recv: 0x0e
sDATA: reading 1 bytes
read: a9
recv: 0xd0
recv: 0x29
CRC OK
Got message seqno 5 (command_sequence == 5)
response: A9 command[0x14, 2]: 14 recv: 0x1b
recv: 0x06
recv: 0x00
recv: 0x01
recv: 0x00
recv: 0x00
recv: 0x00
recv: 0x0e
sDATA: reading 1 bytes
read: a9
recv: 0x00
recv: 0xa3
CRC OK
Got message seqno 6 (command_sequence == 6)
response: A9 command[0x14, 3]: 14 recv: 0x1b
recv: 0x07
recv: 0x00
recv: 0x01
recv: 0x00
recv: 0x00
recv: 0x00
recv: 0x0e
sDATA: reading 1 bytes
read: a9
recv: 0xbf
recv: 0x22
CRC OK
Got message seqno 7 (command_sequence == 7)
response: A9 command[0x14, 4]: 14 recv: 0x1b
recv: 0x08
recv: 0x00
recv: 0x01
recv: 0x00
recv: 0x00
recv: 0x00
recv: 0x0e
sDATA: reading 1 bytes
read: a9
recv: 0x0d
recv: 0x93
CRC OK
Got message seqno 8 (command_sequence == 8)
response: A9 command[0x14, 5]: 14 recv: 0x1b
recv: 0x09
recv: 0x00
recv: 0x01
recv: 0x00
recv: 0x00
recv: 0x00
recv: 0x0e
sDATA: reading 1 bytes
read: a9
recv: 0xb2
recv: 0x12
CRC OK
Got message seqno 9 (command_sequence == 9)
response: A9 command[0x14, 6]: 14 recv: 0x1b
recv: 0x0a
recv: 0x00
recv: 0x01
recv: 0x00
recv: 0x00
recv: 0x00
recv: 0x0e
sDATA: reading 1 bytes
read: a9
recv: 0x62
recv: 0x98
CRC OK
Got message seqno 10 (command_sequence == 10)
response: A9 command[0x14, 7]: 14 recv: 0x1b
recv: 0x0b
recv: 0x00
recv: 0x01
recv: 0x00
recv: 0x00
recv: 0x00
recv: 0x0e
sDATA: reading 1 bytes
read: a9
recv: 0xdd
recv: 0x19
CRC OK
Got message seqno 11 (command_sequence == 11)
response: A9 command[0x14, 8]: 14 recv: 0x1b
recv: 0x0c
recv: 0x00
recv: 0x01
recv: 0x00
recv: 0x00
recv: 0x00
recv: 0x0e
sDATA: reading 1 bytes
read: a9
recv: 0xd3
recv: 0x85
CRC OK
Got message seqno 12 (command_sequence == 12)
response: A9 command[0x14, 9]: 14 recv: 0x1b
recv: 0x0d
recv: 0x00
recv: 0x01
recv: 0x00
recv: 0x00
recv: 0x00
recv: 0x0e
sDATA: reading 1 bytes
read: a9
recv: 0x6c
recv: 0x04
CRC OK
Got message seqno 13 (command_sequence == 13)
response: A9 command[0x14, 10]: 14 recv: 0x1b
recv: 0x0e
recv: 0x00
recv: 0x01
recv: 0x00
recv: 0x00
recv: 0x00
recv: 0x0e
sDATA: reading 1 bytes
read: a9
recv: 0xbc
recv: 0x8e
CRC OK
Got message seqno 14 (command_sequence == 14)
response: A9 JTAG ICE: Cannot synchronise

Читайте также:  Мониторинг параметров пк на pic

The device is being recognized on my system

$ lsusb Bus 002 Device 012: ID 03eb:2103 Atmel Corp. JTAG ICE mkII

It's also not behind any USB hub. I triple checked all connections. Any clues?

Источник: https://stackoverflow.com/questions/6680655/avrdude-on-ubuntu-with-jtagice-mkii-clone-problems-connecting-atmega1280-rsp

Клон AVR JTAG ICE

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

Если с программированием микроконтроллеров 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.

При написании статьи использовались следующие источники:
1 http://onembedding.bialix.com/files/jtag_vit/
2. Официальное руководство пользователя AVR JTAG ICE JTAGuserguide.pdf

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

Список радиоэлементов

ОбозначениеТипНоминалКоличествоПримечаниеМагазинМой блокнотDD1

DD2

DD3

DA1

VD1, VD2

VD3

VD4, VD5

HL1, HL2

C1, C2, C4-C6, C9-C13, C16

C3

C7

C8

C14, C15

R1

R2

R3-R6

R4, R10

R9, R11-R15

R16

BQ1

XS1

XP1

XP2

XP3

XP4

ИС буфера, драйвера CD74AC244 1 Поиск в магазине В блокнот
ИС RS-232 интерфейса MAX232 1 ST232BD Поиск в магазине В блокнот
МК AVR 8-бит ATmega16 1 ATmega16-16PI Поиск в магазине В блокнот
Линейный регулятор LM78L05 1 Поиск в магазине В блокнот
Выпрямительный диод SM4007PL 2 Поиск в магазине В блокнот
Стабилитрон BZX55C5V1 1 SMBJ5.0A Поиск в магазине В блокнот
Диод Шоттки SM5819PL 2 Поиск в магазине В блокнот
Светодиод КР-3216-2 2 Поиск в магазине В блокнот
Конденсатор 0.1 мкФ 10 Поиск в магазине В блокнот
Электролитический конденсатор 1 Поиск в магазине В блокнот
Электролитический конденсатор 470 мкФ 10 В 1 Танталовый Поиск в магазине В блокнот
Конденсатор 1200 пФ 1 Поиск в магазине В блокнот
Конденсатор 22 пФ 2 Поиск в магазине В блокнот
Резистор 36 кОм 1 Поиск в магазине В блокнот
Резистор 150 кОм 1 Поиск в магазине В блокнот
Резистор 10 кОм 4 Поиск в магазине В блокнот
Резистор 4.7 кОм 2 Поиск в магазине В блокнот
Резистор 200 Ом 7 Поиск в магазине В блокнот
Резистор 510 Ом 1 Поиск в магазине В блокнот
Кварц 7.3728 МГц 1 Поиск в магазине В блокнот
Разъём DRB-9F 1 RS-232 Поиск в магазине В блокнот
Разъём DJK-02 1 Питание Поиск в магазине В блокнот
Разъём WF-2 1 Питание Поиск в магазине В блокнот
Разъём IDC-10M 1 JTAG Поиск в магазине В блокнот
Разъём PLD-6 1 ISP Поиск в магазине В блокнот
Разъём PLS-3 2 Перемычки Поиск в магазине В блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

  • AVR JTAG ICE.rar (723 Кб)

Источник: http://cxem.gq/mc/mc85.php

Клон avr jtag ice

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

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

Рис 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. Зображення нижнього шару трасування друкованої плати, з нанесеними елементами

Фотографії готового пристрою:

Завантажити прошивку, файли друкованих плат ви можете нижче

список радіоелементів

Схожі статті

Источник: http://blog.r13-r21.com.ua/articles/klon-avr-jtag-ice.php

Ссылка на основную публикацию
Adblock
detector