реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Проблемы с программированием JTAG цепочки
Kattani
сообщение Nov 10 2015, 21:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 30-08-07
Пользователь №: 30 171



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

У каждого циклона своя EPCS16, на выводах MSEL выставлен режим AS. Выводы эти подключены непосредственно к уровням, без резисторов.
Всё это дело нормально определялось квартусом. А потом стали вылезать неприятности.
Сначала был обнаружен интересный момент: если залит в EP1C6 прошивку, то все последующие попытки будь то автоопределение, либо прошивка других кристаллов оказывались бесполезными - цепочка не обнаруживалась. Хотя отладчик jtag её через раз видит. Если же сначала шить другие кристаллы, то никаких проблем, пока очередь не дойдёт до первого циклона. Приходится заливать *.sof, в противном случае замена соотвествующей EPCS-ки на чистую, т.к. возможность программирования теряется напрочь. При этом запрограммированный (неважно *.sof или *.jic) кристал EP1C6 вполне себе выполняет загруженный в него проект.
Второй случай с другим экземпляром данного устройства произошёл такой. Цепочка перестала определятся, отладчик изредка обнаруживал один из треьих циклонов. Виновником оказалась предпоследния плата с кристаллом EP3C25. У него все выводы (кроме питания и тех что имели внешнюю подвязку) находились, видимо, в 3-ей состоянии. На них было примерно от 0,5 до 1,5В. CONF_DONE - 0, nSTATUS - 0. Принудительный перевод nCONFIG в ноль ничего не давал. Всё питание на месте, не просажено и потребление в норме.
В чём может быть проблема?
Go to the top of the page
 
+Quote Post
gerbity
сообщение Nov 11 2015, 07:03
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 2-11-15
Из: Москва, Зеленоград
Пользователь №: 89 137



То что с начала все было нормально, а потом полезли глюки, говорит скорее о том, что просто где-то непропай. Возьмите и прогрейте все паяльником (если не BGA конечно).
Go to the top of the page
 
+Quote Post
Kattani
сообщение Nov 11 2015, 09:41
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 30-08-07
Пользователь №: 30 171



Проблема с блокированием цепочки после прошивки EP1C6 одинаково присуствует в четырёх экземплярах устройства. Корпуса все TQFP и их производные, пайка ручная. У ЕР3С25 площадка на дне припаяна. Четыре одинаковых непропая маловероятны.
Замечено, что если держать ЕР1С6 схемным сбросом, то цепочка определяется и прошивается. Получается, что сигналы, идущие от платы с первым циклоном на остальные платы как-то на них влияют, хотя те пустые и находятся в третьем состоянии...
Go to the top of the page
 
+Quote Post
Shivers
сообщение Nov 11 2015, 20:54
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Старый дедовский способ - берете выход TDO первой альтеры и заводите (навесным монтажом) на житаговский разъем (оторвав при этом выход последней альтеры). Если устройство определяется, то восстанавливаете цепь и береты выход со второй альтеры. И т.д.
Можете посмотреть осциллографом на уровни сигналов, возможно в прошитой альтере там присутствуют помехи. Для больших цепочек как ваша обычно ставят умощняющие буферы (245/244 элементы), но может и так заработать (если нет помех).
Есть и совсем глупое предположение, что в прошивке житаговские пины (один или все TMS/TCK/TDI/TDO) используются как сигнальные.
В общем, найти неисправность несложно, на мой взгляд, надо просто очень внимательно все проверить.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Nov 11 2015, 21:07
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Shivers @ Nov 11 2015, 23:54) *
Старый дедовский способ - ....
В общем, найти неисправность несложно, на мой взгляд, надо просто очень внимательно все проверить.

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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Kattani
сообщение Nov 12 2015, 09:21
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 30-08-07
Пользователь №: 30 171



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

Тактовую частоту программатора или самой схемы? Если первое, то как это осуществить на примере USB Blaster-а?
Go to the top of the page
 
+Quote Post
iosifk
сообщение Nov 12 2015, 09:24
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Kattani @ Nov 12 2015, 12:21) *
Тактовую частоту программатора или самой схемы? Если первое, то как это осуществить на примере USB Blaster-а?

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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Shivers
сообщение Nov 12 2015, 09:34
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



У вас каждая альтера на отдельном модуле? Это плохо, тогда лучше ставить буферы сразу после разъемов JTAG, поскольку каждый разъем вносит высокое сопротивление в линию.
Сверьте с документацией, что использовали правильные номиналы подтяжек JTAG. Возможно, имеет смысл подтянуть TDO между альтерами (поскольку это открытый коллектор, если память не изменяет). Подтяжки внутри ПЛИС использовать не стоит - они слишком слабые.
Ну и имеет смысл взять конкретно третий модуль и подключить его к JTAG напрямую. Проследите осциллографом, что все сигналы доходят. Убедитесь, что житаговские выводы пропаяны. Если все хорошо, то смотрите на осциллографе диаграмму загрузки ПЛИС по житагу, сравнивайте с мануалом, и ищите разницу.
Go to the top of the page
 
+Quote Post
Kattani
сообщение Nov 12 2015, 14:18
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 30-08-07
Пользователь №: 30 171



Цитата(Shivers @ Nov 12 2015, 13:34) *
У вас каждая альтера на отдельном модуле? Это плохо, тогда лучше ставить буферы сразу после разъемов JTAG, поскольку каждый разъем вносит высокое сопротивление в линию.

Каждая альтера на отдельном модуле. Разъём только один - на корпусе прибора. Межплатные соединения паянные, длинная переходов между платами линии TDO-TDI не более 5-6 см. С буферами согласен, по всей видимости будет учтено в следующей версии.
Цитата(Shivers @ Nov 12 2015, 13:34) *
Сверьте с документацией, что использовали правильные номиналы подтяжек JTAG. Возможно, имеет смысл подтянуть TDO между альтерами (поскольку это открытый коллектор, если память не изменяет). Подтяжки внутри ПЛИС использовать не стоит - они слишком слабые.

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



Go to the top of the page
 
+Quote Post
Shivers
сообщение Nov 12 2015, 14:34
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Цитата(Kattani @ Nov 12 2015, 17:18) *
Каждая альтера на отдельном модуле. Разъём только один - на корпусе прибора. Межплатные соединения паянные, длинная переходов между платами линии TDO-TDI не более 5-6 см. С буферами согласен, по всей видимости будет учтено в следующей версии.

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

Цитата(Kattani @ Nov 12 2015, 17:18) *
Подтяжки по выводам TDO внешние, 1кОм. И, раз уж речь зашла про их номиналы, то на что они влияют? А то встречаются варианты с разбросом номиналов от 1 до 10 кОм.

10кОм это вообще ни о чем, очень слабая подтяжка. 1кОм - вполне достаточно.
Go to the top of the page
 
+Quote Post
Vitaly_N
сообщение Nov 20 2015, 05:49
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 30-11-07
Пользователь №: 32 839



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

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

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 00:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01442 секунд с 7
ELECTRONIX ©2004-2016