|
USB<->JTAG, Где есть такие контроллеры ? |
|
|
|
Dec 27 2006, 10:39
|
Частый гость
 
Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088

|
Занимаюсь, находясь в Линуксе, программирование AVR-ок. Может, ARM-ы будут, не знаю. Отлаживать что-то по JTAG-у великогиморно, ибо для отладчика (скажем, GDB) нет способа связи через JTAG с чипом. Знаю, что существуют всякие AVR-ICE и прочие _частные_ решения. Все эти айсы содержат в себе часть отладчика, всё закрыто, не всегда стабильно, и очень специфично. Знаю, что существует ограниченый набор микросхем известной фирмы (что-то помнится FTD*, кажется), который позволяет насколько-то прямо шевелить ножками. Но там непонятно, какие драйверы, да и потом, шевелить ножками программно драйвером, эмулируя JTAG - некошерно и небыстро. Интересно, есть ли что-то, например, срощеный проект USB2 с opencores.org со сдвиговым регистром, для огранизации JTAG, или какой-то готовая микросхема с USB и JTAG, которая даёт возможность драйверу отправлять в него, контроллер, группы байт, который те будет сдвигать в JTAG ? Если такая штука есть, то хорошо: на основе её можно слабать любой JTAG отладчик или ещё что угодно JTAG.
Так вот, есть ли такие проекты или микрухи ? Наверное, если бы я понимал в USB и verilog, я бы сам сделал на FPGA что-нибудь подходящее из проекта с opencores.org, драйвер для линукса и либы для использования точно бы нарисовал, но вот в USB и verilog-е реально не волоку...
|
|
|
|
|
Dec 27 2006, 11:17
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(impatt @ Dec 27 2006, 10:39)  Занимаюсь, находясь в Линуксе, программирование AVR-ок. Может, ARM-ы будут, не знаю. Отлаживать что-то по JTAG-у великогиморно, ибо для отладчика (скажем, GDB) нет способа связи через JTAG с чипом. Вы совершенно правильно указали, что главная проблема с JTAG - закрытость и нестандартность протоколов отладки уровня приложения. Эта закрытость вызвана прежде всего желанием компаний, производящих микроконтроллеры и средства отладки, иметь деньги с инструментария. То есть просто одним сериализатором этот вопрос не решить. Для AVR не опубликованы даже отладочные регистры, поэтому особо лучше ни на что не надейтесь. Для ARM для GDB вроде бы ситуация гораздо лучше.
--------------------
Пишите в личку.
|
|
|
|
|
Dec 27 2006, 11:43
|
Местный
  
Группа: Новичок
Сообщений: 266
Регистрация: 29-11-06
Пользователь №: 22 905

|
Цитата(Oldring @ Dec 27 2006, 10:17)  Для ARM для GDB вроде бы ситуация гораздо лучше. Как я понял, с виглером как минимум проблем быть не должно.
|
|
|
|
|
Dec 27 2006, 12:37
|
Частый гость
 
Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088

|
Цитата(Andy Great @ Dec 27 2006, 10:59)  FT2232C - там есть все для JTAGa. Глядел. Может, конечно, плохо глядел, но мне показалось, что там закрытые драйверы и необходимость шевелить ножками, эмулируя JTAG. Верно ли я понял ?
|
|
|
|
|
Dec 27 2006, 13:00
|
Частый гость
 
Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088

|
Цитата(Oldring @ Dec 27 2006, 11:17)  Цитата(impatt @ Dec 27 2006, 10:39)  Занимаюсь, находясь в Линуксе, программирование AVR-ок. Может, ARM-ы будут, не знаю. Отлаживать что-то по JTAG-у великогиморно, ибо для отладчика (скажем, GDB) нет способа связи через JTAG с чипом.
Вы совершенно правильно указали, что главная проблема с JTAG - закрытость и нестандартность протоколов отладки уровня приложения. Это да, наверное, но имел в виду закрытость драйверов кокретных изделий, которые вы назвали сериализатором. Кстати, название неплохое. Сам JTAG прост, как SPI. Всякие регистры и команды - да, кто-то их прячет. Но если надо, многие вещи можно реверс-инжинирить, как мне кажется. Было бы желание. К примеру, как уж зажопились атмэльщики, но кто-то там навыковыривал из сессии отладки команды, и они перестали быть секретом, по крайней мере, на каком-то этапе. Цитата(Oldring @ Dec 27 2006, 11:17)  То есть просто одним сериализатором этот вопрос не решить. Часть - решить. Когда вопрос останется только за командами и регистрами - может стать проще. Цитата(Oldring @ Dec 27 2006, 11:17)  Для AVR не опубликованы даже отладочные регистры, поэтому особо лучше ни на что не надейтесь. Они не опубликованы просто так, и не факт ,что не будут опубликованы по просьбе трудящихся. Там написано: для 3-d party vendors. Я, например, хочу попробовать побыть кандидатом в эти вендоры  К примеру, с филипсом сходный трюк прокатил на ура (не на тему JTAG). Цитата(Oldring @ Dec 27 2006, 11:17)  Для ARM для GDB вроде бы ситуация гораздо лучше. GDB посылает элементарные команды "держателю" среды исполнения программы. Либо через поток ввода-вывода, либо через TCP. Этот "держатель" должен как-то общаться с микроконтроллером, если речь о микроконтроллере, например. Стало быть, необходима софтина, которая слушает запросы GDB и преобразует их в элементарные действия, специфичные для конкретного микроконтроллера и отправлять их в конкретную модель сериализатора. Так что конкретно с GDB вообще проблем нет. Сам GDB есть и это решает большую часть проблем по отладке. И ещё: универсальный сериализатор, который может быстро и просто работать (USB2, регулируемая скорость тактирования JTAG и так далее) имеет больше шансов на интерес со стороны кого-бы то ни было, а значит, и шанс на их помощь, советы и замечания. Лично мне неинтересно делать очередной айс, в котором будет за каким-то хреном спрятан волшебный сложный алгоритм, могущий, пока не глючит, работать с конкретным чипом в конкретных условиях. Надо простой сериализатор. Драйвер, библиотеки с высокоуровневыми функциями, и gdb-серверы (те "держатели" среды исполнения) для конкретных чипов, сделанные на тех библиотеках - вот что интересно. И ещё: полно JTAG-оснащённых вещей, не являющихся контроллерами, например, ПЛИСы. Там айсы нафик не нужны, имхо. По поводу FTDI или как там их. Некошерно и небыстро шевелить ногами. Например, какой-нибудь быстрый процессор на плате выгребает с быстрого АЦП данные со скоростью 10 мегабайт в секунду. Нужно отлаживать, снимать копию потока к себе на машину. Или, к примеру, надо периодически дампить с платы содержимое памяти размером 64 мегабайта. В реалтайме ногами много не нашевелишь, однако. Тем более, какой-то комрад в этом-же форуме ругается на кривизну драйверов FTDI. Так что FTDI, если исходить из того, что они не предназначены для JTAG, не есть гут. ЗЫ: если бы нужный чип или схема сериализатора существовала, с нормально документированным интерфейсом на уровне USB, я бы занялся написанием драйвера и библиотеки к этому. Купил рассыпухи и всё такое (конечно, жизнь может внести коррективы в такие планы, например, лишить меня свободного времени). Или иначе: я бы затеял открытый проект, запросил бы помощи у спецов в Verilog-е, если бы уже умел написать требуемый софт для устройства.
|
|
|
|
|
Dec 27 2006, 13:01
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(impatt @ Dec 27 2006, 12:37)  Цитата(Andy Great @ Dec 27 2006, 10:59)  FT2232C - там есть все для JTAGa.
Глядел. Может, конечно, плохо глядел, но мне показалось, что там закрытые драйверы и необходимость шевелить ножками, эмулируя JTAG. Верно ли я понял ? Вот только недавно закончил "учебно-боевую стрельбу" с FTDI2232 по JTAG. FTDI дает все драйвера и описания к ним. Программируется очень легко. Есть только вот какие ограничения - нет возможности передать данные блоком больше, чем 64-128 Кбайт. И нельзя делать сдвиг в 1 бит. Первое - поэтому нет возможности грузить FPGA. Я пробовал пару лет назад - у меня не получилось. Я точно не знаю, но мне кажется, что при загрузке нельзя делать переходы автомата в состояние паузы, а потом снова продолжать слать данные. В документации о загрузке такой режим не предусмотрен. Второе, если есть несколько микросхем в цепочке, то начинаются извраты, чтобы сдвигать все кривым способом. Еще хочу сказать вот что. Ходил по выставке ЧипЭкспо, спрашивал, не возьмется ли кто-то производить USB2-JTAG, но чтобы было не дороже 50-70 долл. Никто пока не хочет. А все производители, которых я спрашивал: Аналог, Ксайлинкс, НЕК, Альтера - все закрывают доступ не только к своим регистрам, которые используются для отладки, но и к софту - к описанию драйверов. Объясняю - человек уже купил Ваш адаптер за ххх долл, теперь он хочет проверить плату на припайку. Отвечают - пусть за это заплатит другому изготовителю оборудования... Вот такие дела... А парни из Амонтека клянутся, что их адаптер годится ну прямо на все, но похоже его еще в руках никто не держал...
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Dec 27 2006, 13:50
|
Частый гость
 
Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088

|
Цитата(iosifk @ Dec 27 2006, 13:01)  Цитата(impatt @ Dec 27 2006, 12:37)  Глядел. Может, конечно, плохо глядел, но мне показалось, что там закрытые драйверы и необходимость шевелить ножками, эмулируя JTAG. Верно ли я понял ?
Вот только недавно закончил "учебно-боевую стрельбу" с FTDI2232 по JTAG. FTDI дает все драйвера и описания к ним. Программируется очень легко. Вероятно, пора мне ещё раз поглядеть. Помнится мне, что они там у них только под вин, и/или только скомпилированые. Ни то ни другое не годится. Касательно линукса и закрытого драйвера: это всё равно что скушать булыжник и прислушиваться, как он гремит в желудке. Цитата(iosifk @ Dec 27 2006, 13:01)  Есть только вот какие ограничения - нет возможности передать данные блоком больше, чем 64-128 Кбайт. И нельзя делать сдвиг в 1 бит. Вопрос вовсе не в драйвере. Его написать не так уж сложно. Лишь бы была дока. Цитата(iosifk @ Dec 27 2006, 13:01)  Аналог, Ксайлинкс, НЕК, Альтера - все закрывают доступ не только к своим регистрам, которые используются для отладки, но и к софту - к описанию драйверов. Этого я не знал. Драйверы пусть сами юзают, их дело. А вот описание регистров.... Цитата(iosifk @ Dec 27 2006, 13:01)  Вот такие дела... Уроды.. Ладно. Сенкс за комментарий
|
|
|
|
|
Dec 27 2006, 14:23
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(impatt @ Dec 27 2006, 13:50)  Уроды.. Ладно. Сенкс за комментарий  Если чего нового найдете - напишите. Я сейчас посматриваю на платформу для JTAG-тестирования. Если где есть что-то вроде стартового набора или кто производит плату с USB2 и быстрым процессором и с памятью не меньше чем 100-200 Кбайт или с FPGA и с такой же памятью, то мне было бы интересно сделать проект JTAG-тестера, чтобы не только грузил FPGA - это святое дело, но и чтобы мог тестировать монтаж. А для этого надо вектроа либо очень быстро пересылать из хоста или формировать их в самом тестере. Идеально было бы и обрабатывать их в тестере. Тут все дело в обработке битовых строк по несколько Кбайт длиной... Посматриваю на стартовый набор для BlacFina 537, с Ethernet. Только пока не знаю, будет ли время его поднять. Может где что есть похожее? FTDI запускал под Виндой... Всем удачи и с Новым Годом!
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Dec 27 2006, 15:14
|
Частый гость
 
Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088

|
Цитата(iosifk @ Dec 27 2006, 14:23)  Если чего нового найдете - напишите. Хорошо.
|
|
|
|
|
Dec 28 2006, 06:06
|
Частый гость
 
Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088

|
Цитата(Andy Great @ Dec 27 2006, 21:47)  Ну так гляньте в исходники OpenOCD. Поглядел просто на OpenOCD - хорошая штука. Сенкс за наводку. То, что надо, можно сказать, для начала. Цитата(Andy Great @ Dec 27 2006, 21:47)  А как скомпилированные - так все, не жить? Не знаю, в вопросах жизни и не-жизни не очень понимаю. Отличия закрытого софта от открытого, преимущества того и недостатки другого в различных ситуациях я не стану описывать, пожалуй.
|
|
|
|
|
Dec 28 2006, 06:18
|
Частый гость
 
Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088

|
Цитата(iosifk @ Dec 27 2006, 13:01)  Еще хочу сказать вот что. Ходил по выставке ЧипЭкспо, спрашивал, не возьмется ли кто-то производить USB2-JTAG, но чтобы было не дороже 50-70 долл. Никто пока не хочет. А парни из Амонтека клянутся, что их адаптер годится ну прямо на все, но похоже его еще в руках никто не держал... Конечно, их сериализатор годится для всего, что соответствует JTAG-стандарту. Тем более, что там довольно гибко напряжения настраиваются. Насчёт цены: амонтек-овый девайс стоит 139 евро. Если прикинуть цену комплектухи самодельного сериализатора: USB2-PHY (480Mbit/sec) ~$3, Xilinx Spartan-3 ~$12, флэшка и тактовый генератор для Spartan, положим, ещё $6. В сумме $21. На всякий случай умножаю ещё на 3, чтобы учесть что-то неучтёное, получается $63. Вот столько будет сделать свой сериализатор (*), причём поскоростнее, чем амонтек-овая штучка. У амонтека кишка тонка, видимо, чтобы НЕ использовать FTDI. Или там у них круговая порука, как у операторов сотовой связи и продавцов бензина ?.. (*) - у хорошо сделаного открытого проекта может образоваться интересное свойство: он может начать развиваться дальше силами многих участников.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|