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. Сигналы JTAG подключены к порту PB микроконтроллера AT90USB162 (этот микроконтроллер установлен на макетной плате AVR-USB162). Подключите ножки коннектора JTAG к макетной плате согласно следующей таблице:
[Прошивка 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.
[OpenOCD, установка и запуск на Windows] 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. 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. |