Перейти к содержанию
    

USB-JTAG адаптер

Данная тема является продолжением темы http://forum.electronix.ru/index.php?showtopic=6653

 

Предлагаемый USB-JTAG адаптер был создан для модуля, содержащего два JTAG интерфейса. Первый содержит три PLD фирмы Altera (EPM7064S, EPM7064S, EPM7064AE). Второй содержит два DSP фирмы Analog Devices (ADSP-21062, ADSP21065).

Адаптер был создан по требованию настройщиков прибора, содержащего этот модуль. Для программирования PLD и FLASH памяти для загрузки ADSP модуля им хотелось использовать простую программу и один адаптер, а не устанавливать и осваивать два фирменных пакета (VisualDSP и Quartus) чтобы использовать фирменный эмулятор для ADSP и ByteBlaster для PLD.

Для программирования PLD EPM7064S фирмы Altera использован алгоритм, являющийся универсальным для программирования любой PLD фирмы Altera (и загрузки любой FPGA) через JTAG интерфейс. Число CPLD (FPGA) в JTAG цепочке ограничено только требованиями JTAG.

Quartus позволяет создать выходной файл для программирования CPLD (загрузки FPGA) в формате Serial Vector Format File (.svf). Файл в этом формате содержит команды JTAG для программирования/загрузки одной или нескольких CPLD/FPGA в цепочке JTAG. Программа XL_Loader преобразует JTAG-команды этого файла в команды, выполняемые USB контроллером C8051F320 фирмы SiLabs.

Это краткое описание адаптера и его программного обеспечения. Читайте исходники, задавайте вопросы, улучшайте алгоритм, исправляйте мои ошибки.

XL_Loader.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот и первый апдейт для XL_Loader :

 

1). В схему адаптера добавлены конденсаторы, фильтрующие выбросы по питанию (файл \XL_Loader_Update_1\Schema\Adapter_SCH.pdf). Отсутствие конденсаторов приводит к неработоспособности адаптера если длина кабеля USB больше 1,8 м. Однако не стоит экономить на конденсаторах и при меньшей длине кабеля USB.

Will the USB hardware retry bulk transfers forever?

F320 C2 interface schematic

CP2102 Regulator Output Stability

 

2). SiLabs выпустила новую версию USBXpress ver.2.3. Апдейт содержит новую версию драйверов для Windows (папка \XL_Loader_Update_1\Setup\Driver) и новую версию DLL для связи с драйвером (файл \XL_Loader_Update_1\Setup\SiUSBXp.dll).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А какая получается скорость загрузки (относительно ButeBlaster)?

Дело в том, что SVF может рожать и Impact (Xilinx) (по крайней мере когда писал свой SVF плеер пользовался той же докой), так что думаю Xilinx тоже можно будет грузить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сейчас время программирования трех микросхем EPM7064S в цепочке JTAG - 3 сек. При этом скорость обмена по JTAG 1 Мбит/сек (частота TCK=1 МГц). Можно сделать и 12 Мбит/сек (так было изначально), но особого смысла в этом нет. Основное время при программировании занимает не пересылка данных, а задержки микросхем на готовность к программированию следующих данных. Эти задержки в файле .SVF формируются как выдача определенного числа импульсов TCK в состоянии IDLE JTAG (см. файл \XL_Loader\Docums\epm70xx.svf). При создании файла .SVF вы задаете частоту TCK, которую имеет программатор. Чем выше частота, тем больше импульсов TCK в состоянии IDLE JTAG будет содержать файл .SVF. В то же время, чем выше частота обмена, тем короче должен быть шлейф JTAG от контроллера USB к разъему JTAG на модуле.

 

Но Ваш вопрос очень кстати. Нужно иметь ввиду, что скорость обмена по JTAG в настоящее время равна 1 Мбит/сек и задавать TCK=1MHz при создании файла .SVF.

Изменено пользователем Konst_777

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня нет особого желания разбираться в исходниках, поэтому предполагаю (исходя из заявленных скоростей), что Вы обмениваетесь с контроллером блоками-аргументами SIR и SDR команд.

Когда я писал SVF плеер уткнулся в один неприятный момент, при программировании PROM xc18v02 команда SDR содержит 4096бит и я не смог его целиком засунуть в буфер контроллера, пришлось "лепнину стряпать" а это уже не есть универсальный программатор :(

Если применять методы без исполнения SVF комманд в контроллере (с предварительной загрузкой в буфер данных), тогда, как я не прикидывал, на full speed не получить скорости большей чем через LPT.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сразу отмечу, что я в своем предыдущем сообщении убрал последний абзац. Речь шла о том как "легко" получить скорость обмена по JTAG 6 Мбит/сек. Работы по созданию адаптера были завершены пять месяцев тому назад и, что-то я уже подзабыл. В настоящей версии, при программировании CPLD сигнал TCK формируется программно. Поэтому его частота меняется от 1 до 3 МГц в разных частях программы. При программировании FLASH памяти процессоров ADSP для обмена по JTAG используется SPI порт. При этом скорость обмена по JTAG около 12 Мбит/сек.

 

Программа XL_Loader преобразует формуляры .SVF файла в команды контроллера C8051F320 таким образом, чтобы избежать пересылки низкоуровневых SIR и SDR команд между ПЭВМ и контроллером. Формуляр обмена с контроллером напоминает RLE кодирование изображений.

 

Следует иметь в виду, что программное обеспечение адаптера (software и firmware) используется не столь часто и не так долго, чтобы гарантировать отсутствие любых ошибок. Поэтому я и опубликовал исходники. Это не коммерческий продукт. Это отправная точка для создания Вашего собственного программатора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну что мы "все про Фому да про Ерему".

Если привести программер к виду - через USB только устанавливать состояние и опрашивать JTAG пины, то с учетом накладных раходов USB скорость получется медленнее чем через LPT.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Давно вижу у вас тема не обновлялась. Скачиваний много, а нареканий не видно. Наверное у народа отладочной платы SiLabs нет.

 

Ну а у нас первое нарекание. Так как все для реализации вышепредъявленного устройства у нас имеется (в хорошем смысле слова), то мы постарались применить труды коллеги на практике. Но после обнаружения XL_Loadera (F320 мы естественно прошили, и Silab драйвер поставили) на USB при попытке установки драйвера устройства XP падет :) Синее окно смерти говорит что ошибка вызвана приложением SIUSBXP.sys

Пробовали и с апдейтом и без, а главное на разных машинах. Все одно - синий экран Била.

 

Хочется комментариев.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Давно вижу у вас тема не обновлялась. Скачиваний много, а нареканий не видно. Наверное у народа отладочной платы SiLabs нет.

Для меня тоже загадка, как при общем числе просмотров данной темы 568 , число скачиваний XL_Loader_Update_1.rar может быть равным 1029 . Наверное ссылка на этот Update гуляет по просторам интернета. Зачем? Если нужна новая версия драйверов USBXpress, то проще загрузить USBXpress с сайта SiLabs.

 

Ну а у нас первое нарекание. Так как все для реализации вышепредъявленного устройства у нас имеется (в хорошем смысле слова), то мы постарались применить труды коллеги на практике.  Но после обнаружения XL_Loadera (F320 мы естественно прошили, и Silab драйвер поставили) на USB при попытке установки драйвера устройства XP падет :) Синее окно смерти говорит что ошибка вызвана приложением SIUSBXP.sys

Пробовали и с апдейтом и без, а главное на разных машинах. Все одно - синий экран Била.

 

Хочется комментариев.

В моей практике такого поведения (отчуждения) драйвера SiLabs я не встречал. Сомнений в работоспособности адаптера и firmware нет. Изготовлено около 10 адаптеров. Все работают. На разных компьютерах и с различными версиями Windows: от 98SE до XP.

Впрочем, припоминаю, что встречал нарекания на то, что USBXpress некорректно работал с каким-то chipset-ом материнской платы. На сайте SiLabs.ru, в разделе "Публикации", есть ссылка на разработку USB осциллографа. На этом сайте автор анализирует число проданных осциллографов и проблемы при установки ПО.

В ближайшее бесплатное интернет-время я постараюсь найти точную ссылку. Также, "качну" и проверю, выложенные мной архивы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверил архивы XL_Loader.rar и XL_Loader_Update_1.rar:

1). Деинсталировал установленный драйвер USBXpress (через "Установка и удаление программ" - "USBXpress driver set заменить/удалить");

2). Установил драйвер USBXpress из XL_Loader_Update_1.rar (запустил программу PreInstaller.exe из папки \XL_Loader_Update_1\Setup\Driver);

3). Запрограммировал C8051F320 (файл FIRMWARE.OMF из папки \XL_Loader\Setup архива XL_Loader.rar). Запустил контроллер. Windows запросила драйвер, выбрал "Автоматическая установка...". В ответ на предупреждение о неподписанном драйвере нажал кнопку "Все равно продолжить". Windows создала контрольную точку восстановления и сообщила об успешной установке драйвера и нормальной работе устройства.

4). Создал папку \Test, в которую перенес файл XL_Loader.exe из папки \XL_Loader\Setup архива XL_Loader.rar и файл SiUSBXp.dll из папки \XL_Loader_Update_1\Setup архива XL_Loader_Update_1.rar.

5). Запустил программу XL_Loader.exe. Программа нормально функционировала до выхода из программы. При выходе из программы (вызове функции SI_Close) Windows сообщила о нарушении доступа в модуле SiUSBXp.dll. После замены на старую версию (2.1.0.0) жалоб на SiUSBXp.dll не было.

 

Выводы:

1). Следует использовать старую версию SiUSBXp.dll.

2). На WEB странице, о которой я упоминал в своем предыдущем сообщении приведен опыт работы C8051F320 на разных компьютерах с драйвером от Jungo, не от USBXpress. Так что, на сегодня для меня остается загадкой такое поведение драйвера USBXpress. Пожалуйста, сообщите мне, если у Вас появится какая-то новая информация.

Изменено пользователем Konst_777

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2). На WEB странице, о которой я упоминал в своем предыдущем сообщении приведен опыт работы C8051F320 на разных компьютерах с драйвером от Jungo, не от USBXpress.

'Konst_777' молдаване скоро приедут? хотелось бы посмотреть.....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

'Konst_777' молдаване скоро приедут? хотелось бы посмотреть.....

 

Да, "стерся" web-сайт до непристойности. Надеюсь, что создателю USB осциллографа его детище принесло такой доход, что он сейчас на лазурном берегу в окружении прекрасных девушек...

 

Еще осталась ссылка на USB Осциллограф на сайте дистрибьютера Silabs в России. А вот сам архив с Э3, PCB и ПО для этого осциллографа остался на форумах и у меня где-то на жестком диске.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще осталась ссылка на USB Осциллограф на сайте дистрибьютера Silabs в России. А вот сам архив с Э3, PCB и ПО для этого осциллографа остался на форумах и у меня где-то на жестком диске.

Вот здесь оно. И здесь. И здесь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...