Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Каскадирование JTAG
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Podrezov
Разрабатывается схема с ПЛИС серии Cyclone 3 и контроллер Stellaris Cortex-M3 от TI. И вот по предложению коллеги я решил сократить кол-во разъемов для программирования/отладки до одного.
Конфигурировать ПЛИС намереваюсь через in-system programming , так как указано в даташите или тут:
http://kit-e.ru/articles/memory/2005_2_126.php
И при этом составить каскадную цепь JTAG для программирования контроллера.

Подскажите, если у кого-то есть опыт, заработают ли они вместе. И чем это чревато, например, отсутствием универсального программатора для такого случая, несовместимостью ПО или чем-либо еще
SM
Могу точно сказать, что проблем ни с циклоном, ни со стелларисом не будет, по крайней мере если использовать для стеллариса среду TI Code Composer Studio. В ней можно создавать JTAG-цепочки с байпасами. Тоже касается и квартуса - мультидевайс жтаг чейн в нем поддержан, и даже автодетектируется. И, более того, с некоторыми эмуляторами можно будет и отлаживать TI ARM, и конфигурировать циклон при помощи SVF-плеера, если такой имеется у эмулятора, не перетыкая другой эмулятор - есть положительный опыт в этом деле.

Единственный важный совет - разводите линию TCK аккуратно - от сигнала TCK с разъема TI JTAG к первому девайсу в цепочке, далее от первого девайса к второму, и далее обратно на разъем на TCK_RET, следя за тем, чтобы от этой линии не было длинных отводов в сторону, разводка шла по цепочке от пина к пину.
eugen_pcad_ru
Насколько я помню, возможность "каскадирования" микросхем разных производителей по JTAG-цепочке оговаривается в стандарте IEEE 1532. То есть все микросхемы в Вашей цепочке должны соответствовать требованиям этого стандарта. Если упоминания о нем в документации нет, то можно даже не пробовать.
Если в описаниях ссылки есть, то может быть и можно, но фирменные программаторы не всегда конкретно могут их "понять". То есть лично я бы поставил два разъема. Если места мало, то с малым шагом. А если все-таки возникнет необходимость поэкспериментировать, установил соответствующие джампера.

P.S.: TI в свое время выступал чуть ли не инициатором JTAG-стандарта. Altera тоже по идее должна понимать. Но я могу и ошибатьсяsm.gif Может быть у кого-то есть побольше опыта в данном вопросе.
SM
Цитата(eugen_pcad_ru @ Jan 9 2013, 11:21) *
Насколько я помню, возможность "каскадирования" микросхем разных производителей по JTAG-цепочке оговаривается в стандарте IEEE 1532.

IEEE 1149.1 (или .7)
1532 - это ISP-программирование с использованием JTAG. И не важно, поддерживает ли микросхема 1532 или нет, на каскадировании это не сказывается. Можно спокойно каскадировать ПЛИСы, выпущенные еще до принятия 1532, с теми, которые соответствуют 1532 и с любыми другими девайсами, поддерживающими 1149.1/.7
dvladim
Цитата(SM @ Jan 9 2013, 11:18) *
Единственный важный совет - разводите линию TCK аккуратно - от сигнала TCK с разъема TI JTAG к первому девайсу в цепочке, далее от первого девайса к второму, и далее обратно на разъем на TCK_RET, следя за тем, чтобы от этой линии не было длинных отводов в сторону, разводка шла по цепочке от пина к пину.

А с чего вдруг такие тонкости? По TCK не должно быть иголок, а задержки до разных схем безразличны ибо TDO формируется по заднему фронту, а TDI захватывается по переднему. А чтобы иголок небыло достаточно последовательное терминирование сделать - т.е. сопротивление около источника TCK поставить. Или же я что-то упускаю?
SM
Цитата(dvladim @ Jan 10 2013, 21:18) *
А с чего вдруг такие тонкости? По TCK не должно быть иголок, а задержки до разных схем безразличны ибо TDO формируется по заднему фронту, а TDI захватывается по переднему. А чтобы иголок небыло достаточно последовательное терминирование сделать - т.е. сопротивление около источника TCK поставить. Или же я что-то упускаю?


Потому, что JTAG эмуляторы для процессоров TI работают по сигналу TCK_RET (TCKR/RTCK), при этом только генерируя сигнал TCK, но ничего по нему не делая. Это делается для компенсации задержки в кабеле JTAG и буферах, а также для возможности работы с источником TCK, расположенном на плате устройства (использование выхода TCK эмулятора в качестве источника TCK - это опция) Эти эмуляторы имеют небольшое последовательное терминирование на выходе TCK (33 Ом) и подключаемое параллельное терминирование на входе TCK_RET (120 Ом). Таким образом, если соблюсти разводку по цепочке (а у нас две "длинные линии" - TCK->устройство и устройство->TCK_RET ), как я рассказывал, и не вводить дополнительных терминаторов в схеме, получится оптимальный вариант разводки линии TCK для работы с TI JTAG эмуляторами, гарантирующий устойчивую работу на максимально допустимых частотах TCK - а следовательно и максимальную скорость передачи данных по JTAG. Если же сделать достаточно длинные отводы от данной цепи - то можно получить звон, достаточный для ложных срабатываний JTAG-ов у микросхем (у эмулятора все будет ОК из-за параллельного терминирования). Но, все равно, это приведет к нестабильности сессии эмуляции в лучшем случае, и к полному отсутствию соединения в худшем.

А для байтбластера альтеры этот нюанс значения не имеет, там скорости никакие, и TCK_RET не используется
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.