Внутрисхемный эмулятор

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

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

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

Итак, есть спрос - сделать несложный (относительно, конечно) внутрисхемный эмулятор для 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

JTAG Probe

STK500

TCK (Pin 1)

PC2 (Port C)

TDO (Pin 3)

PC4 (Port C)

TMS (Pin 5)

PC3 (Port C)

TDI (Pin 9)

PC5 (Port C)

Vtref (Pin 4)

V target

GND (Pin 2)

GND

nSRST (Pin 6)

RST (Port E)

Индикация

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

  • 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)

Замечанияи предложения можно оставить на форуме

 

   Дмитрий Михайлов.