|
|
  |
Проблемы с программированием JTAG цепочки |
|
|
|
Nov 10 2015, 21:18
|
Участник

Группа: Участник
Сообщений: 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 в ноль ничего не давал. Всё питание на месте, не просажено и потребление в норме. В чём может быть проблема?
|
|
|
|
|
Nov 11 2015, 07:03
|
Участник

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

|
То что с начала все было нормально, а потом полезли глюки, говорит скорее о том, что просто где-то непропай. Возьмите и прогрейте все паяльником (если не BGA конечно).
|
|
|
|
|
Nov 11 2015, 09:41
|
Участник

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

|
Проблема с блокированием цепочки после прошивки EP1C6 одинаково присуствует в четырёх экземплярах устройства. Корпуса все TQFP и их производные, пайка ручная. У ЕР3С25 площадка на дне припаяна. Четыре одинаковых непропая маловероятны. Замечено, что если держать ЕР1С6 схемным сбросом, то цепочка определяется и прошивается. Получается, что сигналы, идущие от платы с первым циклоном на остальные платы как-то на них влияют, хотя те пустые и находятся в третьем состоянии...
|
|
|
|
|
Nov 12 2015, 09:21
|
Участник

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

|
ShiversJTAG-овские пины точно нигде больше не используются, да и нет такой возможности в данном кристале. Что касается "дедовского способа", то им и была обнаружена сбойная ячейка с третьим циклоном, описанная во втором эпизоде. Цитата("iosifk") И для начала понижаете тактовую сразу на порядок. Тактовую частоту программатора или самой схемы? Если первое, то как это осуществить на примере USB Blaster-а?
|
|
|
|
|
Nov 12 2015, 09:34
|

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

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

Группа: Участник
Сообщений: 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 кОм.
|
|
|
|
|
Nov 12 2015, 14:34
|

Знающий
   
Группа: Свой
Сообщений: 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кОм - вполне достаточно.
|
|
|
|
|
Nov 20 2015, 05:49
|
Участник

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

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