Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: формирование jtag - цепочки
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Sarez
Приветствую ! Скажите , может кому приходилось использовать в разработках более двух устройств , программируемых через JTAG ? Поделитесь пожалуйста , может были какие "подводные камни" при формировании цепочки ( т.е при использовании одного и того же jtaga для нескольких устройств). Или может стоит идти по пути наименьшего сопротивления - ставить два jtag коннектора и не париться ?
makc
Простой пример проблемы: в одной цепочке 3 штуки Xilinx Spartan-3, PLX 9030 и AT91RM9200. При конфигурировании ПЛИС через JTAG с помощью Xilinx iMPACT все нормально, т.к. эта программа позволяет загрузить BSDL-файлы для неизвестных кристаллов в цепочке. Однако если попробовать отлаживать проекты ПЛИС с помощью Xilinx ChipScope Pro, то начинаются проблемы, т.к. он не умеет грузить BSDL-файлы для неизвестных ему кристаллов (а известные ему только ПЛИС и PROM).
Вывод такой - нужно смотреть, какое ПО и какие кристаллы будут в одной цепочке и принимать решение только на основе этой информации.
Sarez
Спасибо ! Впринципе , ситуация немного схожая : в цепочке XPLA3 (Xilinx) и МК LPC2214. Насколько я понял , можно попробовать Xilinx iMPACT ? Или же может есть что-то другое ?
makc
Цитата(Sarez @ Oct 5 2006, 18:24) *
Спасибо ! Впринципе , ситуация немного схожая : в цепочке XPLA3 (Xilinx) и МК LPC2214. Насколько я понял , можно попробовать Xilinx iMPACT ? Или же может есть что-то другое ?


Если найдете BSDL-файл для LPC2214, то с iMPACT проблем не будет. Но остается еще вопрос с софтом, который Вы будете использовать для отладки LPC... Сможет-ли этот софт смириться с наличием в цепочке неизвестного для него кристалла?
Sarez
to maks

Ясно. БОЛЬШОЕ СПАСИБО!
klop
Цитата(Sarez @ Oct 5 2006, 17:57) *
Приветствую ! Скажите , может кому приходилось использовать в разработках более двух устройств , программируемых через JTAG ? Поделитесь пожалуйста , может были какие "подводные камни" при формировании цепочки ( т.е при использовании одного и того же jtaga для нескольких устройств). Или может стоит идти по пути наименьшего сопротивления - ставить два jtag коннектора и не париться ?


Не уверен что втему но стоит буфер(а) на TCK поставить. Ну и когда проект делаеш "втемную" лучше конечно отдельные JTAG коннектооры делать или по крайнней мере иметь возможность перемычками реконфигурировать цепочку.

BSDL то можно и самому написать. А вот когда софтина не знает что бывют цепочки из нескольких устройств...
makc
Цитата(klop @ Oct 5 2006, 18:50) *
Не уверен что втему но стоит буфер(а) на TCK поставить.


Буфера не обязательно, но вот насчет согласующих резисторов подумаю советую. При определенных условиях (высокая частота и проблемы с разводкой) они могут помочь добиться стабильной работы JTAG'a.

Цитата
Ну и когда проект делаеш "втемную" лучше конечно для отдельные JTAGи делать или по крайнней мере иметь возможность перемычками реконфигурировать цепочку.


Я в свое время искал (правда не долго) хорошую альтернативу перемычкам, чтобы можно было удобно исключить выборочный кристалл из цепочки - микросхему-мультиплексор для JTAG'a. Но не нашел. Может есть у какой-нибудь фирмы что-то подобное?
zltigo
Цитата(makc @ Oct 5 2006, 17:35) *
Если найдете BSDL-файл для LPC2214,

В свое время пустой интуитивно и не слишком мучаясь сваял.
LPC c CPLD и FPGA алтерианскими ставятся исключительно в цепочку, ибо удобно!
makc
Цитата(zltigo @ Oct 5 2006, 19:01) *
Цитата(makc @ Oct 5 2006, 17:35) *

Если найдете BSDL-файл для LPC2214,

В свое время пустой интуитивно и не слишком мучаясь сваял.


Если не сложно, выложите в эту тему в общий доступ. Думаю, что это будет полезно.
maksya
Цитата(makc @ Oct 5 2006, 18:54) *
Я в свое время искал (правда не долго) хорошую альтернативу перемычкам, чтобы можно было удобно исключить выборочный кристалл из цепочки - микросхему-мультиплексор для JTAG'a. Но не нашел. Может есть у какой-нибудь фирмы что-то подобное?

Возможно не совсем проникся проблемой, но почему бы не скомандовать "ненужному" кристаллу по JTAG'овски - BYPASS?
makc
Цитата(maksya @ Oct 5 2006, 21:39) *
Цитата(makc @ Oct 5 2006, 18:54) *

Я в свое время искал (правда не долго) хорошую альтернативу перемычкам, чтобы можно было удобно исключить выборочный кристалл из цепочки - микросхему-мультиплексор для JTAG'a. Но не нашел. Может есть у какой-нибудь фирмы что-то подобное?

Возможно не совсем проникся проблемой, но почему бы не скомандовать "ненужному" кристаллу по JTAG'овски - BYPASS?


Чем скомандовать?
maksya
Цитата(makc @ Oct 5 2006, 21:44) *
Чем скомандовать?

Обещаю подумать над этим вопросом. Просто мозг выработал ресурс на сегодня. А пока посмотрите вот эту статью - Виртуальные кнопки и светодиоды, или Неизвестное обо всем известном JTAG-сканировании. Если Вы конечно ее еще не читали smile.gif
klop
Цитата(maksya @ Oct 5 2006, 21:39) *
Цитата(makc @ Oct 5 2006, 18:54) *

Я в свое время искал (правда не долго) хорошую альтернативу перемычкам, чтобы можно было удобно исключить выборочный кристалл из цепочки - микросхему-мультиплексор для JTAG'a. Но не нашел. Может есть у какой-нибудь фирмы что-то подобное?

Возможно не совсем проникся проблемой, но почему бы не скомандовать "ненужному" кристаллу по JTAG'овски - BYPASS?


Встречаются софты которые не знают что такое цепочки устройств.
maksya
Цитата(klop @ Oct 5 2006, 22:16) *
Встречаются софты которые не знают что такое цепочки устройств.

Ну так используйте тот софт, который знает. На мой взгляд мастерить для каждой микросхемы свою цепочку, выводить на собственный уникальный разъем, управлять цепочкой отдельными программными средствами - не самый лучший стиль. В этом случае ломается собственно концепция стандарта JTAG - сделать тестирование доступным даже для малоимущих граждан.
makc
Цитата(maksya @ Oct 5 2006, 22:09) *
Цитата(makc @ Oct 5 2006, 21:44) *

Чем скомандовать?

Обещаю подумать над этим вопросом. Просто мозг выработал ресурс на сегодня. А пока посмотрите вот эту статью - Виртуальные кнопки и светодиоды, или Неизвестное обо всем известном JTAG-сканировании. Если Вы конечно ее еще не читали smile.gif


Читал. И не только ее... smile.gif Еще стандарт читал, правда давно. Вот только проблема в том, что реализации далеко не полностью раскрывают возможности стандарта. Делает, например, некая фирма программу для работы через JTAG с ПЛИС и чихать ей хотелось на то, что в цепочке может быть еще процессор, да и наоборот примеров тоже хватает (если поискать). Вот и получается, что теоретически возможнось есть - а практически не получается. glare.gif


Цитата(maksya @ Oct 5 2006, 22:34) *
Цитата(klop @ Oct 5 2006, 22:16) *

Встречаются софты которые не знают что такое цепочки устройств.

Ну так используйте тот софт, который знает.


Если бы около меня стояла очередь товарищей, предлагающих разный софт, решающий одну и ту же задачу (например, которую решает Chipscope), то я бы с удовольствием выбрал лучший вариант. А пока получается, что для многих задач приходится выбирать в лучшем случае из двух зол. А то и из одной. blink.gif

Цитата
На мой взгляд мастерить для каждой микросхемы свою цепочку, выводить на собственный уникальный разъем, управлять цепочкой отдельными программными средствами - не самый лучший стиль. В этом случае ломается собственно концепция стандарта JTAG - сделать тестирование доступным даже для малоимущих граждан.


Да, все правильно и я тоже пришел к такому выводу. Но вот что интересно: если использовать JTAG для выполнения проверки цепей на плате (контроль соединений и т.п.), то проблемы нет, т.к. есть продвинутые пакеты от UniversalScan и до Asset ScanWorks, которые прекрасно работают с любыми цепочками (только bsdl подавай). Но есть еще внутрисистемные программаторы и отладчики, с которыми дело обстоит несколько иначе...
klop
Цитата(maksya @ Oct 5 2006, 22:34) *
Цитата(klop @ Oct 5 2006, 22:16) *

Встречаются софты которые не знают что такое цепочки устройств.

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


Наверное Вас это удивит но есть достаточное количество чипов из которых аж по два JTAGа торчат.
zltigo
Цитата(makc @ Oct 5 2006, 19:18) *
Если не сложно, выложите в эту тему в общий доступ.

Запросто.
makc
Цитата(zltigo @ Oct 6 2006, 00:12) *
Цитата(makc @ Oct 5 2006, 19:18) *

Если не сложно, выложите в эту тему в общий доступ.

Запросто.


Длина IR была подобрана методом научного тыка? wink.gif
zltigo
Цитата(makc @ Oct 6 2006, 07:09) *
Длина IR была подобрана методом научного тыка? wink.gif

Предсказана и подтверждена экспериментом :-).
makc
Цитата(zltigo @ Oct 6 2006, 09:24) *
Цитата(makc @ Oct 6 2006, 07:09) *

Длина IR была подобрана методом научного тыка? wink.gif

Предсказана и подтверждена экспериментом :-).


В общем, я так и думал. smile.gif

Что касается BYPASS для отдельного кристалла: попробовал сегодня в одной цепочке перевести одну м/сх в BYPASS с помощью UniversalScan, после чего попытался добраться до ПЛИС с помощью ChipScope. Ничего из этого не получилось, т.к. ChipScope пытается самостоятельно сканировать цепочку и выводит упомянутую м/сх из режима BYPASS, после чего заявляет, что он ее не знает. smile.gif В общем, продолжаю искать коммутатор для сигналов JTAG. wink.gif
klop
Цитата(makc @ Oct 6 2006, 08:09) *
Цитата(zltigo @ Oct 6 2006, 00:12) *
Цитата(makc @ Oct 5 2006, 19:18) *

Если не сложно, выложите в эту тему в общий доступ.

Запросто.


Длина IR была подобрана методом научного тыка? wink.gif


Не проще ли открыть документацию?
makc
Цитата(klop @ Oct 6 2006, 12:28) *
Не проще ли открыть документацию?


Проще, но я искал и не нашел. Вы можете сказать, где это написано в документации на LPC?
PS: Смотрел в Datasheet и Users Manual.
klop
Цитата(makc @ Oct 6 2006, 12:39) *
Цитата(klop @ Oct 6 2006, 12:28) *

Не проще ли открыть документацию?


Проще, но я искал и не нашел. Вы можете сказать, где это написано в документации на LPC?
PS: Смотрел в Datasheet и Users Manual.


www.arm.com (кто бы подумал blink.gif ) -> ARM7TDMI-S Technical Reference Manual(Rev4) -> page 5-28
makc
Цитата(klop @ Oct 6 2006, 12:44) *
www.arm.com (кто бы подумал blink.gif ) -> ARM7TDMI-S Technical Reference Manual(Rev4) -> page 5-28


Спасибо, буду знать. smile.gif Этот документ у меня есть, а вот заглянуть в него не догадался. mellow.gif
klop
Цитата(makc @ Oct 6 2006, 12:46) *
Цитата(klop @ Oct 6 2006, 12:44) *

www.arm.com (кто бы подумал blink.gif ) -> ARM7TDMI-S Technical Reference Manual(Rev4) -> page 5-28


Спасибо, буду знать. smile.gif Этот документ у меня есть, а вот заглянуть в него не догадался. mellow.gif


От себя могу добавить что при анализе JTAG потока была выявлена одна инструкция "0111" не упомянутая в этом доокументе.
maksya
Цитата(klop @ Oct 5 2006, 23:01) *
Наверное Вас это удивит но есть достаточное количество чипов из которых аж по два JTAGа торчат.

Действительно удивили smile.gif Буду признателен если кините в меня ссылками на подобные продукты.
klop
Цитата(maksya @ Oct 6 2006, 14:32) *
Цитата(klop @ Oct 5 2006, 23:01) *

Наверное Вас это удивит но есть достаточное количество чипов из которых аж по два JTAGа торчат.

Действительно удивили smile.gif Буду признателен если кините в меня ссылками на подобные продукты.


Ссылкой не кину. Например TNETD5800 (TI) - торчит два JTAGа:
- DSP JTAG
- ARM JTAG

Вот недавно работал на проект(ASIC) в котором кроме всего прочего два MIPS 4K. JTAGи отдельно.
zltigo
Цитата(makc @ Oct 6 2006, 11:20) *
ChipScope пытается самостоятельно сканировать цепочку и выводит упомянутую м/сх из режима BYPASS, после чего заявляет, что он ее не знает. smile.gif

Aaaaa!!!! Вспомнил!!! Я же только начал с пустого, а потом с этим явлением столкнулся и
писал BSD уже с IDCODE_REGISTER и IDCODE_REGISTER2 под LPC2124 и нескольким зарезервированными пинами типа общих, питания.... получалась известный чип, но без доступных пинов. Куда я только это дел - пока не нашел :-( Похоже потер вместе с закончившим свою демо жизнь пакетом.
iosifk
Цитата(maksya @ Oct 5 2006, 22:09) *
Цитата(makc @ Oct 5 2006, 21:44) *

Чем скомандовать?

А пока посмотрите вот эту статью - Виртуальные кнопки и светодиоды, или Неизвестное обо всем известном JTAG-сканировании. Если Вы конечно ее еще не читали smile.gif


Спасибо за то, что Вы это читаете. Сейчас в №9 должна пойти "серия" из статей об отладке проектов в FPGA. Собственно, сильно ничего нового, только описание принципов отладки микроконтроллера в FPGA, в №10 - описание ТАР-контроллера. В № 11 будет описание софта... Сделал небольшой софт на ВСВ6 - скоро его выложу. Это чтобы можно было делать сдвиг команд и данных. Такой несложный отладчик на нижнем уровне. И еще симуляцию в МоделСиме выложу к концу месяца (наверное успею). Проекты с исходниками. Так что если у кого будет желание, то там добавить для сдвига данных для цепочки микросхем - это совсем несложно.
А потом, если время позволит, сделаю проекты и для Ксайлинкса и для Альтеры... Но вот только проблемы со свободным временем....
Если у кого-то есть материалы про USB-JTAG, то рад буду, если поделитесь...
И еще. Может кто-то нашел алгоритмы, как определить НЕИЗВЕСТНЫЕ микросхемы в цепочке программным способом? Ну я знаю, как поставить все микросхемы в Байпасс и определить их число. А вот как определить их тип? Ведь длина IR у всех производителей разная!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.