Собираем сами SM510PCI (JTAG-эмулятор для TMS320)

Выражаю огромную благодарность
автору проекта Сергею Маркову
за отличную разработку,
за помощь в настройке
и за его бескорыстие.

SM510PCI. Предисловие.
Я ни в коем случае не собираюсь заявлять этой статьей, что знаю SM510PCI лучше, чем автор проекта. Поэтому сначала предлагаю ознакомиться с самим проектом, документацию на который можно найти на сайте САХАРА http://projects.caxapa.ru/index.html?ID=6. Прежде советую прочесть текстовики sm510pci.txt и history.txt, имеющиеся в архиве проекта. В этой статье я лишь делюсь своими впечатлениями, полученными при изготовлении, настройке и эксплуатации нескольких экземпляров SM510PCI, которые наша фирма изготавливала для себя и некоторых сторонних заказчиков. Так уже получилось, что мне пришлось весьма тесно заниматься проверкой этого устройства и быть своего рода бета-тестером.
SM510PCI. Что это такое?
Во-первых, это устройство аналогичное эмулятору фирмы Texas Instruments "XDS510 Emulator", позволяющее внутрисхемно программировать и отлаживать DSP (Digital Signal Processor) серии TMS320 этой же фирмы через JTAG-интерфейс.
Во-вторых, это устройство позволяющее эмулировать JTAG-интерфейсы многих других микроконтроллеров, с помощью которого можно также внутрисхемно программировать и отлаживать их.
В-третьих, это дополнительный высокоскоростной LPT-порт, имеющий стандартные для IBM PC совместимого компьютера адреса.
SM510PCI разработан в виде двух плат(PCI+POD), соединяющихся между собой через LVDS-интерфейс посредством SCSI-кабеля.
Почему двух? Потому что, дополнительный LPT-порт должен быть внутри компьютера, а TARGET-устройство (отлаживаемый процессор или микроконтроллер) должен подключаться к нему кабелем длиной обычно не более 12 см. Так что, подключать TARGET напрямую к разъему на PCI-карте компьютера, который стоит где-то на полке или под столом, мягко говоря, неудобно. Поэтому LPT и разъем подключения кабеля JTAG разнесены между собой некоторое расстояние, которое определяется длиной SCSI-кабеля. А чтобы можно было без особых проблем передавать сигналы на весьма высокой частоте (десятки МГц) применен LVDS (Low Voltage Difference Signal) интерфейс. Корме того, дополнительное удобство состоит еще в том, что подключать TRAGET-устройства к плате POD, можно не выключая компьютера и не опасаясь выхода из строя PCI-карты и самого отлаживаемого процессора/контроллера. Забегая вперед, скажу что я пробовал подключать/отключать саму плату POD от SCSI-кабеля и от TARGET-устройства 'на ходу' без всяких последствий. Хотя если вы не уверены в отсутствии существенной разности потенциалов между питаниями POD и TARGET (напомню, что на общем проводе незаземленного компьютера присутствует половина сетевого напряжения!), то так поступать я не рекомендую.
SM510PCI. Достоинства и недостатки.
В наше время для фирмы, занимающейся разработками, не составляет проблемы купить любое устройство, которое в принципе продается где-либо. И даже Джейсоны-Вейники и доктрина Даллеса этому не помеха :) Проблема обычно не в отсутствии возможности как таковой, а в отсутствии денег для реализации этой возможности. Тем более эта ситуация усугубляется, если разаботкой занимается одиночка. С программой, компилятором, дебаггером можно еще как-то выкрутится - Интернет не без добрых людей, готовых ради самого процесса, сломать какую-нибудь защиту. А вот с железом тут скучно. Если какой-нибудь PonyProg или ByteBlaster MV при наличии деталей можно собрать 'на коленке' за полчаса, то с такими вещами как XDS510 все сложнее - PCI-плату 'на коленке' не изготовишь. Так что готовый для повторения проект это громадное подспорье!
К достоинствам SM510PCI можно отнести:
- совместимость со стандартным JTAG XDS-510;
- дополнительный по отношению к штатному LPT-порт;
- дополнительный LPT-порт работает независимо от XDS-510;
- поддержка всевозможных JTAGов других микроконтроллеров, т.е. многофункциональность устройства;
- широкий диапазон поддерживаемых напряжений питания TARGET-устройств (1,8В...3,6В), причем как для JTAG TMS320, так и для всех остальных JTAG;
- хорошо проработанный проект с полной документацией для самостоятельного повторения;
- наличие драйверов для Windows 2000 и Windows XP и поддержка автором необычных по конфигурации материнских плат;
- ну и наконец невысокая, по сравнению с такими же устройствами себестоимость.
Здесь уместно напомнить в чем заключается многофункциональность SM510PCI. Представте себе, что вы занимаетесь разными проектами или в одном проекте у вас есть и ПЛИС и микроконтроллер. Вам не придется подключать сейчас Xilinx Parallel Download Cable или ByteBalster. А назавтра искать схему MSP430 FET или Wiggler. В SM510PCI они все уже есть! SM510PCI это кроме XDS510 еще и все вышеперечисленные JTAGи. Чтобы подключать SM510PCI к м/с Altera или Xilinx нужно всего лишь иметь соответствующий по распайке кусок кабеля. Переключение же между любыми поддерживающимися интерфейсами происходит программно, достаточно запустить bat-ничек. Лично мной SM510PCI проверен на работоспособность и совместимость с XDS-510, ByteBlaster MV, MSP430 FET, Xilinx Parallel Download Cable III, Macraigor Wiggler (20pin). ByteBlaster II проверял автор проекта. STK200/300 заявлен, но проверялся ли кем-нибудь - неизвестно.
О недостатках SM510PCI.
- несовместимость с 5-ти Вольтовыми JTAG при использовании только одной платы POD с установленной EPM7032BTC. Нужна либо вторая плата POD с CPLD серии MAX7000A, толерантной к 5В, и небольшим изменением схемы, либо внешняя примочка, которая осуществляет сдвиг уровней.
- не поддерживаются драйверы для Windows 9x. Так уж получилось, что автор всю жизнь работал на NT-платформах.
SM510PCI. Самостоятельное изготовление.
Как я уже отмечал выше, проект прекрасно проработан и повторить его не составляет особого труда. Конечно изготовить четырехслойную плату с PCI-разъемом в кустарных условиях малореально. Ее приходиться заказывать на профессиональное производство ПП. Благо сейчас таких производств хватает как в России, так и в Китае. Те платы, что изображены на фото мы заказывали в Ульяновске. Но и в Новосибирске сейчас могут изготовить не хуже. Для одиночного заказа стоимость подготовки к производству довольно кусачая по цене, так что нужно кооперироваться. Двуслойную плату POD изготовить проще.
Иметь на руках печатные платы мало. Требуются еще и детали кой-какие. Проще всего продавцов искать на поисковых серверах типа:
http://www.efind.ru
http://www.einfo.ru
http://www.icmania.ru
По-моему наибольшим дефицитом из комплектующих для покупки в единичных экземплярах является SN74ACT8990FN. Но они вроде есть в ЭФО http://www.efo.ru.
Альтеровские FPGA EP1K30TC144-2 и CPLD EPM7064BTC44-7 (обращаю внимание, что в BOM ошибочно указана EPM7032BTC44-7) мы покупали в фирме 'Точка опоры' http://www.fulcrum.ru/, хотя пришлось 4 недели ждать пока они их доставят со своего европейского склада в Россию. Там же купили конфигурационную EEPROM AT17LV512A-10PI.
М/с LVDS SN65LVDS31D и SN65LVDS32D есть в Платане http://www.platan.ru.
TPS-ки (TPS76333DBV и TPS76325DBV) и одногейтовые 74LVC1G125DBV покупали у Тексасовского дилера - фирма 'Компел' http://www.compel.ru.
Мелочевка типа LM3940-3.3, LMV324ID, BC847, LL4148, а также SMD-конденсаторы и резисторы есть в Промэлектронике http://www.promelec.ru.
Замысловатые SMD-дроссели нашли на сайте SMD.ru http://www.smd.ru/katalog/silxnotonye/index.khtml.
Разъемы BH-10R, BH-14R, MD-50FR, как это и было указано в BOM, брали в Буром Медведе http://www.brownbear.ru.
SW4-4 и SCSI-кабель брали там же.
Вот кварцевых генераторов 100MHz размера HALF-SIZE да еще и на 3.3V пришлось поискать. На сайте фирмы КВАРЦ-1 http://www.quartz1.ru/ их не нашлось, но в конце-концов обошлись однократно программируемыми Епсоновскими генераторами SG-8002DC. Покупали их в фирме Специал-Электроникс http://www.spezial.ru/.
Еще одна поправка к BOM. Указанные в BOM резисторные сборки CAY8 мы не нашли, но вместо них нормально встают CAY16 фирмы Bourns (CAY16-220J4 и CAY16-472J4). Где их покупали я точно не знаю, но информация о них есть на сайте фирмы Аргуссофт http://components.argussoft.ru/. В самом худом случае сборку можно сделать из отдельных резисторов 0603, которые ставяться не как обычно, а боком. Пробовали (в другом проекте) - нормально получается.
Стабилитрон VD2(BZX84C3V6), как оказалось, не нужен. Защита на этом стабилитроне от перенапряжения TARGET не работает как надо, т.к. стабилитроны на малые напряжения вблизи напряжения стабилизации имеют довольно большой ток утечки. В результате получалось, что напряжение питания выходного драйвера не поднималось выше 2.5В при питании TARGET 3.3В. Вместо этого стабилитрона рекомендую подключить диод Шоттки, катодом к штатному питанию POD 3.3В. Такая защита эффективнее.
На этом будем считать комплектацию законченной. Осталось все аккуратно запять и запрограммировать.
SM510PCI. Прошивки.
Для программирования всех микросхем в SM510PCI достаточно иметь ByteBlaster MV, который собирается 'на коленке'. Я взял схему ByteBlaster (только для 5V) на страничке Дмитрия Кузнецова http://www.orc.ru/~dkuzn/blaster1.htm, заменил 74LS244 на 74HC244 и получил ByteBlaster MV (работает от 3V до 5V), который подходит для целей программирования SM510PCI. На форуме сахары уже возникал вопрос о том, как программировать EP1K30? Поэтому объясняю дополнительно. В SM510PCI применены две м/с программируемой логики: FPGA EP1K30 и CPLD EPM7064. Отличие их в том, что CPLD, упрощенно можно представить как Flash, а FPGA как ОЗУ. CPLD программируется наподобие Flash-памяти или EEPROM. FPGA же загружается каждый раз при включении питания, прошивка для нее храниться в конфигурационной EEPROM EPC1PC8 или AT17LV512A. Посему программировать с помощью ByteBlaster MV нужно только кристалл EPM7064BTC44-7 и микросхему EEPROM AT17LV512A.
Для прошивки EPM7064 я использовал простой (вызываемый из командной строки) и бесплатный Altera Jam STAPL Player https://www.altera.com/support/software/download/programming/jam/jam-index.jsp. Правда для него автор сконвертировал прошивку в jam-формат.
Для прошивки AT17LV512A я использовал бесплатный софт, поддерживаемый фирмой 'Точка опоры', с сайта http://lex.iki.rssi.ru/projects/at17load/. Там есть версии и для командной строки и с Windows-оболочкой. Не забудьте только после прошивки установить там же опцию генерации CLK для Altera.
SM510PCI. Установка в системе Windows.
Не знаю как у вас, но у меня с установкой в системе Windows 2000 Pro SP2 не возникло никаких проблем. Пробовал на двух компьютерах с чипсетами Intel. Жизнерадостный Виндовоз сообщил мне, что обнаружил новое устройство и хочет поискать для него драйвер. Надавав ему 'по рукам', я указал откуда нужно брать драйвер. В результате среди системных устройств появились три новых:
- SM510PCI Universal JTAG/Emulation card, по адресу 240h,
- SM510PCI XDS510 compatible emulator,
- SM510PCI Universal JTAG/Emulation Port(LPT3), по адресу 3BCh.
Для LPT я поменял вручную номер на LPT2, чтобы в нумерации логических устройств не было 'дырок'. Все. На этом для меня установка SM510PCI в системе Windows была завершена.
SM510PCI. Конфигурирование устройства.
Для конфигурирования устройства есть утилита sm510ctl.exe. Параметры для ее запуска описаны в sm510pci.txt. Или запустите ее с ключом 'H' или '?' или 'HELP'. Я для себя сделал несколько BAT-файлов, которыми конфигурирую SM510PCI по мере необходимости.
Примеры конфигурирования.
---Для работы с ByteBlaster MV---
sm510ctl.exe -m 0 -tck 1 -b 4 -sld 0 -ce 0 -pe 0
---Для работы с Wiggler---
sm510ctl.exe -m 3 -tck 1 -b 0 -sld 0 -ce 0 -pe 0
---Для работы с MSP430 FET---
sm510ctl.exe -m 2 -tck 1 -b 4 -sld 0 -ce 0 -pe 0
---Для работы с Xilinx---
sm510ctl.exe -m 4 -tck 1 -b 4 -sld 0 -ce 0 -pe 0
---Сброс SM510PCI---
sm510ctl.exe -rm
---Просмотр установок SM510PCI---
sm510ctl.exe -gm
Чтобы специально не вызывать DOS-сессию для просмотра установок, рекомендую дополнить каждый bat-файл еще одной строкой с командой
pause
Эта команда не даст автоматически закрыть окно DOS-сессии и позволит посмотреть результат диагностики или установок при вызове sm510ctl.exe.
SM510PCI. Проверка работоспосбности.
Работоспособность устройства я начал с проверки совместно с EVM-board TMS320VC5402 DSK и CodeComposerStudio ver.2.21. JTAG-кабель делается один-к-одному. На самом EVM нужно только переключить SW1.1 в положение OFF, чтобы отключить встроенный в модуль JTAG. Далее соединяем кабелем 14-пиновые разъемы на плате POD и на DSK. Перед подключением необходимо удостовериться что SW1.1 на плате POD стоит в положении ON.
- Включаем питание TARGET.
- Конфигурируем SM510PCI (например, sm510ctl.exe -m 0 -tck 1 -b 4 -sld 0 -ce 0 -pe 0).
- В CCS Setup выбираем XDS510 Emulator - SAVE and QUIT.
- Запускаем тест (%ccs_path% у меня = e:\ti)
%ccs_path%\cc\bin\xdsprobe.exe -r
если все ОК, то дальше, если же нет, то см. как установлен в системе и стоит ли SW1.1 в положении ON?
- Запускаем тест
%ccs_path%\cc\bin\xdsprobe.exe -y
если все ОК, то дальше, если же нет, то см. в файле board.drv строку
[POD_DRVR] 'sm510drv.dll'
и наличие этой самой DLL-ки в каталоге %CCS_PATH%\cc\bin
- Запускаем тест
%ccs_path%\cc\bin\xdsprobe.exe -i/
если все ОК, то можно запускать CCS и поработать, если же нет, то см. предыдущие советы.
Работосопосбность других JTAGов можно проверить с соотвествующими кристаллами, подготовив кабели по таблице из sm510pci.txt. На плате POD SW1.2 должен быть в положении ON.
MSP430 FET с проверял прямо в рабочем проекте. C помощью SM510PCI в качестве ByteBlaster MV я прошивал оставшиеся м/с AT17LV512A. Xilinx я проверял тоже в рабочем проекте - прошивал CPLD XC9536XL. Wiggler проверял буквально несколько дней назад. Использовал EVM с LPC2129 и среду проектирования CrossStudio. Можно взглянуть на отличие в скорости загрузки и верификации обычного Wiggler-MT от SM510PCI по скриншотам screenshot1, screenshot2, screenshot3. Правда, как пояснил автор проекта скорость работы SM510PCI в режиме эмуляции Wiggler больше зависит от параметра brakes, чем от частоты тактирования.

Предложения.
1. О кооперации. Те, кто имеет желание к совместному изготовлению печатных плат сообщите мне об этом. Заказ на изготовление уже выполняется, но вакантные комплекты еще остаются.
2. Изготовим SM510PCI. В комплект входит полностью собранные и запрограммированные платы PCI и POD, а также SCSI-кабель. Возможно готовое устройство будет комплектоваться платой для согласования с 5-ти Вольтовыми TARGET-устройствами. Заказчики - Welcome! Пишите.

Последнее обновление от 17.10.2004. Добавил rezident.
Сайт создан в системе uCoz