Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не работает цепочка JTAG
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
ishergin
Здравствуйте!

Ситуация такова. Есть самодельный кабель Parallel 3 и плата со спартан 2 и флэшью. ПЗУ соединена с ПЛИС согласно схеме из даташита на xc18v01 (JTAG цепока, плис в режиме master serial, пробовал и режим bondary-scan). Когда в iMPACT делаю initialize chain появляется ОЧЕНЬ длинная цепочка неизвестных устройств. Я пробовал подключать порт JTAG отдельно к ПЗУ и ПЛИС. Если JTAG подключен только к ПЗУ - то все прекрасно определяется и прошивается (кабель значит точно рабочий?!?!). Если ж подключить только к ПЛИС - то iMPACT определяет одно незвестное устройство...... Питание на ПЗУ и ПЛИС в порядке, дорожки точно целые (все проверял), ПЛИС в режиме Master Serial выдает 4 МГц клок и загружается с ПЗУ (смотрел сигналы осциллоскопом)...
Даже не знаю что еще можно проверить.... на выводе TDO ПЛИС что то непонятное - два коротких нуля... как я понимаю этого мало для получения идентификатора smile.gif ... Мог ли у ПЛИС сдохнуть JTAG порт?
snake (o)
Подохнуть не мог.
Попробуй с другим кабелем и c Flash Programmer от макрейгора. Утилитка JTAGScanChainAnalyzer.exe.
Если покажет 2 девайса... то все работает smile.gif
ishergin
Цитата(snake (o) @ Mar 19 2006, 16:49) *
Подохнуть не мог.
Попробуй с другим кабелем и c Flash Programmer от макрейгора. Утилитка JTAGScanChainAnalyzer.exe.
Если покажет 2 девайса... то все работает smile.gif

Другого кабеля не будет unsure.gif (а иначе зачем самому было делать) А где достать эту утилитку?(поисковики ничего не нашли) Кстати на форуме ктото говорил что не пользуется импактом... эта утилитка его заменит? А каковы конкретные причины неработоспособности могут быть?
snake (o)
Утилитка в составе Flash Programmer - скачать можно с www.macraigor.com

Ты скажи что именно тебе надо - если прошить флешку - то поможет
Bar
Была немного похожая проблема, неправильно читался idcode. Потом все оказалось в соединениях. Можно попробывать отладить с помощью impact , там есть режим, позволющий подавать произвольные значения на TMS, TCK и TDI, проверить, что они приходят на микросхемы.
DS
Я вот не помню, как у Spartan2, но по моему JTAG включается только когда FPGA запрограммировано и JTAG в ПЛИС разрешен. Во всяком случае я встречался с тем, что пока не зальешь flash и не перезапустишь, jtag толком не работал.
ishergin
Цитата(Bar @ Mar 26 2006, 03:10) *
Была немного похожая проблема, неправильно читался idcode. Потом все оказалось в соединениях. Можно попробывать отладить с помощью impact , там есть режим, позволющий подавать произвольные значения на TMS, TCK и TDI, проверить, что они приходят на микросхемы.


Я пробовал - все сигналы доходили

Цитата(DS_ @ Mar 26 2006, 14:05) *
Я вот не помню, как у Spartan2, но по моему JTAG включается только когда FPGA запрограммировано и JTAG в ПЛИС разрешен. Во всяком случае я встречался с тем, что пока не зальешь flash и не перезапустишь, jtag толком не работал.


спартан загружался с флэши в режиме master serial, причем нормально загружался и работал. но цепочка не определялась... на выходе TDO ПЛИС какойто странный сигнал (два коротких нуля)... Щас делаю новую плату... на днях узнаю заработает или нет smile.gif
bbg
Эх, ностальжи, тоже паял цепочку 18v01+xc2s50 когда-то..

Была такая ситуация года четыре назад, как я понял, дело действительно в соединениях, качестве и количестве питания, в общем надо облагородить внешнюю и внутреннюю электромагнитную обстановку smile.gif

Кстати, заодно рекомендую (уже писал как-то об этом) поставить в третий кабель диоды Шоттки, вместо подобия 1n4148 - как раз с такими мне достался. В-общем проблем с этим изделием с тех пор не было.
ishergin
Цитата(bbg @ Mar 29 2006, 12:49) *
Эх, ностальжи, тоже паял цепочку 18v01+xc2s50 когда-то..

Была такая ситуация года четыре назад, как я понял, дело действительно в соединениях, качестве и количестве питания, в общем надо облагородить внешнюю и внутреннюю электромагнитную обстановку smile.gif

Кстати, заодно рекомендую (уже писал как-то об этом) поставить в третий кабель диоды Шоттки, вместо подобия 1n4148 - как раз с такими мне достался. В-общем проблем с этим изделием с тех пор не было.

smile.gif В кабеле у меня стоят диоды с барьером шотки (1n5xxx не помню smile.gif) ). Соединения впорядке вроде, по крайной мере сегодня новую плату сделал (трассировка отличается от старой), все припаял, работает ТОЧНО также как и старас (т. е. вместо цепочки из 2х устройств определяется очень длинная). Опять перерезал дорожки и прошиваю только ФЛЭШЬ smile.gif Я почти на 100% уверен что дело в кабеле, щас он 1 метр. Пока нету времени укоротить и проверить sad.gif но попробыват стоит.

PS. Я еще отпаял кондеры по 100 пф из кабеля, тоже самое.
DS
Я не помню точно, но по-моему в Spartanе надо явным образом в коде разрешать JTAG, иначе он не включается.
ishergin
Цитата(DS_ @ Mar 31 2006, 01:35) *
Я не помню точно, но по-моему в Spartanе надо явным образом в коде разрешать JTAG, иначе он не включается.


То есть я должен установть перемычки на M0 M1 и M2, а какже быть тогда с режимом Master Serial и загрузкой из Flash???

PS. bb-offtopic.gif Поздравьте меня - у меня сегодня заработала моя PCI плата с ядром от SET w00t.gif . Свое ядро попозже зашью smile.gif
похметолог
Цитата(ishergin @ Apr 1 2006, 15:14) *
Цитата(DS_ @ Mar 31 2006, 01:35) *

Я не помню точно, но по-моему в Spartanе надо явным образом в коде разрешать JTAG, иначе он не включается.


То есть я должен установть перемычки на M0 M1 и M2, а какже быть тогда с режимом Master Serial и загрузкой из Flash???

PS. bb-offtopic.gif Поздравьте меня - у меня сегодня заработала моя PCI плата с ядром от SET w00t.gif . Свое ядро попозже зашью smile.gif


Если JTAG всё ещё не работает - проверь следующее. У старых Спартанов на пине PROG должен быть высокий уровень, а пине INIT низкий всё время в режиме JTAG.
M0, M1, M2 - не имеет значения - цепочка должна работать.
А вообще открой BSDL файл для этого чипа и почитай коментарии.
Удачи.
iosifk
Цитата(ishergin @ Mar 19 2006, 14:28) *
Мог ли у ПЛИС сдохнуть JTAG порт?


Про Спартанца не скажу, работал с Виртексами.
Но, чтобы помочь хоть чем то:
попробуйте понизить частоту JTAG в импакте,
проверьте, что разрешен JTAG - там же.
В импакте есть режим тестирования по JTAG, можно поработать им.
попробуйте почитать только ID от FPGA.

Есть программа UniversalScan. Она где-то тут есть в закромах. При ее помощи очень удобно проверять работоспособность цепи и вообще пины устройства.
У меня на сайте есть статейка про JTAG. Там немного засвечено об этом. И еще. Зачем Вам кабель в 3 метра? 0,5 метра от силы. Куда больше? Дело скорее всего в этом.
Удачи!
ishergin
Цитата(iosifk @ Apr 12 2006, 11:26) *
Цитата(ishergin @ Mar 19 2006, 14:28) *


Мог ли у ПЛИС сдохнуть JTAG порт?


Про Спартанца не скажу, работал с Виртексами.
Но, чтобы помочь хоть чем то:
попробуйте понизить частоту JTAG в импакте,
проверьте, что разрешен JTAG - там же.
В импакте есть режим тестирования по JTAG, можно поработать им.
попробуйте почитать только ID от FPGA.

Есть программа UniversalScan. Она где-то тут есть в закромах. При ее помощи очень удобно проверять работоспособность цепи и вообще пины устройства.
У меня на сайте есть статейка про JTAG. Там немного засвечено об этом. И еще. Зачем Вам кабель в 3 метра? 0,5 метра от силы. Куда больше? Дело скорее всего в этом.
Удачи!


smile.gif Кабель уже 1 метр (меньше пока не пробовал). Universal Scan уже есть, только не выяснял может ли работать он с кабелем Parallel 3 или надо новый собирать (на это вобщемто щас времени нет sad.gif ) Как понизить частоту JTAG и включить его в импакте я не нашел huh.gif (может надо в ISE указывать? FPGA Startup CLock у меня щас стоит в CCLK, если я поставлю JTAG Clock то будет ли работать режим master seial ? по моему это не то.. )
Спасибо.
похметолог
Цитата(ishergin @ Apr 12 2006, 14:26) *
Цитата(iosifk @ Apr 12 2006, 11:26) *

Цитата(ishergin @ Mar 19 2006, 14:28) *


Мог ли у ПЛИС сдохнуть JTAG порт?


Про Спартанца не скажу, работал с Виртексами.
Но, чтобы помочь хоть чем то:
попробуйте понизить частоту JTAG в импакте,
проверьте, что разрешен JTAG - там же.
В импакте есть режим тестирования по JTAG, можно поработать им.
попробуйте почитать только ID от FPGA.

Есть программа UniversalScan. Она где-то тут есть в закромах. При ее помощи очень удобно проверять работоспособность цепи и вообще пины устройства.
У меня на сайте есть статейка про JTAG. Там немного засвечено об этом. И еще. Зачем Вам кабель в 3 метра? 0,5 метра от силы. Куда больше? Дело скорее всего в этом.
Удачи!


smile.gif Кабель уже 1 метр (меньше пока не пробовал). Universal Scan уже есть, только не выяснял может ли работать он с кабелем Parallel 3 или надо новый собирать (на это вобщемто щас времени нет sad.gif ) Как понизить частоту JTAG и включить его в импакте я не нашел huh.gif (может надо в ISE указывать? FPGA Startup CLock у меня щас стоит в CCLK, если я поставлю JTAG Clock то будет ли работать режим master seial ? по моему это не то.. )
Спасибо.


Кабель, конечно, не мешает укоротить. Но проблема, скорее всего в том что я сказал.
1. Поставь 1k pull-up на PROG и 1к pull-down на INIT на своих Зайлинксах.
2. Проверь termination на своей плате на линиях TCK и TMS. Попробуй сначала последовательно вставить резистор эдак 47ом или больше прямо у JTAG разъёма. Если это не поможет, попробуй посадить 68ом последовательно с 100pF между TCK и GND
Удачи.









И ещё - как понизить частоту TCK - можно отредактировать BSDL файл.
Находишь в этом файле такую строку:
attribute TAP_SCAN_CLOCK of TCK : signal is (2.0e6, LOW);

и вместо 2.0e6 (2mHz) ставишь, к примеру, 1.0e6 или 0.5е6.

Но, как правило, проблемы не с частотой, а с фронтом сигнала.
ishergin
Цитата
Кабель, конечно, не мешает укоротить. Но проблема, скорее всего в том что я сказал.
1. Поставь 1k pull-up на PROG и 1к pull-down на INIT на своих Зайлинксах.
2. Проверь termination на своей плате на линиях TCK и TMS. Попробуй сначала последовательно вставить резистор эдак 47ом или больше прямо у JTAG разъёма. Если это не поможет, попробуй посадить 68ом последовательно с 100pF между TCK и GND
Удачи.

И ещё - как понизить частоту TCK - можно отредактировать BSDL файл.
Находишь в этом файле такую строку:
attribute TAP_SCAN_CLOCK of TCK : signal is (2.0e6, LOW);

и вместо 2.0e6 (2mHz) ставишь, к примеру, 1.0e6 или 0.5е6.

Но, как правило, проблемы не с частотой, а с фронтом сигнала.


Поставлю и проверю (на PROGRAMM резистор стоит) Насчет клока что так его менять надо - не знал smile.gif А импакт пишет в строке состояния что частота 200 кГц... Еще непонятно: в BSDL файле для xc18v01 частота указана 1.00e+07 (10 мгц!!!) для спартан 2 33.0e6 !!!! wacko.gif . Странно все это.
Спасибо!

PS. Все фронты хорошие smile.gif
похметолог
Частота в BSDL поставлена не от балды. У Спартанца максимальная частота выше, так как у него структура силикона рассчитана на более высокие частоты.
Говоря про фронт я имел в виду ещё и следующее: TCK и TMS фронты должны приходить на чип синхронно. Поэтому важно как разведены дорожки на плате. Для этих двух сигналов дорожки должны иметь равную длину, сигналы не должны иметь отражений. проверь форму сигнала на чипе хорошим осциллографом - нет ли двойных пиков или ещё какой бяки.
Волощенко
К ishergin, так чем дело закончилось?!
У меня сейчас аналогичные симптомы. Спаяли пару плат на Spartan-3E с XC3S100E и XCF01S (и в обоих аналогичные проблемы). Конфигурирую с помощью Parallel Cabel III (питание 3.3В), в режиме Boundary-Scan Mode от iMPACT 7.1.04i. Также, как описано в предыдущих постах, определяет кучу (более 10) устройств. Когда подключаюсь только к одной Flash, то ее определяет свободно, стирает и пр. А в цепочке вот не работает. Последовательные резисторы поставил везде, где можно (фронты нормальные).
На выводах после включения питания: PROG_B - 3.3В, INIT_B - 3.3В, DONE - 0В.
Подскажите, кто знает !!! unsure.gif
Да, еще, что это есть BSDL файл, где он находится? Уже нашел, скачал свежий из Xilinx, продовал уменьшить скорость для TAP_SCAN_CLOCK of TCK : signal is (10.0e6, both) до 10.0е5, но положительного результатат не получил.
ishergin
Цитата(Волощенко @ Dec 21 2006, 14:08) *
К ishergin, так чем дело закончилось?!
У меня сейчас аналогичные симптомы. Спаяли пару плат на Spartan-3E с XC3S100E и XCF01S (и в обоих аналогичные проблемы). Конфигурирую с помощью Parallel Cabel III (питание 3.3В), в режиме Boundary-Scan Mode от iMPACT 7.1.04i. Также, как описано в предыдущих постах, определяет кучу (более 10) устройств. Когда подключаюсь только к одной Flash, то ее определяет свободно, стирает и пр. А в цепочке вот не работает. Последовательные резисторы поставил везде, где можно (фронты нормальные).
На выводах после включения питания: PROG_B - 3.3В, INIT_B - 3.3В, DONE - 0В.
Подскажите, кто знает !!! unsure.gif
Да, еще, что это есть BSDL файл, где он находится? Уже нашел, скачал свежий из Xilinx, продовал уменьшить скорость для TAP_SCAN_CLOCK of TCK : signal is (10.0e6, both) до 10.0е5, но положительного результатат не получил.


Какой BSDL грузится и откуда импакт по моему пишет в логах, я не помню точно...

Проблему решить не удалось, в итоге я продключил JTAG только к FLASH xc18v01, ПЛИС загружала оттуда конфигурацию сама. Сильно укорачивать кабель я так и не пробывал =). Скорее всего дело в разводке ПП...
Волощенко
К ishergin, спасибо. Еще, пожалуйста, уточните в части схемной реализации. Вы отдельно программируете Flash, а затем "физически" переподстыковываете ее к FPGA, чтобы загружать? То есть не понятен вопрос перекоммутаций у Вас на плате.
ishergin
Цитата(Волощенко @ Dec 22 2006, 12:45) *
К ishergin, спасибо. Еще, пожалуйста, уточните в части схемной реализации. Вы отдельно программируете Flash, а затем "физически" переподстыковываете ее к FPGA, чтобы загружать? То есть не понятен вопрос перекоммутаций у Вас на плате.

Ничего не переподстывовывается smile.gif ПЛИС подключена к FLASH в режиме serial master, FLASH же программируется по JTAG, из-за этого, в частности, для загрузки конфигурации в ПЛИС надо выключить и выключить питание платы.
alvol
Цитата(ishergin @ Dec 23 2006, 07:29) *
Ничего не переподстывовывается smile.gif ПЛИС подключена к FLASH в режиме serial master, FLASH же программируется по JTAG, из-за этого, в частности, для загрузки конфигурации в ПЛИС надо выключить и выключить питание платы.

Можно ли ссылку на схему или же саму схему, где раскрыты основные связи между FLASH, FPGA и JTAG? И кто из них первый перед JTAG по линии данных? Что-то многовато вариантов гуляет в XAPP-ах и pdf-схемах старт-китов, а в конечном итоге...
ishergin
Цитата(alvol @ Dec 23 2006, 15:31) *
Цитата(ishergin @ Dec 23 2006, 07:29) *

Ничего не переподстывовывается smile.gif ПЛИС подключена к FLASH в режиме serial master, FLASH же программируется по JTAG, из-за этого, в частности, для загрузки конфигурации в ПЛИС надо выключить и выключить питание платы.

Можно ли ссылку на схему или же саму схему, где раскрыты основные связи между FLASH, FPGA и JTAG? И кто из них первый перед JTAG по линии данных? Что-то многовато вариантов гуляет в XAPP-ах и pdf-схемах старт-китов, а в конечном итоге...


Самый первый пост smile.gif
Цитата
... ПЗУ соединена с ПЛИС согласно схеме из даташита на xc18v01 (JTAG цепока, плис в режиме master serial, пробовал и режим bondary-scan)...


Т.к. я использовал xc18v01, то логичнее было взять схему подключения из ее даташита.....
ishergin
Год спустя, эпопея продолжается...
Попросили изготовить еще один экземпляр платы моего диплома, что собственно говоря я и сделал. Самым интересным оказалось то, что цепочка JTAG теперь прекрасно работает на новой плате. Единственное отличие: исправлена маленькая ошибка, были перепутаны 2 ноги ПЛИС, поэтому правильный монтаж был выполнен в виде 2-х коротких (5 мм!!) проводов. В новой плате эта ошибка исправлена... и все заработало.
Но всетаки странно... smile.gif
grudinin
Цитата(ishergin @ Apr 27 2007, 17:25) *
Год спустя, эпопея продолжается...
Попросили изготовить еще один экземпляр платы моего диплома, что собственно говоря я и сделал. Самым интересным оказалось то, что цепочка JTAG теперь прекрасно работает на новой плате. Единственное отличие: исправлена маленькая ошибка, были перепутаны 2 ноги ПЛИС, поэтому правильный монтаж был выполнен в виде 2-х коротких (5 мм!!) проводов. В новой плате эта ошибка исправлена... и все заработало.
Но всетаки странно... smile.gif

Была похожая проблема с отладочной платой, на которой стоял xc2s200 и флеш...Импакт обнаруживал длинную цепочку из флешей и вис...Что-бы этого избежать, необходимо выставить режим JTAG, импакт прочитает плис+флеш, при прошивке плиски необходимо для флеши организовать "макетный" msk-файл и наоборот, если хотите корректно прошить флеш, нужно плиске организовать bit файл...Так написано в даташите к отладочной плате blink.gif
cpl
Всем привет ! 1111493779.gif
Сталкнулся с подобной проблемой !
(то определит только флешку, то 3 непонятных девайса.....)

цепочка: TDI - xcf01s + spartan3 - TDO

Проблема началась после перехода с USB на LPT програматор(взял готовый из набора), (с USB соотвественно все работает) c LPT отказалось,
оказалось что входные буфера(LPT програматора) плохо воспринимали уровень 2.5в поменял местами микросхемы в цепи:
TDI - spartan3 + xcf01s - TDO
все заработало. maniac.gif lol.gif Пол дня потратил.... beer.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.