Щас просто замкнул выходную ногу eeprom на Vdd, и все стало кучеряво - опозналось как "Dual RS232 A". Подоткнул м161, шьет, стервец... Вообщем, вспомнил - я ееprom шил программатором, ибо если программировал утилиткой FTDI, то макрейгоровское ПО ее не признавало. Там в юзерской области что-то прописывается и режимы обеих портов 2232 задаются для каждого. Посему и не хотел переписывать ;)
ЗЫ: Качнул с электроникса свои-же "исследования" двухлетней давности:
Цель: ужна jtag отладка под MIPS - выстрее wiggler... Ну и для ARM тоже...
Вообщем, у меня имеется всего навсего сканы двух сторон платы usbDemon и прошивка EEPROM,
присланная автором первого поста старого топика.
Вот ини: http://www.edaboar …/viewtopic.php?t=78033
Кстати, сканы уж очень смахивают на прототип - нет никакой разводки в части jtag...
(PS: Все ОК - просто там субплата с буфером)
Прошивку в 93с46 надо лить программатотором (MProg.exe от FTDI не катит - что-то неправильно шьет).
Но считывается этой утилитой содержимое EEPROM верно (в соответствующем окошке).
ПРОШИВКА:
0000 : 01 00 AC 08 25 10 00 05 80 2D 08 00 00 02 96 14 .. .. .. .. .. .. .. ..
0010 : AA 1A C4 12 46 00 14 03 4D 00 61 00 63 00 72 00 .. .. .F .. .M .a .c .r
0020 : 61 00 69 00 67 00 6F 00 72 00 1A 03 75 00 73 00 .a .i .g .o .r .. .u .s
0030 : 62 00 44 00 65 00 6D 00 6F 00 6E 00 28 00 74 00 .b .D .e .m .o .n .. .t
0040 : 6D 00 29 00 12 03 30 00 31 00 30 00 30 00 30 00 .m .. .. .0 .1 .0 .0 .0
0050 : 33 00 33 00 32 00 00 00 00 00 00 00 00 00 00 00 .3 .3 .2 .. .. .. .. ..
0060 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. .. .. .. .. ..
0070 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60 0E .. .. .. .. .. .. ..
Одна половина FT2232C (B) сконфигурирована обычным последовательным портом, другая (A) - jtag.
Собрал макетку для экспериментов. Схема подключения типовая для MPSSE режима. Буфер не ставил.
Для питания интерфейсной части микросхемы поставил стабилизатор на 3.3В.
Оба канала запитал от него. По рисунку платы соединил между собой ноги 37,38 (RTS,CTS).
Точку их соединения через резистор 1 кОм и светодиод подключил к +3.3В.
Ногу 33 на GND (CD).
Выводы TDI, TDO, TCK, TMS соединил стандартно к шлейфу через резисторы 51 Ом.
(в оригинале все питается от 5В - потом видимо подсоединяются шлейфы для разных процессоров через разъем
и устанавливается буфер LVC16245)
По фото (если предположить, что U5 - буфер LVC16245), nTRes - это вывод 36 FT2232C. А nReset - 15 (через буферный инвертор -
резистор 3 кОм + n-p-n транзистор).
По крайней мере для ARM... Для MIPS - еще присутствует импульс на выводе 13 (DINT)
На фотографии видно, что задействаны все ноги портов GPIOH0 и GPIOL0. Причем первый (4 ноги) работает на вывод, а второй (4 ноги)
на ввод.
ЗЫ ЗЫ: Похоже 3 входных ноги задействованы для BDM (проследил по фото).
Ноги 39,40 (RXD,TXD) используются в оригинале для считывания микросхемы памяти с криптозащитой
DS2432 от maxim-dallas. TXD(40) через буфер с открытым коллектором и подтягивающий резистор соединен со
входом RXD (39). Микросхема подсоединена DS2432 параллельно. Вообщем стандартное подключение для 1wire.
Библиотека usbdemon.dll от Macraigor (из папки system32) - не что иное, как FTD2XX.dll от FTDI (usbdemon.sys - тоже).
C помощью отладчика IDA легко перчить библиотеку jtag_usb.dll.
Для отладки dll в качестве "host application" в установках отладчика можно выбрать например UsbDemonFinder.exe.
Вообщем как я понял при запуске программ от Macraigor сначала анализируется какое устройство подключено
к USB. Напрямую EEPROM не считывается. После того, как выяснится,
что устройсво соответствует (vid,pid и пр.) подключается нужная DLL (jtag_usb) и из не уже выполняется
процедура чтения серийного номера DS2432.
Запустил я это дело сначала с таблеткой DS1990 - нашел в jtag_usb.dll процедуру считывания серийного номера
1wire микросхем. Далее там проверяется соответствие группового кода 0x33 для DS2432. Заменил на 0x01 -
программа UsbDemonFinder нашла устройство с серийным номером DS1990. Далее я это дело еще упростил - несколько ранее
выполняется вообще проверка наличия 1wire устройства - попатчил - и начало определяться 1wire устройство
с номером FFFFFFFFFFFF. После этого решил, что Ноги 39,40 (RXD,TXD) _можно вообще соединить перемычкой_ (и нужно!).
Потом (как я понял) начинается чтение лицензии из DS2432. Но так как из устройства считываются все 0xFF,
после 2-3 секунд попыток чтения лицензии новый UsbDemonFinder (да и другие программы от Macraigor) находят
устройство "usbDemon" с серийным номером FFFFFFFFFF. (старый UsbDemonFinder определяет как "usbSprite LS")
В UsbDemonFinder можно помигать светодиодом , нажав соответствующую кнопку.
Если поковырять редактором ресурсов UsbDemonFinder.exe, то можно открыть пару кнопочек - вывод флагов и
запись флагов в криптозащищенную память...
Вывод выглядит так: HW: 0003 FLGS: FF FF FF FF FF FF FF FF
Короче после некоторого лечения jtag_usb.dll, устройствао начинает работать...
Из DS2432 считывается инфа, которая потом разсовывается в локальные переменные...
Пробовал патчить, чтобы считывались все 0 и все 0xFF.
Работает - то работает... Но результаты не впечатлили - с процессорами MIPS - тормоза вообще страшные
(wiggler работает намного шустрее), С ARM - быстрее. При старте программ долго и многократно (10-15 сек)
происходит считывание лицензии из устройства (это можно видеть usb сниффером). Кстати скорость TCK
выставляется нормально - от 4 кГц до 6 МГц. (8 скоростей) Правда все новые программы пишут скорости для
нового usb2Demon (на основе EZ-USB), старые кажут нормально...
Вообщем уперся в недостаток информации - "а как это все работает на оригинальном устройстве"???.
СтОит-ли ковырять лицензирование ? Может там собака порылась?- и скорость искуственно занижена из-за некорректной лицензии?
jtag_usb.dll при работе делает попытки обращения к двум файлам : jtag_usb.con и mac_usb.new. (обнаружено Filemonitor-ом)
Они видимо должны создаться при корректном программировании лицензии в утилите UsbDemonFinder.
(PS: ничего не создается - пишется только лицензия в кристалл).
PS:
Короче дивайс работает, но работает медленно по уже упомянутой один раз причине - опрос по USB происходит раз в 2 мс...
И думается мне авторская защита на том и построена - мало запустить дивайс, надо еще и ПРАВИЛЬНО запустить.
Скорее всего есть какие-то недокументированные опции драйвера, которые являются великой тайной ;)
То-есть надо добиться того, чтобы в интервале 2 мс происходил множественный обмен...
PPS:
Все-таки "пакетный" обмен иногда присутствует (судя по осциллограммам)...
PPPS:
Стартует примерно 1.5 сек. Читает "серийный номер", потом читает из дивайса "лицензию" - заполняет структуры в DLL.
Естественно все 0xFF (можно 0x00)...
PPPPS: В ПО от Macraigor есть поддержка автоопределения скорости jtag. Если выставить максимум, а target это не поддерживает,
то скорость автоматом снижается до работоспособной...
EEPROM можно! записать утитой MProg - надо просто подключить без EEPROM, должны стоять самые свежие драйвера от FTDI.
Потом вставить EEPROM в панельку и зашить файл... Серийный номер можно выставить любой...
Автор первого топика имеет железку - прислал мне сканы субплаты в буфером и разъемами.
Прислал содержимое каталога - точно такое же, как и скачанное с сайта...
Прислал screenshot usbdemon_finder c работающей железяки...
Результат: Все работает, но медленно - каждое обращение к jtag выглядит так:
FT_Write()
FT_GetQueueStatus()
FT_Read()
Вроде все правильно, но каждый такой цикл занимает 2мс - интервал опроса USB драйвера...
Вот такие любопытные мессаги прослеживаются в функции InitJtagController:
Host not buffering',0
Host buffering',0
chip flushing',0
chip not flushing',0
WARNING: INTENSIVE LOGGING IS ENABLED : ',0;
WARNING: LOGGING IS ENABLED : ',0
INIT JTAG CONTROLLER: passed',0
Timeout: ',0
seconds',0
Latency: ',0
JTAG Speed: ',0
SLOW MODE on',0
SLOW MODE off',0
Intense logging on',0
CPLD',0
Single chip',0
chip will flush buffer',0
chip will NOT flush buffer',0
Crap in buffer = ',0
bytes due to bit bang mode',0
Вот сравнение с электроды :
------------------------------------------------
[quote="dainis"][quote="Ace-X"]
Can you provide performance results of FT2232? It looks very promising as USB JTAG solution, but I still have no chances to try it on.[/quote]
FLASH Image size 302254 bytes ( 295,17KB), Flash chip M29W320DB
Samsung S3C4530A ARM7TDMI CPU
Performance for 3 different JTAGS, with Macraigor FlashProg:
Wiggler speed=1, JTAG clock 320KHz
Programm/Verify 5,9KB/s Verify 7KB/s
Raven (Amontec Chameleon POD) JTAG clock 8MHz
Programm/Verify 15,5KB/s Verify 16,4KB/s
Macraigor usbDemon (FT2232 chip based)
Programm/Verify 8,9KB/s Verify 12,3KB/s
------------------------------------------------
Попробовал - результаты очень похожи !
Надо пробовать сравнивать с фирменным... Похоже все работает...
-
- Вообщем ждем с нетерпением девайс на FT232R. Лавры "народного" достанутся именно ему (и вам :) Usb программатор в корпусе вилки "А" за 3$ - это крутизна немерянная... - Гудвин(18.11.2008 01:50)
- +232 :)) - MBedder(24.11.2008 20:28)
- Щас даташит курнул - просто идеальная штука для этого дела. 1.8-5В, никаких буферов не надо, ноги отключаются, встроенный стабилизатор на 3.3В могет и наружу вдуть 50мА, бонус - COM порт для отладки. Имхо, с нее и надо было начинать :) - Гудвин(18.11.2008 02:41)
- Да не думал я, что в линейке FT232 чудо такое появится... Дочитался до того, что у неё синхрон есть только когда FT2232 уже дышала. - ReAl(18.11.2008 02:52)
- MM232R в продаже есть (см. ссылку). А чем труден переход с FT2232 на FT232R? - Ксения(18.11.2008 14:01, ссылка)
- MMUSB245RL сегодня (!) появилась в продаже в Москве (см. сcылку), розничная цена одной штуки $24.66 - Ксения(20.11.2008 17:09, ссылка)
- MM232R в продаже есть (см. ссылку). А чем труден переход с FT2232 на FT232R? - Ксения(18.11.2008 14:01, ссылка)
- Да не думал я, что в линейке FT232 чудо такое появится... Дочитался до того, что у неё синхрон есть только когда FT2232 уже дышала. - ReAl(18.11.2008 02:52)
- Щас даташит курнул - просто идеальная штука для этого дела. 1.8-5В, никаких буферов не надо, ноги отключаются, встроенный стабилизатор на 3.3В могет и наружу вдуть 50мА, бонус - COM порт для отладки. Имхо, с нее и надо было начинать :) - Гудвин(18.11.2008 02:41)
- +232 :)) - MBedder(24.11.2008 20:28)
- Вообщем ждем с нетерпением девайс на FT232R. Лавры "народного" достанутся именно ему (и вам :) Usb программатор в корпусе вилки "А" за 3$ - это крутизна немерянная... - Гудвин(18.11.2008 01:50)