В этой статье дан краткий обзор утилиты JTAG Live Buzz и приведена информация по подключению JTAG-адаптеру на основе чипа FTDI.
[Что такое JTAG Live]
JTAG Live это название семейства более дешевых (по сравнению с JTAG ProVision) инструментов Boundary Scan (BS) тестирования от компании JTAG technologies. Все семейство утилит JTAG Live представляет платный пакет JTAG Live Studio. В это семейство также входит одна бесплатная, демонстрационная Windows-утилита JTAG Live Buzz [1]. В целом JTAG Live Studio достаточно продвинутая версия инструментария, которую уже можно использовать для реальной работы по проверке исправности электронных схем. В неё, кроме бесплатной утилиты JTAG Live Buzz, входят платные инструменты.
В пакет JTAG Live Studio входят следующие составляющие:
• Контроллер JTAG Live (USB-адаптер для соединения компьютера с JTAG проверяемой платы) • JTAG Live Buzz • JTAG Live Buzz Plus • JTAG Live AutoBuzz • JTAG Live Clip • JTAG Live Script
Утилита JTAG Live Buzz бесплатная, все остальные инструменты платные, их можно купить как в составе пакета JTAG Live Studio, так и по отдельности. Краткое описание платных инструментов см. во врезке ниже.
JTAG Live Buzz Plus [2] - самая дешевая опция. В то время как Buzz дает возможность пользователю только лишь видеть активность логических уровней на выводах BS-компонентов и проверять отдельные соединения между их выводами, BuzzPlus расширяет эти возможности режимом "seek and discover" (найти и распознать). В этом режиме происходит обучение программы цепям и узлам для заданной цепи схемы - упрощается считывание информации с цепей схемы, дается более продвинутый доступ к выводам BS-компонента.
JTAG Live AutoBuzz [3] - автоматически считывает информационную сигнатуру (делает снимок) всех цепей BS-компонентов "золотой" (т. е. образцовой, заведомо исправной) платы, используя при этом только BSDL-модели BS-компонентов платы. Этот снимок можно сравнить с другими платами, которые проходят проверку, чтобы обнаружить возможные дефекты.
JTAG Live Script [4] - система создания скриптов и команд на языке Python с целью автоматизированной проверки плат с BS-компонентами. Скрипты могут дергать ножками BS-чипа и анализировать на них логические уровни. Можно создавать тесты для так называемых кластеров - частей схемы, которые не содержат BS-компонентов (например АЦП или память), программировать FLASH или Serial EPROM (есть готовая библиотека для тестирования не-BS компонентов с интерфейсами I2C и SPI). Встроенный редактор кода Python упрощает подготовку тестовых последовательностей и сбор результатов тестирования. Поддерживается тестирование с помощью режимов эмуляции процессоров (в интеграции с CoreCommander).
Создание модулей тестирования позволяет повторно использовать написанные процедуры теста в других разработках. Открытый язык Python дает возможность применять тысячи дополнительных библиотек, которые можно получить от пользовательского сообщества.
JTAG Live CoreCommander [5] - подпрограммы CoreCommander получают доступ к ядру процессора (ARM, PPC, X-scale, Cortex и т. п.), используя его функции эмуляции/отладки (эти функции встроены в большинство ядер RISC и DSP). CoreCommander был разработан с целью скоростного тестирования плат с использованием ядра процессора, проверки кластеров, приложений программирования FLASH и EEPROM-памяти. Предоставляются два режима работы:
• Interactive – прямое управление ядром процессора со стороны пользователя. • Python embedded – управление может быть оформлено как скрипт в виде завершенной программы.
Поддерживаются многие популярные процессоры ARM и DSP. Модули CoreCommander покупаются отдельно для каждого ядра.
JTAG Live Clip [6] - основанный на векторах апгрейд для создания и сохранения тестов платы. Поддерживается неограниченная глубина и ширина шаблона сканирования, управление выводами и анализ их сигналов. Отображение сигналов наподобие логического анализатора покажет разработчику, что что происходит с сигналами на плате. Опции "Compare On" (сравнить с ..) и "Set Breakpoint" (поставить точку остановки теста) дают полный контроль над процессом тестирования.
Все утилиты, входящие в семейство JTAG Live, поддерживают работу с адаптерами других производителей:
• JT3705/USB Explorer • JT37x7 DataBlaster • Altera controller • Xilinx USB Controller (наподобие Platform Cable USB DLC9G, DLC10 и других) • Xilinx USB Controller, серверная версия • Xilinx LPT Controller • Xilinx LPT Controller, серверная версия • FT2232 Controller (JTAG-адаптер на основе чипа FT2232D или FT2232H компании FTDI)
[JTAG Live Buzz]
JTAG Live Buzz можно скачать на сайте jtaglive.com (требуется регистрация) и использовать бесплатно. Файл установки jtaglive_setup.exe весит около 45 мегабайт. Утилита при установке привязывается к MAC-адресу сетевой карты компьютера. Чтобы узнать MAC-адрес, можно использовать либо команду ipconfig /all, либо специальную программу GetMacAddress.exe (скачивается с того же сайта jtaglive.com). MAC-адрес нужно скопировать в буфер обмена без разделителей (только HEX-символы), после этого в личном кабинете появится возможность скачать файл лицензии jtaglive.lcs, который нужен для активации JTAG Live. Следует использовать MAC-адрес того сетевого адаптера, через который компьютер соединен с Интернет.
[Запуск JTAG Live Buzz с адаптером на чипе FT2232H]
Для подключения к тестируемой плате я использовал платку [7]. Оказалось не все так просто, нужно знать некоторые тонкости, которые подсказал мне инженер техподдержки JTAG technologies. Итак, процесс по шагам:
1. Подключите плату на чипе FT2232H к проверяемой плате сигналами, перечисленными в таблице ниже. Всего понадобятся 5 проводов, из которых 4 сигнальных и один земля. В качестве тестового образца проверяемой платы я взял макетку на процессоре ADSP-BF538 [8].
Сигнал JTAG
Ножка FT2232H
Цвет провода
Контакты J13 JTAG платы [8]
TCK
ADBUS0
оранжевый
8
TDI
ADBUS1
желтый
12
TDO
ADBUS2
зеленый
14
TMS
ADBUS3
синий
6
GND
GND
черный
1
2. Подключите через USB плату на чипе FT2232H к компьютеру. Если EEPROM настроек на плате чистый, то она должна отображаться в Диспетчере Устройств в разделе "Контроллеры USB" как два канала USB-преобразователя интерфейсов A и B, и в разделе и "Порты (COM и LPT)" как два COM-порта.
Если Вы подключаете чип FT2232H к компьютеру первый раз, то понадобится скачать и установить драйверы FTDI.
3. Откройте свойство устройства USB Serial Converter A, перейдите на закладку "Сведения", в выпадающем списке выберите "Описание устройства, предоставленное шиной". Скопируйте в буфер обмена текст значения свойства, для этого кликните правой кнопкой на значении и выберите "Копировать". У меня этот тект был "Dual RS232-HS", но возможно здесь будет другое текстовое описание (в зависимости от используемого чипа и его настроек в EEPROM).
4. Запустите JTAG Live, выберите в меню Instrument -> Properties. Откроется диалог настройки JTAG-подключения. На закладке Interface выпадающем списке выберите FT2232 Controller. В поле ввода "Port or Instance" введите следующий текст:
0,Dual RS232-HS
Тест после запятой это то, что было скопировано в буфер обмена на шаге 3. Цифра 0 до запятой вероятно соответствует номеру USB-устройства на шине хоста. Кликните OK для закрытия окна диалога настройки.
5. Выберите в меню Project -> Start ..., откроется мастер открытия проекта. Выберите вариант "Create a new JTAG Live Project" и кликните Next. Поле ввода "Project Name:" введите произвольное имя проекта и в поле ввода "Location:" выберите папку для размещения проекта. Можно ничего не менять, оставить все по умолчанию, тогда проект получит имя Project 1 и будет сохранен в папке документов пользователя. Кликните Next.
6. На этом шаге создания проекта нужно ввести составляющие TAP-устройств цепочки сканирования JTAG. Исправная цепочка может быть просканирована автоматически, для этого кликните на кнопку "Scan Chains".
Через секунду отобразится просканированная JTAG-цепочка. В моем случае это был один чип ADSP-BF538:
JTAG Live уже сумела по идентификатору чипа обнаружить некоторые сведения о нем, но нужна более подробная информация в виде BSDL-модели чипа. Это мы выполним на следующем шаге.
7. Найдите BSDL-файлы с описанием каждого чипа в JTAG-цепочке. В моем случае это был процессор Blackfin компании Analog Devices, поэтому я скачал с сайта analog.com файл adspbf538bf538f.bsd.
Выполните двойной клик на чипе, откроется диалог свойств устройства. Кликните на кнопке справа от поля ввода "BSDL File:" и выберите BSDL-файл модели чипа. Свой файл adspbf538bf538f.bsd для удобства я положил в папку с моделями c:\Program Files (x86)\JTAG Live\models\bsdl\. После выбора файла кликните на OK.
Станет активной кнопка Next, кликните на неё, затем кликните Finish.
8. Сразу откроется окно мастера создания задачи тестирования (Task). В этом окне имя можно оставить по умолчанию (Task1), тип задачи для JTAG Live Buzz доступен только один - Buzz. Это демонстрационная задача. Кликните OK.
На этом создание проекта завершено.
Работоспособность JTAG-цепочки можно проверить выбором пункта меню Task -> Test Infrastructure. Здесь будет прочитан TAP-регистр идентификатора процессора, и проверен на совпадение с идентификатором, который находится в BSDL-файле.
Чтобы тест инфраструктуры успешно, мне пришлось немного подправить BSDL-файл, чтобы номер ревизии кристалла модели процессора в файле соответствовала номеру ревизии, считанному из процессора:
attribute IDCODE_REGISTER of ADSP_BF538: entity is
-- "0001" & -- Silicon Revision ID
"0100" & -- Silicon Revision ID - правильный номер ревизии кристалла
[Работа в JTAG Live Buzz]
В левой панели окна JTAG Live Buzz будет отображаться дерево объектов. Разверните узел DEV1_1, откроется список выводов чипа, с которыми можно работать - проверять на них уровни, а некоторыми можно управлять как выходами. На картинке ниже показан список ножек чипа процессора ADSP-BF538.
Список ножек оформлен в виде таблицы с двумя колонками: Name и Pin id.
Name. В колонке Name отображены иконки, показывающие тип вывода, вместе с номером вывода на корпусе. В моем примере у процессора был корпус 316-Ball CSPBGA (17mm x 17mm), и поэтому номера выводов состоят из букв и цифр. Иконки слева от номера вывода носят следующий смысл:
Сигнал интерфейса JTAG, TAP pin (TDI, TDO, TMS, TCK, TRST)
Ножка, уровень которой BS-тест может считывать (вход)
Ножка, уровнем которой BS-тест может управлять (выход)
Ножка, которая может работать в двух направлениях (как вход или как выход)
Вывод питания
Вывод земли (GND)
Аналоговый вывод (тактирование, управление регулятором напряжения и т. п.)
Pin id. В колонке Pin id показаны идентификаторы выводов в виде мнемонического обозначения функций ножек процессора. Таблицу можно рассортировать по полю Name или по полю Pin id путем клика на плашку в верхней части таблицы. Это функция удобна для быстрого поиска нужного вывода в большом списке.
Демонстрационный тест. Выполните двойной клик на задаче Buzz в дереве объектов проекта, откроется окно настройки теста Buzz. Здесь есть возможность выполнить 3 вида теста:
Watch: просмотр в реальном времени уровня сигнала на выводе процессора, который может работать как цифровой порт. Перетащите интересующий вывод из таблицы в поле Watch -> Pin, после чего станет активна кнопка Watch, и в поле Value будет отображаться уровень сигнала на этом выводе.
Buzz: проверка прохождения логического сигнала между выводами BS-устройства. В этом тесте есть два поля Pin, куда следует перетащить два разных сигнала, между которыми должно быть исправное соединение. После этого станет активной кнопка Buzz с желтой молнией. Клик на этой кнопке проверит прохождение сигнала. Если сигнал проходит, то связь между сигналами окрасится зеленым цветом, если же не проходит, то красным.
Measure (измерение): эта функция позволяет проверить узел разветвленной цепи, к которой подключено несколько выводов - один из них выход, другие входы.
Область Constraints (ограничения) используется в комбинации с опцией Measure, например она будет применяться только после завершения действия Measure. Используйте constraints для деактивации любых активных устройств, которые могут повлиять на выполнение измерений. Это может произойти, например, когда активное устройство одновременно использует ту же самую цепь (цепи), уровни на которой Вы хотите проанализировать. Например, можно избежать конфликта выходов цепи путем удержания сигнала выборки chip select (CS) или разрешения выхода output enable (OE) этого активного устройства в лог. 1 или лог. 0 (в зависимости от того, какой уровень нужен) во время Ваших измерений. Перетащите вывод (выводы) в область constraints, и выберите value. Вы также можете добавить поясняющую пометку, чтобы любой пользователь мог узнать, почему было установлено ограничение.
[Общие выводы]
Для чего на практике может пригодиться JTAG Live Buzz? По сути ни для чего, только немного поиграться с аппаратурой JTAG для BS-тестирования. Можно проверять уровень на любой ножке, прохождение сигнала между ножками, и на этом все. Нельзя проверять замыкание между выводами, нельзя писать скрипты для тестов.
Полная версия JTAG Live Studio имеет в своём составе более полезные инструменты в виде приложения AutoBuzz, которое сравнивает соединения тестируемого изделия и "золотой" платы, и Script, позволяющий писать функциональные тесты на Python. Здесь можно сделать хотя бы тест внутренних соединений с диагностикой, реализовать прошивку FLASH, проверку памяти SDRAM. Цена JTAG Live Studio на момент написания статьи составляет 5 тысяч евро.
Однако JTAG Live Studio все же предлагает минимальный уровень автоматизации тестов. Сложные изделия тестируют в старшей системе - JTAG ProVision. Она практически полностью автоматизирована, поддерживает большое число TAP-портов. Включает в себя огромную библиотеку не-JTAG компонентов, которые можно также протестировать. Цена JTAG ProVision на момент написания статьи составляет 20 тысяч евро.
Не понятно какой же порт USB все таки указывать. Где его найти? в моем случае получается строчка "0,FT2232H device", но программа ругается на отсутствие устройства.
Евгений, в инструкции всё чётко описано. Стоит попробовать поменять цифру в имени с 0 на 1. А быть может, у вас совсем новые драйвера FTDI? Есть возможность поставить 2.12.0.0?
Не понятно какой же порт USB все таки указывать. Где его найти? в моем случае получается строчка "0,FT2232H device", но программа ругается на отсутствие устройства.
Комментарии
Евгений, в инструкции всё чётко описано. Стоит попробовать поменять цифру в имени с 0 на 1. А быть может, у вас совсем новые драйвера FTDI? Есть возможность поставить 2.12.0.0?
в моем случае получается строчка "0,FT2232H device", но программа ругается на отсутствие устройства.
RSS лента комментариев этой записи