Инструкция по использованию jtag программатора. Внутрисхемная отладка AVR через JTAG ICE. Обновление "прошивки" программатора

JTAG программатор (жарг.) - программатор работающий с микросхемой через JTAG интерфейс.
JTAG (Joint Test Action Group) - специализированный отладочный интерфейс, стандарт IEEE 1149.1.
При буквальном понимании - JTAG программатор, это устройство, которое можно отнести к одному из следующих типов:

  • Специализированные JTAG программаторы, создаваемые для программирования и тестирования при серийном производстве. Такие JTAG программаторы удобны тем, что за 1 проход они позволяют и запрограммировать микросхему непосредственно в устройстве пользователя, и при необходимости протестировать работоспособность устройства;
  • Специализированные отладчики, совмещающие функции JTAG эмулятора и JTAG программатора. При этом, и эмулятор и программатор используют JTAG порт обслуживаемой микросхемы. Например, JEM-ARM (JTAG эмулятор программатор), использует все возможности JTAG протокола, и обеспечивает не только программирование, но и полноценную отладку микроконтроллеров семейства ARM, Cortex. ;
  • Универсальные программаторы, которые наряду с поддержкой параллельного режима программирования, поддерживают и режим последовательный, через JTAG интерфейс;
  • Многочисленные радиолюбительские схемы расчитанные на программирование 1 или нескольких типов микросхем через JTAG порт. (по аналогии с так называемыми PIC программаторами).

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

Универсальный USB программатор, оптимизированный для скоростного программирования NAND Flash, микроконтроллеров, FLASH, E(E)PROM, NVRAM, ПЛИС, PLD. Описание программатора

Универсальный USB программатор. Быстрое программирование микроконтроллеров, FLASH, NAND, EEPROM, EPROM, NVRAM, ПЛИС, PLD. Характеристики программатора

Бюджетный, универсальный программатор с USB интерфейсом. Программирование микроконтроллеров, FLASH, EPROM, EEPROM, NVRAM. Описание программатора

Внутрисхемный ISP программатор. Программирование микроконтроллеров и микросхем памяти в устройстве пользователя. Описание программатора

ChipProg-G41 Промышленный программатор копировщик. Самое быстрое программирование, тиражирование микроконтроллеров, FLASH, NAND, E(E)PROM, NVRAM, ПЛИС, PLD.

Любой более-менее интересующийся электроникой человек сегодня знает, что такое «прошивка». Многие из этой категории встречались с ситуацией «прошивка слетела». Самым неприятным подвидом ситуации является состояние «кирпич». Под катом немного теории и практики «раскирпичивания» с использованием устройства-героя обзора.

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

Предыстория.

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

Выяснилось, что аппарат неисправен со следующими симптомами: когда-то грузился со второго раза, потом стал грузиться с третьего, потом с пятого, потом с десятого, потом перестал совсем. В сервисе за ремонт заломили неадекватную сумму, в результате просто был куплен новый тюнер, а этот брошен в кучу хлама. На предложение купить его за символическую сумму владелец с радостью согласился, в результате я стал обладателем неисправного тюнера Skyway Light с практически полным комплектом - нашелся пульт, блок питания и даже выносной ИК-приемник.

Первое включение.

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

Подозрение первое. Питание.

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

Подозрение второе. Прошивка.

Обновить прошивку не удалось ни с флэш-драйва методом зажатой кнопки «вниз», ни через COM-порт с помощью программы Porter Express. В первом случае индикатор чтения на флэшке мигал несколько секунд, после чего наступала тишина. Во втором программы выдавала сообщение «ошибка записи» без какого-либо объяснения, что ее не устраивает. Так я подобрался к третьему подозрению.

Подозрение третье. Чип флэш-памяти.

Натолкнули на эту мысль сразу несколько фактов. Во-первых, в консоли загрузки, которая стала доступна после подключения по COM-порту, при старте вываливалось сообщение «CRC error». Во-вторых, при попытке снять конфигурацию тюнера при помощи Porter Express слитый файл получался каждый раз другим, не совпадающим в предыдущим при побайтовом сравнении.

Беглое изучение Aliexpress показало, что такую микросхему можно купить за небольшие деньги. Но вот тут обнаружилась главная проблема: просто купить флэшку мало. Ее нужно прошить. Либо на программаторе, либо прямо на плате. В моем случае это чип Spansion S29GL256P90TFCR2 - параллельная флэш-память в корпусе TSOP-56. Поиск такого программатора ни среди друзей-электронщиков, ни в веб-магазинах по адекватной цене не увенчались успехом. Остается единственный вариант - прошить флэшку прямо на плате после запаивания. И тут впервые мысленно была произнесена фраза, которая обычно на форумах электроники звучит как приговор: «поможет только JTAG».

Немного про JTAG.

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

Заказ адаптера.

Гугление коммерческих продуктов, которые умеют работать с моим чипсетом ST40, привело меня на ресурс ejtag.ru, где обитает комьюнити по ремонту и находится небольшой интернет-магазин. Присмотрев для себя самый дешевый адаптер и убедившись, что он умеет работать с ST40, начал переговоры с жабой приступил к процессу покупки. Процесс отличается от того, к чему мы привыкли в популярных интернет-магазинах. Никаких пэйпэлов и диспутов. Регистрируемся, кладем товар в корзину, оформляем заказ. Через некоторое время приходит сообщение с номером WM-кошелька и суммой для оплаты. Оплачиваем, приходит подтверждение оплаты, через несколько дней - уведомление об отправке. Остается только ждать. Гарантия сделки - доброе имя продавца.

Получение, распаковка, регистрация.

Пластиковый пакет почты России, внутри обернутый пупыркой и положенный в антистатический пакет адаптер, кабель USB A male - Mini USB, шлейф с десятипиновой колодкой (будет виден на других фото, на момент съемки был подцеплен к тюнеру), переходник для прошивки последовательных флэшек самых популярных серий - 25-й, 93-й и в теории 24-й.

Для оценки размеров

Фото внутренностей

Внутри микроконтроллер с системой команд 8051 и микросхема буферов.


На скриншоте виден весь процесс покупки, включая запрос регистрационного кода после получения:

Заказ новой флэшки на Aliexpress.

Развернуто описывать не буду. Заказывал , шло почти два месяца, пришло в пластиковом блистере, который лежал в стандартном пакете.

Заказывал 2 штуки, на случай если одну убью при перепайке.

Перепайка флэшки.

Пайка мелких чипов многократно описана на Youtube. Залогом успеха здесь являются наличие паяльной станции с феном, хороший флюс, прямые руки. Вкратце: сдуваем старый чип, лудим площадки легкоплавким припоем, наносим флюс, дуем феном (с правильным потоком и температурой воздуха) до посадки чипа на место, проходим сверху обычным паяльником для надежности.

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

Прошивка.

Распиновка JTAG для моего тюнера есть на форуме магазина. Подпаиваемся к контактным площадкам на плате.

Все готово к прошивке.

Запускаем программу.

Выбираем тип процессора в списке. Нажимаем кнопку «Соединиться».

В списке пробегает куча служебной информации, кнопки «Считать» и «Записать» и «Стереть» становятся активными. Обычно рекомендуют прошить только загрузчик, а потом уже через него прошиться обычным образом с USB-флэшки. Но я залил полный дамп, 32 мегабайта - лень было возиться с распаковкой отдельного загрузчика. Прошивка заняла около получаса, результат на фото:

Резюме.

Какие первые шаги должен сделать радиолюбитель, решивший собрать схему на микроконтроллере? Естественно, необходима управляющая программа - "прошивка", а также программатор.

И если с первым пунктом нет проблем - готовую "прошивку" обычно выкладывают авторы схем, то вот с программатором дела обстоят сложнее.

Цена готовых USB-программаторов довольно высока и лучшим решением будет собрать его самостоятельно. Вот схема предлагаемого устройства (картинки кликабельны).

Основная часть.

Панель установки МК.

Исходная схема взята с сайта LabKit.ru с разрешения автора, за что ему большое спасибо. Это так называемый клон фирменного программатора PICkit2. Так как вариант устройства является "облегчённой" копией фирменного PICkit2, то автор назвал свою разработку PICkit-2 Lite , что подчёркивает простоту сборки такого устройства для начинающих радиолюбителей.

Что может программатор? С помощью программатора можно будет прошить большинство легкодоступных и популярных МК серии PIC (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A и др.), а также микросхемы памяти EEPROM серии 24LC. Кроме этого программатор может работать в режиме USB-UART преобразователя, имеет часть функций логического анализатора. Особо важная функция, которой обладает программатор - это расчёт калибровочной константы встроенного RC-генератора некоторых МК (например, таких как PIC12F629 и PIC12F675).

Необходимые изменения.

В схеме есть некоторые изменения, которые необходимы для того, чтобы с помощью программатора PICkit-2 Lite была возможность записывать/стирать/считывать данные у микросхем памяти EEPROM серии 24Cxx.

Из изменений, которые были внесены в схему. Добавлено соединение от 6 вывода DD1 (RA4) до 21 вывода ZIF-панели. Вывод AUX используется исключительно для работы с микросхемами EEPROM-памяти 24LС (24C04, 24WC08 и аналоги). По нему передаются данные, поэтому на схеме панели программирования он помечен словом "Data". При программировании микроконтроллеров вывод AUX обычно не используется, хотя он и нужен при программировании МК в режиме LVP.

Также добавлен "подтягивающий" резистор на 2 кОм, который включается между выводом SDA и Vcc микросхем памяти.

Все эти доработки я уже делал на печатной плате, после сборки PICkit-2 Lite по исходной схеме автора.

Микросхемы памяти 24Cxx (24C08 и др.) широко используются в бытовой радиоаппаратуре, и их иногда приходится прошивать, например, при ремонте кинескопных телевизоров. В них память 24Cxx применяется для хранения настроек.

В ЖК-телевизорах применяется уже другой тип памяти (Flash-память). О том, как прошить память ЖК-телевизора я уже рассказывал . Кому интересно, загляните.

В связи с необходимостью работы с микросхемами серии 24Cxx мне и пришлось "допиливать" программатор. Травить новую печатную плату я не стал, просто добавил необходимые элементы на печатной плате. Вот что получилось.

Ядром устройства является микроконтроллер PIC18F2550-I/SP .

Это единственная микросхема в устройстве. МК PIC18F2550 необходимо "прошить". Эта простая операция у многих вызывает ступор, так как возникает так называемая проблема "курицы и яйца". Как её решил я, расскажу чуть позднее.

Список деталей для сборки программатора. В мобильной версии потяните таблицу влево (свайп влево-вправо), чтобы увидеть все её столбцы.

Название Обозначение Номинал/Параметры Марка или тип элемента
Для основной части программатора
Микроконтроллер DD1 8-ми битный микроконтроллер PIC18F2550-I/SP
Биполярные транзисторы VT1, VT2, VT3 КТ3102
VT4 КТ361
Диод VD1 КД522, 1N4148
Диод Шоттки VD2 1N5817
Светодиоды HL1, HL2 любой на 3 вольта, красного и зелёного цвета свечения
Резисторы R1, R2 300 Ом
R3 22 кОм
R4 1 кОм
R5, R6, R12 10 кОм
R7, R8, R14 100 Ом
R9, R10, R15, R16 4,7 кОм
R11 2,7 кОм
R13 100 кОм
Конденсаторы C2 0,1 мк К10-17 (керамические), импортные аналоги
C3 0,47 мк
Электролитические конденсаторы C1 100 мкф * 6,3 в К50-6, импортные аналоги
C4 47 мкф * 16 в
Катушка индуктивности (дроссель) L1 680 мкГн унифицированный типа EC24, CECL или самодельный
Кварцевый резонатор ZQ1 20 МГц
USB-розетка XS1 типа USB-BF
Перемычка XT1 любая типа "джампер"
Для панели установки микроконтроллеров (МК)
ZIF-панель XS1 любая 40-ка контактная ZIF-панель
Резисторы R1 2 кОм МЛТ, МОН (мощностью от 0,125 Вт и выше), импортные аналоги
R2, R3, R4, R5, R6 10 кОм

Теперь немного о деталях и их назначении.

Зелёный светодиод HL1 светится, когда на программатор подано питание, а красный светодиод HL2 излучает в момент передачи данных между компьютером и программатором.

Для придания устройству универсальности и надёжности используется USB-розетка XS1 типа "B" (квадратная). В компьютере же используется USB-розетка типа "А". Поэтому перепутать гнёзда соединительного кабеля невозможно. Также такое решение способствует надёжности устройства. Если кабель придёт в негодность, то его легко заменить новым не прибегая к пайке и монтажным работам.

В качестве дросселя L1 на 680 мкГн лучше применить готовый (например, типов EC24 или CECL). Но если готовое изделие найти не удастся, то дроссель можно изготовить самостоятельно. Для этого нужно намотать 250 - 300 витков провода ПЭЛ-0,1 на сердечник из феррита от дросселя типа CW68. Стоит учесть, что благодаря наличию ШИМ с обратной связью, заботиться о точности номинала индуктивности не стоит.

Напряжение для высоковольтного программирования (Vpp) от +8,5 до 14 вольт создаётся ключевым стабилизатором. В него входят элементы VT1, VD1, L1, C4, R4, R10, R11. С 12 вывода PIC18F2550 на базу VT1 поступают импульсы ШИМ. Обратная связь осуществляется делителем R10, R11.

Чтобы защитить элементы схемы от обратного напряжения с линий программирования в случае использования USB-программатора в режиме внутрисхемного программирования ICSP (In-Circuit Serial Programming) применён диод VD2. VD2 - это диод Шоттки . Его стоит подобрать с падением напряжения на P-N переходе не более 0,45 вольт. Также диод VD2 защищает элементы от обратного напряжения, когда программатор применяется в режиме USB-UART преобразования и логического анализатора.

При использовании программатора исключительно для программирования микроконтроллеров в панели (без применения ICSP), то можно исключить диод VD2 полностью (так сделано у меня) и установить вместо него перемычку.

Компактность устройству придаёт универсальная ZIF-панель (Zero Insertion Force - с нулевым усилием установки).

Благодаря ей можно "зашить" МК практически в любом корпусе DIP.

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

Вот так нужно устанавливать 18-ти выводные микроконтроллеры (PIC16F84A, PIC16F628A и др.).

А вот так 8-ми выводные микроконтроллеры (PIC12F675, PIC12F629 и др.).

Если есть нужда прошить микроконтроллер в корпусе для поверхностного монтажа (SOIC), то можно воспользоваться переходником или просто подпаять к микроконтроллеру 5 выводов, которые обычно требуются для программирования (Vpp, Clock, Data, Vcc, GND).

Готовый рисунок печатной платы со всеми изменениями вы найдёте по ссылке в конце статьи. Открыв файл в программе Sprint Layout 5.0 можно с помощью режима "Печать" не только распечатать слой с рисунком печатных проводников, но и просмотреть позиционирование элементов на печатной плате. Обратите внимание на изолированную перемычку, которая связывает 6 вывод DD1 и 21 вывод ZIF-панели. Печатать рисунок платы необходимо в зеркальном отображении .

Изготовить печатную плату можно методом ЛУТ, а также маркером для печатных плат , с помощью цапонлака (так делал я) или "карандашным" методом .

Вот рисунок позиционирования элементов на печатной плате (кликабельно).

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

"Прошивка" микроконтроллера PIC18F2550.

Файл "прошивки" - PK2V023200.hex необходимо записать в память МК PIC18F2550I-SP при помощи любого программатора, который поддерживает PIC микроконтроллеры (например, Extra-PIC). Я воспользовался JDM Programmator’ом JONIC PROG и программой WinPic800 .

Залить "прошивку" в МК PIC18F2550 можно и с помощью всё того же фирменного программатора PICkit2 или его новой версии PICkit3. Естественно, сделать это можно и самодельным PICkit-2 Lite, если кто-либо из друзей успел собрать его раньше вас:).

Также стоит знать, что "прошивка" микроконтроллера PIC18F2550-I/SP (файл PK2V023200.hex ) записывается при установке программы PICkit 2 Programmer в папку вместе с файлами самой программы. Примерный путь расположения файла PK2V023200.hex - «C:\Program Files (x86)\Microchip\PICkit 2 v2\PK2V023200.hex» . У тех, у кого на ПК установлена 32-битная версия Windows, путь расположения будет другим: «C:\Program Files\Microchip\PICkit 2 v2\PK2V023200.hex» .

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

Обновление "прошивки" программатора.

Прогресс не стоит на месте и время от времени компания Microchip выпускает обновления для своего ПО, в том числе и для программатора PICkit2, PICkit3. Естественно, и мы можем обновить управляющую программу своего самодельного PICkit-2 Lite. Для этого понадобится программа PICkit2 Programmer. Что это такое и как пользоваться - чуть позднее. А пока пару слов о том, что нужно сделать, чтобы обновить "прошивку".

Для обновления ПО программатора необходимо замкнуть перемычку XT1 на программаторе, когда он отключен от компьютера. Затем подключить программатор к ПК и запустить PICkit2 Programmer. При замкнутой XT1 активируется режим bootloader для загрузки новой версии прошивки. Затем в PICkit2 Programmer через меню "Tools" - "Download PICkit 2 Operation System" открываем заранее подготовленный hex-файл обновлённой прошивки. Далее произойдёт процесс обновления ПО программатора.

После обновления нужно отключить программатор от ПК и снять перемычку XT1. В обычном режиме перемычка разомкнута . Узнать версию ПО программатора можно через меню "Help" - "About" в программе PICkit2 Programmer.

Это всё по техническим моментам. А теперь о софте.

Работа с программатором. Программа PICkit2 Programmer.

Для работы с USB-программатором нам потребуется установить на компьютер программу PICkit2 Programmer. Это специальная программа обладает простым интерфейсом, легко устанавливается и не требует особой настройки. Стоит отметить, что работать с программатором можно и с помощью среды разработки MPLAB IDE, но для того, чтобы прошить/стереть/считать МК достаточно простой программы - PICkit2 Programmer. Рекомендую.

После установки программы PICkit2 Programmer подключаем к компьютеру собранный USB-программатор. При этом засветится зелёный светодиод ("питание"), а операционная система опознает устройство как "PICkit2 Microcontroller Programmer" и установит драйвера.

Запускаем программу PICkit2 Programmer. В окне программы должна отобразиться надпись.

Если программатор не подключен, то в окне программы отобразится страшная надпись и краткие инструкции "Что делать?" на английском.

Если же программатор подключить к компьютеру с установленным МК, то программа при запуске определить его и сообщит нам об этом в окне PICkit2 Programmer.

Поздравляю! Первый шаг сделан. А о том, как пользоваться программой PICkit2 Programmer, я рассказал в отдельной статье. Следующий шаг .

Необходимые файлы:

    Руководство пользователя PICkit2 (рус.) берём или .

Существует довольно много конфигураций различных программаторов, которые позволяют переписать программные наработки в микроконтроллер. Они могут быть различными, рассчитанными на профессионалов или, наоборот, иметь упрощенный интерфейс. К последним программаторам относится и герой этой статьи. Вы узнаете не только, что он представляет собой, но и как сделать программатор 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, и тогда можно наблюдать, на каком ряду кода сейчас программа. Для этого достаточно поднести курсор к ряду, который включает светодиод, и он загорится. Существует ещё много экспериментов. Помните, что для того чтобы что-то сделать, необходимо работать. Пускай продвижение будет медленным, но со временем вы сможете получить именно то, что хотите, главное - не опускать руки и продолжать экспериментирование с упором на теоретическую базу (без неё никак).