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

    

Проблема с конфигурированием Arria V

Добрый день, уважаемые коллеги!

Имеются проблемы с загрузкой конфигурации в ПЛИС. На плате собственной разработки:

- ПЛИС (5ASXBB5) и HPS включены последовательно в JTAG-цепочку.

- Загрузочная флеш EPCQ256.

- Выводы MSEL[4..0] установлены в состояние 10011, что соответствует режиму конфигурации AS. Выводы MSEL[4..0] посажены на GND или VCCPGM напрямую, без резисторов.

- Питания: VCC - 1.1 B, VCCPGM - 3.3 B, VCCPD банка с JTAG - 3.3 B, VCCIO банка с JTAG - 3.3 B, VCCBAT - 1.5 B, питание флеш - 3,3 В.

- TCK через 1 кОм подтянут к GND, TMS и TDI через 10 кОм подтянуты к 3,3 В.

- CONFIG_DONE, nSTATUS, nCONFIG подтянуты через 10 кОм к 3,3 В. nCE напрямую подключен к GND.

- Выводы DCLK и AS_DATA0(ASDO) подтянуты через 10 кОм к GND,

- Опциональные выводы INT_DONE, CLKUSR, DEV_OE, DEV_CLRn, PR_REQUEST не используются.

 

После включения питания платы nCONFIG сразу устанавливается в единицу, nSTATUS устанавливается в единицу через время порядка 100 мс, CONFIG_DONE в нуле. Периодически в процессе работы ПЛИС устанавливает nSTATUS в ноль затем возвращая в единицу. При использовании функции Auto Detect в Programmer вся JTAG-цепь (ПЛИС и HPS) определяется корректно. При попытке залить в ПЛИС sof-файл Quartus выдает следующий набор сообщений:

- Started programmer operation at ...

- Configuring device index 1

- Device 1 contains JTAG ID code 0x02D030DD

- Can't configure device. Expected JTAG code 0x02D030DD for device 1, but found JTAG ID code 0xFFFFFFFF

- Operation faild

 

Ошибка большинстве случаев выдается на 99% загрузки конфигурации, изредка на 86% или даже 50% с небольшим. Поскольку Auto Detect работает корректно и в начале программирования JTAG ID code определяется правильно, то мы сделали вывод что JTAG-цепь работает так как надо и проблема в чем-то другом.

 

В связи с тем, что по JTAG залить конфигурацию не получилось мы пошли другим путем. Изолировали EPCQ256 от ПЛИС, припаяли к ней разъем и залили во флеш pof-файл переведя USB-Blaster в режим AS. Флешка запрограммировалась успешно, после этого все связи с ПЛИС восстановили. В проекте Quartus назначено конфигурирование с использованием внутреннего генератора ПЛИС 12,5 МГц. При подаче питания ПЛИС сконфигурировалась (CONFIG_DONE встал в единицу, потребляемый ток от источника питания возрос) однако не прошло и минуты как конфигурация "слетела" (CONFIG_DONE упал в ноль, потребляемый ток от источника питания снизился, nSTATUS в единице с периодическими провалами в ноль). Далее еще интереснее, оказалось что явление когда ПЛИС стартует с флешки возникает очень редко (если включать плату с утра :)) В подавляющем большинстве случаев ПЛИС не конфигурируется не смотря на то что на флешке есть и nCS, и DCLK и идут данные.

 

Явно сделано что-то не так, но что не так найти не можем. Прошу Вашей помощи

 

P.S. Смотрели напряжения питания осциллографом. Никакого криминала (выбросов или провалов) на питании не заметили.

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


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

недавно подымал чип на убитой плате. Не сказать бы что собаку съел, но все же.

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

 

Активируйте пин crc_error ради интереса, он в 1 не встает, когда config_done падает?

 

Явно сделано что-то не так, но что не так найти не можем. Прошу Вашей помощи

альтеры бы скорее все ответила так: что то с питанием.

 

в arria V handbook должна быть табличка с перечисленными питаниями, которые чип постоянно мониторит, и если что уходит в резет.

я на своем чипе проверил порядка 100 ног с нужным питанием и нашел 4 ноги, на которых напруга не была равной заявленной. Ну а дальше было дело техники. Восстановил напряжение на плате и все пошло без проблем.

Изменено пользователем new123

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


Ссылка на сообщение
Поделиться на другие сайты
После включения питания платы nCONFIG сразу устанавливается в единицу, nSTATUS устанавливается в единицу через время порядка 100 мс, CONFIG_DONE в нуле. Периодически в процессе работы ПЛИС устанавливает nSTATUS в ноль затем возвращая в единицу.

если вы посмотрите handbook, раздел 8-5, то это Write configuration error.

Мне Альетра отвечала так: либо crc error, то есть при конфигурировании с флешки не бьется контрольная сумма передаваемых с флешки данных, либо (Альтера на этом настаивала изначально), проблемы питания чипа.

 

but found JTAG ID code 0xFFFFFFFF

это схема jtag не отвечает. И это понятно, у вас чип лежит незагруженный.

 

 

Я бы проверил внимательно все таки раздел 11-12, таблица 11-3. Проверил бы все ноги чипа к которому должно быть подведено перечисленное питание. В вашем сообщении приведен не весь список нужных питаний.

Изменено пользователем new123

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


Ссылка на сообщение
Поделиться на другие сайты
Ошибка большинстве случаев выдается на 99% загрузки конфигурации, изредка на 86% или даже 50% с небольшим. Поскольку Auto Detect работает корректно и в начале программирования JTAG ID code определяется правильно, то мы сделали вывод что JTAG-цепь работает так как надо и проблема в чем-то другом.

P.S. Смотрели напряжения питания осциллографом. Никакого криминала (выбросов или провалов) на питании не заметили.

Хоть Вы и сделали ремарку про питание, но подобная ситуация с циклонами у меня возникала регулярно. При потреблении платой 600 мА, отказ при программировании шел до тех пор, пока не выставил на лабораторном источнике ограничение тока в 1,5А.

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


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

1. Плата нормально отмыта от флюса после пайки?

2. Проверьте ещё раз чистоту питания. (Хотя предполагаю, что для Arria V, у вас наверняка стоят серьёзные источники питания.)

3. Надо проверять пайку BGA. (в качестве гипотезы, если nConfig нормально не запаян, то подтяжки вашей на нём нет, стало быть он болтается в воздухе и может перезагружать ПЛИС в зависимости от положения звёзд на небе)

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


Ссылка на сообщение
Поделиться на другие сайты
... отказ при программировании шел до тех пор, пока не выставил на лабораторном источнике ограничение тока в 1,5А.

Осциллограммы тока по питанию не снимали?

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


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

Коллеги, благодарю за оперативные ответы.

 

У нас родилась точно такая же идея:

3. Надо проверять пайку BGA. (в качестве гипотезы, если nConfig нормально не запаян, то подтяжки вашей на нём нет, стало быть он болтается в воздухе и может перезагружать ПЛИС в зависимости от положения звёзд на небе)

 

Первое что мы сделали когда так подумали провели рентген платы, на рентгене ничего плохого не увидели. Чтобы убедиться абсолютно точно что непропая по nCONFIG нет мы провели эксперимент: запаяли вывод подтягивающего резистора со стороны ПЛИС на корпус, если бы шарик болтался в воздухе то никакой реакции на это не должно было бы быть. Однако при nCONFIG посаженном на корпус nSTATUS тоже ушел в беспросветный ноль, что говорит о том что контакт нормально запаян.

 

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

 

 

 

Проблема решена. Спасибо коллеге за этот совет:

 

Я бы проверил внимательно все таки раздел 11-12, таблица 11-3. Проверил бы все ноги чипа к которому должно быть подведено перечисленное питание. В вашем сообщении приведен не весь список нужных питаний.

 

Ситуация была в следующем: Один из источников питания формирует 2,5 В и это напряжение идет на ряд контактов ПЛИС. Для питания некоторых выводов HPS так же требуется 2,5 В, которые формируются путем фильтрации напряжения с ПЛИС LC-фильтром. В следствии падения напряжения на дросселе 2,5 В после фильтра выходило за допуск на 50-75 мВ. Как только питание после фильтра было приведено в нормальное состояние, ПЛИС начала конфигурироваться как по JTAG, так и с EPCQ.

 

Всем большое спасибо за помощь и участие. Я Вам очень благодарен

Изменено пользователем PK692

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


Ссылка на сообщение
Поделиться на другие сайты
В следствии падения напряжения на дросселе 2,5 В после фильтра выходило за допуск на 50-75 мВ. Как только питание после фильтра было приведено в нормальное состояние, ПЛИС начала конфигурироваться как по JTAG, так и с EPCQ.

что за чудо-дроссель? у него есть наименование или партнамбер?

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


Ссылка на сообщение
Поделиться на другие сайты
Осциллограммы тока по питанию не снимали?

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

Кроме того (леший с самодельной платой), но подобная история творилась с платами от терасика. И по моим наблюдениям эти платы (de0-nano-soc) в установившемся режиме потребляют порядка 1 А, а при запуске (старт линукса и заливка rbf) тоже резко увеличивают потребление примерно в два раза.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация