Программирование ARM AVR-USB162: самодельный JTAG-адаптер opendous Thu, March 28 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

AVR-USB162: самодельный JTAG-адаптер opendous Печать
Добавил(а) microsin   

USB JTAG адаптер opendous-jtag построен на чипе AT90USB162 (на самом деле есть еще opendous на чипе FT2232, так что возможна некоторая путаница). Адаптер opendous-jtag отличается очень простой схемой, исходный код прошивки доступен свободно. JTAG opendous можно использовать как аппаратный внутрисхемный отладчик совместно с системой OpenOCD. В этой статье сделана попытка описать самостоятельное изготовление opendous, как его подключить к компьютеру, как установить драйвер, как запустить OpenOCD и добиться пошаговой отладки ARM в системе программирования IAR Embedded Workbench for ARM (на операционной системе Windows).

[Изготовление opendous]

Как уже упоминалось, схема opendous очень проста. Если взять готовую макетную плату типа AVR-USB162 или AVR-USB162MU, то все изготовление заключается в напайке на макетное поле стандартного 20-pin коннектора "папа", куда будет подключаться кабель интерфейса JTAG.

AVR-USB162-opendous-jtag-IMG 2302 AVR-USB162-opendous-jtag-IMG 2308

Сигналы JTAG подключены к порту PB микроконтроллера AT90USB162 (этот микроконтроллер установлен на макетной плате AVR-USB162). Подключите ножки коннектора JTAG к макетной плате согласно следующей таблице:

1 не подключено 2 не подключено
3 TRST, PB2 4 GND
5 TDI, PB0 6 GND
7 TMS, PB1 8 GND
9 TCK, PB4 10 GND
11 TCK, PB4 12 GND
13 TDO, PB5 14 GND
15 SRST, PB3 16 GND
17 не подключено 18 GND
19 не подключено  20 GND

[Прошивка firmware opendous]

Готовую прошивку можно скачать с сайта opendous (запрос для поиска opendous-jtag site:code.google.com, см. ссылки в разделе Downloads, там будет ссылка на файл наподобие opendous-jtag-at90usb162.hex, прошивка рассчитана на кварц 16 МГц). Можете также скачать исходный код [1] (см. в архиве папку Projects\opendous-jtag), и скомпилировать прошивку самостоятельно. В [1] также есть готовая прошивка Projects\opendous-jtag\opendous-jtag.hex.

Залить прошивку в плату память чипа AT90USB162 не составит никакого труда - это можно сделать с помощью USB бутлоадера FLIP. Процедура подробно описана в [2]. После того, как зальете firmware, Вы получите готовый JTAG opendous. Осталось установить для него драйвер и начать использовать.

[Установка драйвера для opendous]

1. Скачайте LUFA_091223.ZIP [1], распакуйте его, найдите в папке Projects\opendous-jtag\WindowsDriver драйвер для Windows.

2. Подключите Ваш opendous к компьютеру через порт USB. Windows обнаружит новое устройство. Укажите мастеру установки драйвера путь в каталог WindowsDriver. Драйвер установится, и в Диспетчере Устройств появится новое устройство LibUSB-Win32 Devices -> LUFA JTAG.

opendous-driver-install01 opendous-driver-install02 opendous-driver-install03 opendous-driver-install04 opendous-driver-install05 opendous-driver-install06

[OpenOCD, установка и запуск на Windows]

Описывается пример запуска внутрисхемной отладки для ARM7 с использованием OpenOCD 0.7.0 и самодельного JTAG-адаптера opendous.

1. Распакуйте папку openocd-0.7.0 из архива [1] в папку Program Files.

2. Перейдите в папку %ProgramFiles%\openocd-0.7.0\bin, попробуйте запустить файл openocd-0.7.0.exe:

c:\Program Files\openocd-0.7.0\bin>openocd-0.7.0.exe --help
Open On-Chip Debugger 0.7.0 (2013-05-05-10:41)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.sourceforge.net/doc/doxygen/bugs.html
Open On-Chip Debugger
Licensed under GNU GPL v2
--help       | -h       display this help
--version    | -v       display OpenOCD version
--file       | -f       use configuration file < name >
--search     | -s       dir to search for config files and scripts
--debug      | -d       set debug level < 0-3 >
--log_output | -l       redirect log output to file < name >
--command    | -c       run < command >
 
c:\Program Files\openocd-0.7.0\bin>

3. Подключите через USB к компьютеру Ваш адаптер opendous. В Диспетчере Устройств он должен отобразиться как LUFA JTAG. Перейдите в папку c:\Program Files\openocd-0.7.0\bin, запустите интерпретатор cmd, и выполните в консоли команду openocd-0.7.0.exe -f interface\opendous.cfg. Должны отобразиться предупреждающие и информационные сообщения, и сервер OpenOCD останется загруженным в ожидании команд.

...
Warn : No opendous_type specified, using default 'opendous'
Info : opendous JTAG Interface ready
Info : This adapter doesn't support configurable speed
Warn : There are no enabled taps. AUTO PROBING MIGHT NOT WORK!!
...

4. Сервер OpenOCD открывает на прослушивание TCP порты 6666 и 4444 (по умолчанию). К этим портам можно подключиться через утилиту telnet, и получить текстовый командный интерфейс, через который может управляться OpenOCD. Порт 4444 предназначен для взаимодействия с человеком, а порт 6666 предназначен для машинного взаимодействия с отладчиком GDB.

[Устранение проблем]

Q001. Адаптер opendous система Windows видит, драйвер установлен, в Диспетчере Устройств имеется без знаков вопроса устройство LUFA JTAG, но OpenOCD при попытке подключиться к адаптеру выдает ошибку:

C:\Program Files\openocd-0.7.0\bin>openocd-0.7.0.exe -f interface\opendous.cfg
Open On-Chip Debugger 0.7.0 (2013-05-05-10:41)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
Error: Cannot find opendous Interface! Please check connection and permissions.
in procedure 'init'

Проблема может заключаться в том, что для OpenOCD требуется специальный драйвер, через который он мог бы работать с USB-устройством opendous. Решение проблемы было найдено в файле openocd-0.7.0\drivers\libusb-1.0 drivers.txt [3]. Необходимый для opendous драйвер можно установить с помощью утилиты zadig.exe, "libwdi, Windows Driver Installer library for USB devices" (программу zadig.exe можете скачать в архиве [3], см. папку drivers). Процедура следующая:

1. Подключите opendous через USB к компьютеру.

2. Запустите программу zadig.exe.

3. В меню программы Options установите галочку на List All Devices. После этого в выпадающем списке найденных устройств USB выберите LUFA JTAG.

opendous-driver-install-zadig

4. Выберите Driver WinUSB (как на скриншоте), нажмите кнопочку Reinstall Driver. Через несколько секунд нужный драйвер установится. После установки драйвера проблема с подключением OpenOCD к opendous как правило исчезает:

C:\Program Files\openocd-0.7.0\bin>openocd-0.7.0.exe -f interface\opendous.cfg
Open On-Chip Debugger 0.7.0 (2013-05-05-10:41)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
Warn : Adapter driver 'opendous' did not declare which transports it allows; ass
uming legacy JTAG-only
Info : only one transport option; autoselect 'jtag'
Warn : No opendous_type specified, using default 'opendous'
Info : opendous JTAG Interface ready
Info : This adapter doesn't support configurable speed
Warn : There are no enabled taps. AUTO PROBING MIGHT NOT WORK!!
Error: JTAG scan chain interrogation failed: all ones
Error: Check JTAG interface, timings, target power, etc.
Error: Trying to use configured scan chain anyway...
Warn : Bypassing JTAG setup events due to errors
Warn : gdb services need one or more targets defined

Если не получилось с драйвером WinUSB, попробуйте в программе zadig.exe другие варианты драйвера (libusb-win32, libusbK).

Пример настройки отладки в среде IAR можно посмотреть в статье [5].

[Ссылки]

1. LUFA_091223.ZIP - исходный код opendous и готовая прошивка для макетной платы AVR-USB162.
2. Макетная плата AVR-USB162.
3. openocd-0.7.0.zip - исполняемый код OpenOCD, скрипты, документация, драйверы, установщик драйвера zadig.exe.
4. Цоколевка интерфейсов JTAG.
5. OpenOCD: отладка кода в IAR Embedded Workbench

 

Добавить комментарий


Защитный код
Обновить

Top of Page