Перейти к содержанию
    

Проблемы с программированием JTAG цепочки

Здравствуйте.

Имеется устройство содержащее несколько плат с плисами соединённые в цепочку следующим порядком: EPM1270 - EP1C6 - EP3C25 - EP3C25 - EP3C25.

post-30171-1447188363_thumb.jpg

У каждого циклона своя EPCS16, на выводах MSEL выставлен режим AS. Выводы эти подключены непосредственно к уровням, без резисторов.

Всё это дело нормально определялось квартусом. А потом стали вылезать неприятности.

Сначала был обнаружен интересный момент: если залит в EP1C6 прошивку, то все последующие попытки будь то автоопределение, либо прошивка других кристаллов оказывались бесполезными - цепочка не обнаруживалась. Хотя отладчик jtag её через раз видит. Если же сначала шить другие кристаллы, то никаких проблем, пока очередь не дойдёт до первого циклона. Приходится заливать *.sof, в противном случае замена соотвествующей EPCS-ки на чистую, т.к. возможность программирования теряется напрочь. При этом запрограммированный (неважно *.sof или *.jic) кристал EP1C6 вполне себе выполняет загруженный в него проект.

Второй случай с другим экземпляром данного устройства произошёл такой. Цепочка перестала определятся, отладчик изредка обнаруживал один из треьих циклонов. Виновником оказалась предпоследния плата с кристаллом EP3C25. У него все выводы (кроме питания и тех что имели внешнюю подвязку) находились, видимо, в 3-ей состоянии. На них было примерно от 0,5 до 1,5В. CONF_DONE - 0, nSTATUS - 0. Принудительный перевод nCONFIG в ноль ничего не давал. Всё питание на месте, не просажено и потребление в норме.

В чём может быть проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То что с начала все было нормально, а потом полезли глюки, говорит скорее о том, что просто где-то непропай. Возьмите и прогрейте все паяльником (если не BGA конечно).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема с блокированием цепочки после прошивки EP1C6 одинаково присуствует в четырёх экземплярах устройства. Корпуса все TQFP и их производные, пайка ручная. У ЕР3С25 площадка на дне припаяна. Четыре одинаковых непропая маловероятны.

Замечено, что если держать ЕР1С6 схемным сбросом, то цепочка определяется и прошивается. Получается, что сигналы, идущие от платы с первым циклоном на остальные платы как-то на них влияют, хотя те пустые и находятся в третьем состоянии...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Старый дедовский способ - берете выход TDO первой альтеры и заводите (навесным монтажом) на житаговский разъем (оторвав при этом выход последней альтеры). Если устройство определяется, то восстанавливаете цепь и береты выход со второй альтеры. И т.д.

Можете посмотреть осциллографом на уровни сигналов, возможно в прошитой альтере там присутствуют помехи. Для больших цепочек как ваша обычно ставят умощняющие буферы (245/244 элементы), но может и так заработать (если нет помех).

Есть и совсем глупое предположение, что в прошивке житаговские пины (один или все TMS/TCK/TDI/TDO) используются как сигнальные.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Старый дедовский способ - ....

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Shivers

JTAG-овские пины точно нигде больше не используются, да и нет такой возможности в данном кристале. Что касается "дедовского способа", то им и была обнаружена сбойная ячейка с третьим циклоном, описанная во втором эпизоде.

И для начала понижаете тактовую сразу на порядок.

Тактовую частоту программатора или самой схемы? Если первое, то как это осуществить на примере USB Blaster-а?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тактовую частоту программатора или самой схемы? Если первое, то как это осуществить на примере USB Blaster-а?

Ищите в Альтеровском софте то место, где идут настройки программатора JTAG...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У вас каждая альтера на отдельном модуле? Это плохо, тогда лучше ставить буферы сразу после разъемов JTAG, поскольку каждый разъем вносит высокое сопротивление в линию.

Сверьте с документацией, что использовали правильные номиналы подтяжек JTAG. Возможно, имеет смысл подтянуть TDO между альтерами (поскольку это открытый коллектор, если память не изменяет). Подтяжки внутри ПЛИС использовать не стоит - они слишком слабые.

Ну и имеет смысл взять конкретно третий модуль и подключить его к JTAG напрямую. Проследите осциллографом, что все сигналы доходят. Убедитесь, что житаговские выводы пропаяны. Если все хорошо, то смотрите на осциллографе диаграмму загрузки ПЛИС по житагу, сравнивайте с мануалом, и ищите разницу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У вас каждая альтера на отдельном модуле? Это плохо, тогда лучше ставить буферы сразу после разъемов JTAG, поскольку каждый разъем вносит высокое сопротивление в линию.

Каждая альтера на отдельном модуле. Разъём только один - на корпусе прибора. Межплатные соединения паянные, длинная переходов между платами линии TDO-TDI не более 5-6 см. С буферами согласен, по всей видимости будет учтено в следующей версии.

Сверьте с документацией, что использовали правильные номиналы подтяжек JTAG. Возможно, имеет смысл подтянуть TDO между альтерами (поскольку это открытый коллектор, если память не изменяет). Подтяжки внутри ПЛИС использовать не стоит - они слишком слабые.

Подтяжки по выводам TDO внешние, 1кОм. И, раз уж речь зашла про их номиналы, то на что они влияют? А то встречаются варианты с разбросом номиналов от 1 до 10 кОм.

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Каждая альтера на отдельном модуле. Разъём только один - на корпусе прибора. Межплатные соединения паянные, длинная переходов между платами линии TDO-TDI не более 5-6 см. С буферами согласен, по всей видимости будет учтено в следующей версии.

На три модуля, это уже 20см набегает. Очень критично для житага.

Припаяйте дополнительную землю и питание очень толстым проводом, можно добавить конденсаторов разного номинала (электролит, 1нФ, 0.1нФ). Думаю, из-за этой лапши и не работает ничего.

 

Подтяжки по выводам TDO внешние, 1кОм. И, раз уж речь зашла про их номиналы, то на что они влияют? А то встречаются варианты с разбросом номиналов от 1 до 10 кОм.

10кОм это вообще ни о чем, очень слабая подтяжка. 1кОм - вполне достаточно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня похожий глюк был при последовательном соединении процессора STM32F205 и Spartan 6. Пока проц не прошит - всё определяется в импакте и шьётся без вопросов. А вот если проц прошит - появляется проблема. Мы нашли два способа решения. Либо надо в процессе сканирования цепочки и программирования держать проц в резете (у нас кнопка резет была на плате), либо при построении цепочки подключить .bsd файл к данному процессору, скачанный с сайта производителя, а потом сохранить проект в .ipf и всегда им пользоваться.

 

Так что я бы посмотрел на то, как влияет прошивка EP1C6 на ноги, задействованные у этого кристалла под JTAG. Либо эту микросхему резетить и не давать загружаться (мы так делали на одной из плат - джампер ставили специально для этого), чтобы не мешала, либо разбираться с прошивкой этого кристалла. Может, надо явным образом как-то прописать ноги JTAG...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...