|
Xilinx Kintex-7 XC7K70T не определяется по JTAG |
|
|
|
Jan 13 2017, 14:18
|
Злополезный
   
Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188

|
Цитата(Олег Гаврильченко @ Jan 13 2017, 15:25)  Но ПЛИС все равно не определяется оп прежнему. Однако, если поставить щуп осциллографа на линию TCK JTAG, то ПЛИС нормально определяется. Сигналы JTAG проходят через КМОП-буферы SN74LVC2G34DCK. Судя по осциллограммам проходят нормально. В SN74LVC2G34 - 2 канала,.. причём не самых быстрых... а в JTAG интерфейсе: 3 линии идёт к ПЛИС - может быть разбежка между буферами - они же не обязаны быть идентичными. Посмотрите, правильные ли Вы получаете диаграммы TDI/TMS/TCK под ПЛИС ? Исследование схем Xilinx привело нас к использованию SN74AVC / SN74ALVC буферов для JTAG - они вносят меньшую задержку, чем SN74LVC. Естественно, для одного направления передачи данных (TDI, TMS, TCK) мы стараемся использовать общий буфер (SN74AVC8T245). Был у нас интересный случай: после подачи питания на плату iMPACT правильно определял всю цепочку Xilinx ПЛИС (8 шт. Virtex-6 или Virtex-7 не помню), а потом ничего не мог сделать. Оказалось, что TMS (вход буфера) залип на землю, а по включению питания в выходные каскады JTAG интерфейса записывается IDCODE ПЛИС - поэтому идентификация проходила росно 1 раз. Также был другой неприятный случай: развалился блокировочный конденсатор под буфером, да так, что выглядел целым, пока не стали его отпаивать - становишься осциллографом под ПЛИС на TMS и TCK - всё работает, убираешь щупы - глючит. Кстати, а какой JTAG Вы испольуете ?
|
|
|
|
|
Jan 13 2017, 14:23
|

отэц
    
Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684

|
Цитата(Boris_TS @ Jan 13 2017, 17:18)  Также был другой неприятный случай: развалился блокировочный конденсатор под буфером, да так, что выглядел целым, пока не стали его отпаивать - становишься осциллографом под ПЛИС на TMS и TCK - всё работает, убираешь щупы - глючит. ..кстати - а блокировочные конденсаторы на буферах есть(физически)? И ещё - где-то на форуме был случай, у человека цифровой сигнал был проложен рядом с плохоработающим DC/DC - тот помехи наводил на цифру из-за плохой разводки и цифра тоже работала только тогда когда её щупом осцилографа трогали. Иголки помех что стояли на цифровой линии сглаживались входной ёмкостью осцилографа и всё работало. А ещё помню - подтягивающие резисторы может быть неправильных номиналов , вместо Ком , Момы.
--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0 SHA-256
|
|
|
|
|
Jan 13 2017, 14:40
|

Частый гость
 
Группа: Участник
Сообщений: 177
Регистрация: 10-02-15
Пользователь №: 85 052

|
Цитата(Boris_TS @ Jan 13 2017, 17:18)  Также был другой неприятный случай: развалился блокировочный конденсатор под буфером, да так, что выглядел целым, пока не стали его отпаивать - становишься осциллографом под ПЛИС на TMS и TCK - всё работает, убираешь щупы - глючит.
Кстати, а какой JTAG Вы испольуете ? Блокировочный конденсатор - это конденсатор фильтрующий питание микросхемы буфера? Использую XILINX PLATFORM CABLE II. Я установил конденсатор 100пФ между TCK_O и GND. Теперь все работает нормально. Но причина не ясна.
|
|
|
|
|
Jan 13 2017, 15:27
|
Местный
  
Группа: Свой
Сообщений: 491
Регистрация: 16-01-05
Из: Санкт-Петербург
Пользователь №: 1 987

|
Скорее всего, наводки от быстрых фронтов соседей. И могут быть не только, и даже не столько от наплатных источников, сколько от кабелька между адаптером и разъемом на плате. У вас они как соединены: в виде flying leads (отдельными проводочками), или в виде ribbon cable (ленточный плоский кабель)? И еще: в свете такого предположения идея разместить по соседству на разъеме TCK и TDO - плохая (вообще-то, она плохая по любым меркам). Надо было с двух сторон TCK землями или питанием обложить. И еще. TDO тоже нуждается в последовательном согласовании. Кстати, это тоже может повлиять на ситуацию с TCK (поскольку, кроме прочего, уменьшит скорость нарастания фронтов на TDO). Цитата(Boris_TS @ Jan 13 2017, 17:18)  В SN74LVC2G34 - 2 канала,.. причём не самых быстрых... а в JTAG интерфейсе: 3 линии идёт к ПЛИС - может быть разбежка между буферами - они же не обязаны быть идентичными.
Исследование схем Xilinx привело нас к использованию SN74AVC / SN74ALVC буферов для JTAG - они вносят меньшую задержку, чем SN74LVC. Естественно, для одного направления передачи данных (TDI, TMS, TCK) мы стараемся использовать общий буфер (SN74AVC8T245). Ну, это вряд ли. Выставление сигналов в JTAG происходит по спаду TCK, а восприятие - по фронту. Так что при fTCK "без фанатизма" (1-6 MHz) разница в задержках никакого влияния не должна оказывать. Тем более, что ТС снижал частоту TCK. И то, кстати, что это не помогло - еще один аргумент в пользу версии о наводках с фронтов. Цитата(Boris_TS @ Jan 13 2017, 17:18)  Был у нас интересный случай: после подачи питания на плату iMPACT правильно определял всю цепочку Xilinx ПЛИС (8 шт. Virtex-6 или Virtex-7 не помню), а потом ничего не мог сделать. Оказалось, что TMS (вход буфера) залип на землю, а по включению питания в выходные каскады JTAG интерфейса записывается IDCODE ПЛИС - поэтому идентификация проходила росно 1 раз. Что-то здесь не так. Или не совсем точно описано. А как же TAP с залипшим TMS=0 проходил ветку DR-Capture-Shift-Update? Да он бы дальше RT-IDLE не ушел бы. И еще насчет наводок. Они должны быть видны хотя бы в каком-то остаточном виде. Особенно если вы включите щуп в режиме 1:10. Кстати, а вы в каком режиме пробника смотрели TCK_O? 1:10 или 1:1? Если последнее - обязательно попробуйте 1:10.
|
|
|
|
|
Jan 14 2017, 16:57
|
Знающий
   
Группа: Свой
Сообщений: 702
Регистрация: 8-06-06
Пользователь №: 17 871

|
Цитата(Lmx2315 @ Jan 14 2017, 10:25)  ..чтобы статикой не пожечь дорогую ПЛИС по сравнению с дешёвыми буферами. Или чтобы не пожечь её же если "земляной" провод с программатора отпадёт случайно, а комп и плата к примеру будут сидеть на разных розетках. Ну, 7K70T - еще не самая дорогая ПЛИС  А JTAG-интерфейс, как правило, не для использования конечным пользователем. На практике, за годы использования JTAG-а ни один Xilinx не выбило статикой по JTAG-порту. Хотя в целом буферизация вещь полезная, для единственной ПЛИС навешивание буферов скорее всего не оправдано.
|
|
|
|
|
Jan 15 2017, 10:10
|
Знающий
   
Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737

|
Цитата(Олег Гаврильченко @ Jan 13 2017, 17:40)  Я установил конденсатор 100пФ между TCK_O и GND. Теперь все работает нормально. Но причина не ясна. Причина практически ясна. Алга вам все верно ответил. Скорее всего линия TCK не согласована и на ней возникает отражение, что приводит к лишним тактам по TCK. Если осциллографом видите на TCK перегиб или полку на уровне половины питания, то это оно и есть. Когда вы становитесь щупом, то вносите ёмкость и давите эту иголку. Варианы борьбы с этим тоже стандартны: во-первых надо было трассировать эту линию с учетом волнового сопротивления (кстати TMS TDI TDO это не касается, потому что это синхронные сигналы). во-вторых последовательное терминирование - на выходе буфера поставить сопротивление ~25-40 Ом. в-третьих ближе к ноге плис поствить ёмкость чтобы подавить иголку. Обычно хватает ~15пФ.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|