Jump to content

    

Spartan-6 и китайский клон загрузочного кабеля

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

Share this post


Link to post
Share on other sites

Есть ли какие-то новости? Или это конструкция выходного дня, и спрашиваю рановато?

Share this post


Link to post
Share on other sites

Была примерная проблема, с оригинальным программатором, правда в Linux. Переодически преставал программировать, причем цепочку то строил, то нет. Проблема была с драйвером.

Share this post


Link to post
Share on other sites

А в BSDL-файле нет случайно раздела compliance pattern? C текстом, аналогичным нижеприведенному? (взял из первого попавшегося файла)

 

-- Compliance-Enable Description

 

attribute COMPLIANCE_PATTERNS of XC6VLX365T_FF1759 : entity is

"(PROGRAM_B, HSWAPEN) (10)";

Если "да", то для корректной работы JTAG-автомата необходимо эти условия соблюсти, т.е. произвести соответствующие переключения цепей, подходящих к данным пинам.

Share this post


Link to post
Share on other sites
Есть ли какие-то новости? Или это конструкция выходного дня, и спрашиваю рановато?

 

Действительно, конструкция выходного дня.

Снял осциллограммы. Но интерпретировать их пока не могу.

На картинках цикл считывания ID в разных временных масштабах.

Желтая линий - клоки TCK, голубая - TDI, красная - TDO

 

На последней картинке самое начало цикла обмена. Видно, что TDO до некоторого времени в третьем состоянии, потом там появляются данные, потом снова уходит в третье состояние.

 

post-6325-1372405481_thumb.png

post-6325-1372405493_thumb.png

post-6325-1372405504_thumb.png

post-6325-1372405520_thumb.png

 

 

А в BSDL-файле нет случайно раздела compliance pattern? C текстом, аналогичным нижеприведенному? (взял из первого попавшегося файла)

 

-- Compliance-Enable Description

 

attribute COMPLIANCE_PATTERNS of XC6VLX365T_FF1759 : entity is

"(PROGRAM_B, HSWAPEN) (10)";

Если "да", то для корректной работы JTAG-автомата необходимо эти условия соблюсти, т.е. произвести соответствующие переключения цепей, подходящих к данным пинам.

Честно говоря, не очень понимаю, что все это значит. Тем не менее - спасибо - буду разбираться.

Share this post


Link to post
Share on other sites

Это уже какой-то материал. Правда, без waveform'ы TMS разбираться будет плохо, и останется приличный процент гадания на кофейной гуще, но можно попробовать. Однако, если есть возможность снять то же самое, но с TMS,- было бы очень здорово (можно за счет замены TDI линии наTMS - что выдает на TDI iMPACT, мы уже видим).

 

Было бы здорово еще поподробнее рассмотреть во времени (растянуть по времени) зависимости между TCK, TDI, TDO, TMS (по фронтам или спадам драйвится - сейчас непонятно).

 

Кстати, а какой масштаб по оси X (временной)? Интересно в свете проверки рабочих частот TCK.

Edited by Raven

Share this post


Link to post
Share on other sites
Это уже какой-то материал. Правда, без waveform'ы TMS разбираться будет плохо, и останется приличный процент гадания на кофейной гуще, но можно попробовать. Однако, если есть возможность снять то же самое, но с TMS,- было бы очень здорово (можно за счет замены TDI линии наTMS - что выдает на TDI iMPACT, мы уже видим).

 

Было бы здорово еще поподробнее рассмотреть во времени (растянуть по времени) зависимости между TCK, TDI, TDO, TMS (по фронтам или спадам драйвится - сейчас непонятно).

 

TMS досниму.

 

На второй картинке можно разглядеть, что по спадам драйвится.

Насколько я вижу.

 

На 2-ой и 4-ой картинке 2мкс/дел.

 

Клок был 3 МГц. Так и получается.

Share this post


Link to post
Share on other sites

Проверил работу iMPACT'а у себя с моделированием неисправностей типа "нет соединения". Для отладки продуктивнее оказалось использовать функционал <iMPACT Menu> :: Debug -> Chain Integrity Test (что неудивительно, в общем-то, :-) для такой ситуации). Разобрался, что iMPACT тут делает (ничего хитрого, могу изложить подробнее, если надо).

 

В общем, итог такой. Если все JTAG сигналы от кабеля к разъему на плате, кроме TDI, имеют хороший контакт (TDI - no connect), то наблюдается поведение, аналогичное вашему случаю:

Вот лог при попытке сделать Chain Integrity Test

 

Maximum TCK operating frequency for this device chain: 25000000.

Validating chain...

INFO:iMPACT:1206 - Instruction Capture = '111111110101'

INFO:iMPACT:1207 - Expected Capture = '101010XXXX01'

INFO:iMPACT:2130 - Boundary-scan chain test failed . Please check tdi->tdo connection between the cable and device:'1' ( 'xc6slx16').

A problem may exist in the hardware configuration.

Check that the cable, scan chain, and power connections are intact,

that the specified scan chain configuration matches the actual hardware, and

that the power supply is adequate and delivering the correct voltage.

 

И это хорошо объясняет, почему цепочка в самом начале энумерируется, а при попытке выполнить иную задачу все накрывается. Поскольку TCK,TDO и TMS сигналы подключены хорошо, то : 1) переключения в машине состояний TAP'а проходят корректно (TCK, TMS); 2) соответственно, перевод TAP FSM в состояние Test-Logic-Reset и загрузка "инструкции по умолчанию" - IDCODE - тоже проходит нормально; 3) выдвигание содержимого всех IDCODE регистров JTAG-цепочки тоже идет хорошо (TDO предполагаем работающим). А вот биты, которые вдвигаются через TDI и потом ожидаются, в конце концов, на выходе из TDO,- вот они теряются. Вместо них вдвигаются 1-цы. Что мы и видим в логе, и что служит причиной ругани iMPACT'а. Зеленым цветом я подкрасил выдвигаемое в ходе Integrity Test'а защелкнутое содержимое IR'а, а красным - то, что вдвигалось по TDI со стороны кабеля и отвечающие им реальные биты на TDO. И понятно, почему невозможно вдвинуть какую-нибудь JTAG инструкцию со стороны кабеля, даже ту же IDCODE для выполнения IDCODE looping'а (TDI не работает, как положено).

Share this post


Link to post
Share on other sites
Проверил работу iMPACT'а у себя с моделированием неисправностей типа "нет соединения". Для отладки продуктивнее оказалось использовать функционал <iMPACT Menu> :: Debug -> Chain Integrity Test (что неудивительно, в общем-то, :-) для такой ситуации). Разобрался, что iMPACT тут делает (ничего хитрого, могу изложить подробнее, если надо).

 

В общем, итог такой. Если все JTAG сигналы от кабеля к разъему на плате, кроме TDI, имеют хороший контакт (TDI - no connect), то наблюдается поведение, аналогичное вашему случаю:

 

Браво! В точку.

Виноватым оказался переходник, который раньше никогда не использовался. Не был должным образом пропаен контакт TDI (третий контакт слева на фото).

Теперь все работает. Осциллографом смотрел до этого переходника.

 

post-6325-1372800265_thumb.jpg

Share this post


Link to post
Share on other sites

Рад, что помогло.

 

Кстати, китайцы, похоже, еще кое на чем сэкономили. Судя по осциллограмме, на TDO отчетливо видно z-state, а хорошие люди делают pull-up на TDO (4.7 - 10 кОм), поскольку чей-то выход - он же ведь еще и чей-то вход .... :) и негоже, чтобы он болтался в воздухе.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this