Jump to content

    
Sign in to follow this  
ivanoffer

Не грузится Kintex-7 по JTAG

Recommended Posts

При отсутствии таких данных, я поставил бы пока все же на Signal Integrity проблему.

Тоже склоняюсь к этой версии.

 

Последовательно согласующие резисторы не хотите все же поставить возле драйверов линий? .

Со стороны ПЛИС стоит резисторная сборка по 10 Ом, ставил и 22 Ом. Вы предлагаете поставить со стороны JTAG загрузчика?

 

Да, и какая сейчас у вас частота TCK? Уменьшить радикально не пробовали - до 50-100 кГц? (прошу извинить, если где-то уже писали об этом - я все сообщения тотально не прочитывал).

 

Пробовал на 750кГц и 6МГц. Как уменьшить частоты до 50-100 кГц не знаю, т.к. этим вопросом никогда не задавался.

Edited by ivanoffer

Share this post


Link to post
Share on other sites

Типовая проблема Signal Integrity на JTAG - звон TCK. Снижением частоты это не лечится, но щуп осциллографа должен был исправить картину.

Не исключено, что проблема не в JTAG, а глобальнее - например, источники проваливаются при попытке запуска конфигурации.

 

Я бы предложил вот что:

1. Радикально уменьшить объем битстрима - на проекте-пустышке включить компрессию битстрима. Шанс появления ошибки передачи данных намного снизится.

2. Попытаться поработать с флешкой через Vivado. Хотя бы просто сделать Blank Check - загрузится образ программатора или нет? Пробовать все варианты - Pull Up/Down/None.

3. Если по второму пункту ну никак - зашить флешку внешним программатором и посмотреть, будет ли ПЛИС конфигурироваться из нее. М.б. проблема глобальнее JTAG-а и ПЛИС вообще не конфигурится.

Share this post


Link to post
Share on other sites
Типовая проблема Signal Integrity на JTAG - звон TCK. Снижением частоты это не лечится, но щуп осциллографа должен был исправить картину.

Не исключено, что проблема не в JTAG, а глобальнее - например, источники проваливаются при попытке запуска конфигурации.

Провал напряжения в момент запуска конфигурации не подтвердился - этот вариант проверил одним из первых.

 

Я бы предложил вот что:

1. Радикально уменьшить объем битстрима - на проекте-пустышке включить компрессию битстрима. Шанс появления ошибки передачи данных намного снизится.

2. Попытаться поработать с флешкой через Vivado. Хотя бы просто сделать Blank Check - загрузится образ программатора или нет? Пробовать все варианты - Pull Up/Down/None.

3. Если по второму пункту ну никак - зашить флешку внешним программатором и посмотреть, будет ли ПЛИС конфигурироваться из нее. М.б. проблема глобальнее JTAG-а и ПЛИС вообще не конфигурится.

 

1. Проверю.

2. Чтобы работать с флеш через Vivsdo, надо сначала самой Vivado загрузить свой поток ПЛИС (образ программатора), что не проходит. Варианты с Pull Up/Down/None

проверял.

3. Загрузить флеш внешним программатором - не, так не получится, она с термападом и снять-установить как-то не радует. При включении питания вижу попытку

ПЛИС загрузиться с флеш - есть такт, сигнал CEn. Попытка продолжается до тех пор, пока не пытаюсь загрузиться по JTAG, при этом линия такта флеш и CEn подтягиваются

к постоянной единицы. ПЛИС верно отрабатывает режимы загрузки.

 

Попробую снизить максимально частоту TCK с установкой резисторной сборки большего номинала где-то 100-200 Ом - будет функция фильтрации сигналов.

Может кто знает - нет ли в Vivado опции проверки канала JTAG - прогнать данные в канале на предмет сбоев.

Share this post


Link to post
Share on other sites
Со стороны ПЛИС стоит резисторная сборка по 10 Ом, ставил и 22 Ом. Вы предлагаете поставить со стороны JTAG загрузчика?

1. Резистор последовательного согласования ставится как можно ближе к источнику сигнала в линии. Со стороны внешнего разъема/кабеля для TDO я у вас вижу такой резистор (и надеюсь, он располагается непосредственно у пина, из которого он генерируется на этой стороне от level shifter'а). Номинал - обычно в диапазоне 22 .. 51 Ом, в зависимости от характеристического сопротивления линии. Что касается входов (TCK, TMS, TDI), то у нормальных кабелей-адаптеров согласующие резисторы должны быть внутри на этих линиях. Так ли это в вашем случае? Что за кабель у вас, кстати?

 

2. Но в вашем случае есть еще и участок от level shifter'а до FPGA, где level shifter является генератором для TCK, TMS, TDI. А резисторная сборка у вас монолитная. Спрашивается, к чему ближе она у вас стоит: к level shifter'у, или к FPGA? Другими словами, на чье последовательное согласование она работает - указанной троицы или TDO? И кстати - велик ли и замысловат ли путь распространения сигналов на этом участке (всех 4-х касается)? Хоть я бы предпочел поставить раздельные резисторы для этих сигналов с индивидуальным оптимальным расположением, в вашем варианте лучше бы им быть согласователями для TCK, TMS, TDI. А на самом деле? И наконец, last but not least, как говорят наши партнеры :), что у вас за level shifter стоит?

 

 

Пробовал на 750кГц и 6МГц. Как уменьшить частоты до 50-100 кГц не знаю, т.к. этим вопросом никогда не задавался.

Если наши проблемы связаны с TCK, а именно,- с его фронтами, их искажениями типа "седло" из-за отражений и т.п., то, как справедливо заметил Flood уменьшение частоты TCK картину не изменит (фронты-то останутся :-) в любом случае, только реже будут идти). Уменьшением частоты мы можем проверить, нет ли проблем типа "не успевает установиться TDI перед фронтом TCK". Пренебрегать этим не стоит, тем более что проверить можно быстро.

 

 

Попробую снизить максимально частоту TCK с установкой резисторной сборки большего номинала где-то 100-200 Ом - будет функция фильтрации сигналов.

Только тогда выставляйте TCK на 750 кГц (или меньше, если разберетесь, как это сделать - я не подсказчик, т.к. с Xilinx давненько не работал). И возможно, достаточно будет ограничиться вариантами 33-51 Ом - т.к. 100-200 - это может оказаться чересчур.

 

Может кто знает - нет ли в Vivado опции проверки канала JTAG - прогнать данные в канале на предмет сбоев.

В ISE, я точно помню, был какой-то функционал для отладки JTAG. Был какой-то Application Note на эту тему. С Vivado еще не имел случая познакомиться, но ожидал бы и в нем найти что-то для этого случая.

Share this post


Link to post
Share on other sites

Получил вторую плату. Работает как и задумывалось. По JTAGу загружается, из SPI грузится при включении питания.

На новой плате стоит ПЛИС выпуска конца 16-го года, на нерабочей 13-го, видимо что-то с ней изначально было не так.

К маркировке вопросов нет, смущает залежалость, как-бы ПЛИС ходовая и такой древней на правильных складах не должно

было остаться.

Всем ответившим спасибо.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this