Компьютерные подсказки

Вылетает Сталкер: Зов Припяти Программа икс рей 1

Stalker lost alpha гид по прохождению

Pony Express отслеживание почтовых отправлений

Pony Express – время и сроки доставки с Алиэкспресс в Россию

Застряли посылки с Алиэкспресс со статусом Hand over to airline: что делать?

РФ (Nigma) — интеллектуальная поисковая система

Данные для семантики — Яндекс Вордстат

Пиар ВКонтакте при помощи бирж: особенности и использование

Почему я не могу отправить сообщение?

Предупреждение «Подключение не защищено» в Google Chrome по протоколу https Нарушена конфиденциальность данных яндекс браузер

Всё что известно о смартфоне Samsung Galaxy S9 Аккумуляторная батарея Galaxy S9 и мощность

Темы оформления и русификация форума SMF, а так же установка компонента JFusion в Joomla

Автоматическое определение движка форума Позже board powered by smf

Коды в игре скайрим - зелья, ингредиенты, заклинания Код на ингредиенты скайрим

Подробная инструкция, как в "скайриме" открыть дверь золотым когтем

Внутрисхемный эмулятор. Что такое JTAG-программатор? Подключение к отлаживаемому устройству

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

Захотел я сделать себе отладчик для 8-ми битных AVR контролеров серии ATMega16A/32A/64A/128/256. К сожалению имеющиеся у меня программаторы умеют прошивать микроконтроллер через низковольтный ISP интерфейс, но не умеют проводить отладку. Это же касается покупного - самого первого в моей коллекции - программатора от магазина ekits.ru . Поэтому поискав немного по интернету решил собрать себе JTAG программатор.

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

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

  • EagleCAD. Создание электронной схемы .
  • EagleCAD. Создание компонента. Часть 1 .
  • EagleCAD. Создание компонента. Часть 2 .

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

  • Про встраиваемые системы", к сожалению прекративший свое развитие в 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 в разводке платы я не предусмотрел. Поэтому если когда-нибудь все же возникнет желание подробно разобраться в ньансах програмной реализации протокола и подключить управление выводами буферной схемы, то придется вносить изменения. Не думаю, что это будет скоро.)

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

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

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

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

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

Вид сверху

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

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

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 завершено.

-Что они хотят?

-«Ку» они хотят...

(Кин-цза-цза)

Итак, есть спрос - сделать несложный (относительно, конечно) внутрисхемный эмулятор для AVR. На этот спрос есть предложение.

AVR Studio поддерживает JTAG ICE, умеет зашивать в него обновления firmware. Этим мы и воспользуемся. Конечно, на коленке собрать это устройство затруднительно, довольно много деталюшек, но если Вы собираетесь писать программы посложнее, чем «Hello Word», то внутрисхемник быстро становится предметом первой необходимости.

Поддерживаемые устройства.

ATmega16(L), ATmega162(L), ATmega169(L or V), ATmega32(L), ATmega323(L), ATmega64(L), ATmega128(L).

По мере выхода новых версий firmware этот список расширяется. Проверить его можно на сайте www.atmel.com .

Возможности

  • Полностью совместим с AVR Studio
  • Поддерживает все устройства AVR с интерфейсом JTAG
  • Эмулирует все цифровые и аналоговые функции, реализованные на кристалле
  • Точки останова, в том числе по изменению значения переменных
  • Точки останова в памяти программ и данных
  • Интерфейс программатора для flash, eeprom, fuses and lock-bits.
  • USB интерфейс с компьютером (виртуальный COM-порт)
  • Питание устройства JTAG ICE от USB
  • Напряжение питания отлаживаемого устройства от 1.8 до 6 вольт

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

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

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

Connecting JTAG ICE to STK500 with an ATmega323 or an ATmega16

Индикация

На устройстве стоят аж пять светодиодов. Назначение их следующее:

  • VD1, VD2 - индикация обмена с PC
  • VD3 - индикация питания отлаживаемого устройства
  • VD4 - питание JTAG ICE с USB порта
  • VD5 - обмен с устройством через JTAG

Реализация.

Схема, печатная плата, прошивка для U1 - приводятся в приложении . Формат - как обычно, PCAD-2002 ASCII. Есть функциональное отличие от фирменной реализации - введен преобразователь USB->COM. Вообще-то документация не рекомендует такого подключения, но я его пользовал несколько лет, и не видел дополнительных глюков, кроме обычных. AT90S2313 (U1) уже снята с производства, но ее можно заменить AtTiny2313, не забыв запрограммировать нужные фузы, чтобы обеспечить совместимость. Собственно, она нужна только для программирования D2 (AtMega16), как это сделать - читайте HELP на AVR Studio, раздел «JTAG ICE Manual Firmware Upgrade». Возможно, при программировании U1 возникнут проблемы, тогда стоит замкнуть на землю вход RESET D2, а может быть и отсоединить его вывод MISO, чтобы не мешал. В любом случае, это одноразовое мероприятие.

Заключение.

Итак, собираем плату, программируем U1 программатором через разъем XP1, затем подключаем всё это к USB, ставим драйвера от FTDIchip (скачиваем распоследние драйвера виртуального COM-порта с www.ftdichip.com). Программируем D2. Подключаем всё это безобразие к отлаживаемому устройству. Радуемся, ликуем, плюем в сторону недоброжелателей J

Всем пацакам надеть намордники! И радоваться!

(Кин-цза-цза)


Принципиальная схема внутрисхемного эмулятора JTAG ICE

Размещение элементов на печатной плате эмулятора

Плата печатная - вид со стороны компонентов (Comp)

Плата печатная - вид со стороны пайки (Solder)

  • Официальный программатор, выпускаемый фирмой 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

Не знаю как вы, но я считаю программатор расходником при разработке устройств. За 1.5 года в общий сложности у нас сгорело 3 программатора. К великому удивлению JTAG отладчики для AVR стоят дорого. Причем не совсем понятно за что производитель хочет почти 100 баксов. В итоге сделал несколько самодельных отладчиков, заказал их на промышленное изготовление и теперь пользуюсь ими.

Схему разводил сам по шаблонам из сети, коих множество. Но схема не уместилась в один слой, поэтому имеет смысл развести еще раз, если вы будете делать ее ЛУТом в один слой, то понадобится 4 проводка.

Теперь о вопросе прошивки, AVR Studio имеет в своем составе возможность прошивки через бутлодер. Фирменные программаторы имеют на борту бутлодер для возможности обновления прошивки. Но мы прошьем контроллер сразу прошивкой без использования бутлодера, поэтому сначала вам понадобится внутрисхемный программатор или другой отладчик. Микроконтроллер требуется при этом прошивать на другой плате, так как на этой нет ISP разъема, но в данном случае, это не особо накладно. Файл прошивки miniIce.hex внутри проекта.

Принципиальная схема:

Вам также будет интересно:

Читы и консольные команды для Counter-Strike: Global Offensive Команда в кс го чтобы летать
В этой статье мы рассмотрим некоторые из наиболее полезных и забавных консольных команд в...
Arduino и четырехразрядный семисегментный индикатор Семисегментный индикатор 4 разряда распиновка
В сегодняшней статье поговорим о 7-сегментных индикаторах и о том, как их «подружить» с...
«Рабочие лошадки» Hi-Fi: собираем бюджетную систему Хороший бюджетный hi fi плеер
Выбор плеера - это сложный процесс, иногда человек желает получить не просто коробочку,...
Как правильно пользоваться сургучными печатями
На самом деле, сургуч - это смесь смол, окрашенная в определенный цвет. Если у вас на руках...
Лагает fallout 4 как снизить графику
10 ноября состоялся релиз долгожданной игры на ПК, PlayStation 4 и Xbox One, и постепенно...