Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы с Cyclone V
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
gin
Всем добрый день! Возникли проблемы с запуском пятого циклона на плате. ПЛИС не видится по JTAG (не отвечает на запросы - нет ответа по линии TDO), при подачи питания не обращается к загрузочной флешке.
Собственно что имеется:
- Плата собственной разработки с ПЛИС Cyclone V (5CEFA7F23I7)
- Загрузочная флеш EPCQ128
- Напряжения питания ПЛИС: Vcc - 1,1В Vccpgm - 3,3B, Vccbat - 2,5B Vccpd - 3,3B Vcca_fpll - 2,5B Vcc_aux - 2,5B, Vccio - 3,3B
- Напряжение питания загрузочной флеш - 3,3B
- Напряжение питания JTAG - 3,3B, JTAG подключен только к ПЛИС

Схема конфигурирования ПЛИС - Active Serial, Пины MSEL подключены следующим образом: MSEL(4), MSEL(1) - 3,3B MSEL(3), MSEL(2), MSEL(0) - GND (все пины подключены напрямую).
JTAG подключен к ПЛИС: TCK подтянут к GND - резистор 1K, TDO и TMS подтянуты к питанию (3,3В) - резистор 1K
Выводы ПЛИС CONF_DONE, nSTATUS, nCONFIG подтянуты к 3,3В резисторами 10K, Вход nCE посажен на GND напрямую.

При включении питания происходит следующее:
- на выходах CONF_DONE, nSTATUS ПЛИС выставляет 0,
- на nCS и DCLK (идут на EPCQ) ПЛИС выставляет 1.
И больше ничего не происходит, ПЛИС на тактирует флешку и не отвечает на запросы по JTAG. JTAG подключал к двум программаторам USB-BLASTER (Terasic), которые точно рабочие, ими ранее программировал CYCLONE II и Arria V.

Такое ощущение, что ПЛИС находится под внутренним ресетом (POR) и выходит из него не хочет. Что с ней делать уже даже и не знаю, вроде все варианты испробовали, но ничего не помогает. Может у кого-нить были схожие проблемы? Интересны пути решения этих проблем. Спасибо!

P.S. напряжения питания все проверил - соответствуют требуемым значениям
_Anatoliy
Привет коллеге по несчастью! rolleyes.gif
У меня вот лежит две одинаковых платы,одна рабочая, а у второй точно такие же симптомы как у вас,за исключением того что к загрузочной флешке обращение таки есть. А JTAG в упор не видит. Интересно что она сначала была рабочей,пролежала 2 месяца и вот такая проблема нарисовалась. Ничего не нашлось , грешу на металлизацию подложки или некачественную пайку FPGA. Пока вижу один выход - перепаять по новой FPGA.
gin
Цитата(_Anatoliy @ Dec 30 2015, 11:02) *
Привет коллеге по несчастью! rolleyes.gif
У меня вот лежит две одинаковых платы,одна рабочая, а у второй точно такие же симптомы как у вас,за исключением того что к загрузочной флешке обращение таки есть. А JTAG в упор не видит. Интересно что она сначала была рабочей,пролежала 2 месяца и вот такая проблема нарисовалась. Ничего не нашлось , грешу на металлизацию подложки или некачественную пайку FPGA. Пока вижу один выход - перепаять по новой FPGA.


Я вот тоже на пайку думаю. Когда нам плату изготавливали, то никакого контроля качества пайки потом не проводилось. А вчера мы относили плату в другую контору на рентген - они нам просто фотки дали, без каких-либо комментариев. А я в пайке BGA не эксперт, и понять что там на фото видно, ну никак не могу.

Вот, кстати, фото рентгена платы, что нам дали

Для меня на них ничего не понятно
Realking
Цитата(gin @ Dec 30 2015, 10:55) *
Всем добрый день! Возникли проблемы с запуском пятого циклона на плате. ПЛИС не видится по JTAG (не отвечает на запросы - нет ответа по линии TDO), при подачи питания не обращается к загрузочной флешке.
Собственно что имеется:
- Плата собственной разработки с ПЛИС Cyclone V (5CEFA7F23I7)
- Загрузочная флеш EPCQ128
- Напряжения питания ПЛИС: Vcc - 1,1В Vccpgm - 3,3B, Vccbat - 2,5B Vccpd - 3,3B Vcca_fpll - 2,5B Vcc_aux - 2,5B, Vccio - 3,3B
- Напряжение питания загрузочной флеш - 3,3B
- Напряжение питания JTAG - 3,3B, JTAG подключен только к ПЛИС

Схема конфигурирования ПЛИС - Active Serial, Пины MSEL подключены следующим образом: MSEL(4), MSEL(1) - 3,3B MSEL(3), MSEL(2), MSEL(0) - GND (все пины подключены напрямую).
JTAG подключен к ПЛИС: TCK подтянут к GND - резистор 1K, TDO и TMS подтянуты к питанию (3,3В) - резистор 1K
Выводы ПЛИС CONF_DONE, nSTATUS, nCONFIG подтянуты к 3,3В резисторами 10K, Вход nCE посажен на GND напрямую.

При включении питания происходит следующее:
- на выходах CONF_DONE, nSTATUS ПЛИС выставляет 0,
- на nCS и DCLK (идут на EPCQ) ПЛИС выставляет 1.
И больше ничего не происходит, ПЛИС на тактирует флешку и не отвечает на запросы по JTAG. JTAG подключал к двум программаторам USB-BLASTER (Terasic), которые точно рабочие, ими ранее программировал CYCLONE II и Arria V.

Такое ощущение, что ПЛИС находится под внутренним ресетом (POR) и выходит из него не хочет. Что с ней делать уже даже и не знаю, вроде все варианты испробовали, но ничего не помогает. Может у кого-нить были схожие проблемы? Интересны пути решения этих проблем. Спасибо!

P.S. напряжения питания все проверил - соответствуют требуемым значениям


А что говорит JTAG Chain Debbuger (IDCODE iteration test)?
Jury093
Цитата(gin @ Dec 30 2015, 10:55) *
Схема конфигурирования ПЛИС - Active Serial, Пины MSEL подключены следующим образом: MSEL(4), MSEL(1) - 3,3B MSEL(3), MSEL(2), MSEL(0) - GND (все пины подключены напрямую).
JTAG подключен к ПЛИС: TCK подтянут к GND - резистор 1K, TDO и TMS подтянуты к питанию (3,3В) - резистор 1K
Выводы ПЛИС CONF_DONE, nSTATUS, nCONFIG подтянуты к 3,3В резисторами 10K, Вход nCE посажен на GND напрямую.

проще было фрагмент схемы выложить, чем описывать словами..
у вас не перепутано? - резистор подтяжки ставится на TDI, а TDO должен быть свободный..
питание на JTAG заходит?
вроде летом был похожий тред..
gin
Цитата(Realking @ Dec 30 2015, 11:30) *
А что говорит JTAG Chain Debbuger (IDCODE iteration test)?


Я щупом смотрел выход TDO - на нем ничего не меняется, хотя по TCK от программатора клоки идут

Цитата(Jury093 @ Dec 30 2015, 11:38) *
проще было фрагмент схемы выложить, чем описывать словами..
у вас не перепутано? - резистор подтяжки ставится на TDI, а TDO должен быть свободный..
питание на JTAG заходит?
вроде летом был похожий тред..


Части схемы: флеш, JTAG

На последней картинке в схемы резисторы R204, R205 были заменены на 1K.
На входе nCONFIG - 3,3B
_Anatoliy
Там ещё к скорости роста напряжения питания есть требования.
С5
DmitryR
А у вас один из транзисторов VT1, VT2 не открыт случайно? Думаю, подтяжка CRC_ERROR в ПЛИС ваши 10K вполне може перетянуть.
gin
Цитата(_Anatoliy @ Dec 30 2015, 12:04) *
Там ещё к скорости роста напряжения питания есть требования.
С5


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

Цитата(DmitryR @ Dec 30 2015, 12:38) *
А у вас один из транзисторов VT1, VT2 не открыт случайно? Думаю, подтяжка CRC_ERROR в ПЛИС ваши 10K вполне може перетянуть.


Там в схеме ошибка - на плате стоят 1K, транзисторы закрыты - смотрел на выходе там 3,3В напряжение. Так что в этом месте все в порядке. Тем более, как я понимаю, вход nCONFIG работает только после конфигурации ПЛИС

Про время нарастания питания, там действительно в даташите ограничение от 200 мкс до 4 мс

Померил время нарастания питания, получилось следующее:
1,1В - 3 мс
2,5В - 100 мкс
3,3В - 4 мс

Получается, что 2,5В слишком быстро нарастают, что не соответствует требованиям. Буду замедлять
gin
Сделали время нарастания питания 2,5В равным 3 мс. Ничего не заработало. Может действительно плохая пайка BGA?
Realking
Цитата(gin @ Dec 30 2015, 14:57) *
Сделали время нарастания питания 2,5В равным 3 мс. Ничего не заработало. Может действительно плохая пайка BGA?


Вообщето TDI дб подтянут к 3.3, а не TDO
сорри, повторился
но ТС ничего на это не ответил
_Anatoliy
Цитата(gin @ Dec 30 2015, 14:57) *
Сделали время нарастания питания 2,5В равным 3 мс. Ничего не заработало. Может действительно плохая пайка BGA?

Во всяком случае выход TDO можно проверить на то,доходит до ножки или нет. При подаче питания на плату и отключенном программаторе на этой линии у меня примерно 0,5В появляется,значит обрыва этой линии нет.
Serhiy_UA
Цитата(gin @ Dec 30 2015, 10:55) *
Схема конфигурирования ПЛИС - Active Serial, Пины MSEL подключены следующим образом: MSEL(4), MSEL(1) - 3,3B MSEL(3), MSEL(2), MSEL(0) - GND (все пины подключены напрямую).

А разве MSEL надо к 3,3В, а не к 2,5В...
DmitryR
Цитата(Serhiy_UA @ Dec 30 2015, 15:44) *
А разве MSEL надо к 3,3В, а не к 2,5В...

К VccPGM sm.gif
Corner
Аналогичная проблема с циклон4. Выяснился косяк с последовательностью подачи питания. Если питание 2,5 Вольт появляется раньше питания ядра, то начинается белеберда. Либо не грузится, либо грузится с ошибкой. Еще был вариант когда плис работала один раз, а потом выходила из строя. Пришлось замедлять подачу 2,5 Вольт.
bugdesigner
По опыту скажу, что проблема в питании. Если питание есть и JTAG подключён правильно, все должно увидеться байтбластером. Подтяжки у питанию на jtag всегда на 10к ставлю, и 1к на землю для TCK, но проблема у Вас не в этом. Копать в направлении питания (ошибка в разводке или брак пайки BGA)
Full41
Фото рентгена, показывают что у вас все хорошо.
У меня недавно такая же проблема была на ARRIA V. При внимательном изучении схемы нашел у себя ошибку в питании.
Выложите схему питания, может сможем чем помочь.
sast777
Посмотрите CV-52010 (2015.01.23) Cyclone V Device Handbook Volume 1: Device Interfaces and Integration;
10-4 Power-Up Sequence

"To ensure the minimum current draw during device power up for Cyclone V devices, follow the
power-up sequence recommendations as shown in the following figure.
Power up VCCBAT at any time. Ramp up the power rails in Group 1 to a minimum of 80% of their full rail
before Group 2 starts.

Group 1: 1.1V
VCC; VCCE_GXB; VCCL_GXB; VCC_HPS

Group 2: 2.5V
VCCPGM; CCIO; VCCPD; VCCA_FPLL; VCCH_GXB; VCC_AUX

Формально да, оно есть, требование по " Power-Up Sequence"; НО - для минимизации токов при старте.

Я на своих платах - одна с 5CEFA5F23I7N, другая с 5CSEMA5F31I7N - сделал на всякий случай включение всех прочих питаний по наличию 1.1В
JTAG chain всегда работал;
Но одна из 5CSEMA5F31I7N умерла - проработав несколько месяцев: пропал TDO HPS (Сигналы JTAG -буферированы перед разъемом).
Сняли-снова запаяли 5CSEMA5F31I7N; не помогло.
Заменили 5CSEMA5F31I7N - заработало.

Приложил мою работающую схему - чипы почти одинаковые. (A5 vs A7)
По моему, либо битый чип, либо схема питания, либо все же непропай.
gin
Всем огромное спасибо за комментарии.

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

Возможно проблема с питанием, судя по всему, 3.3В подается раньше чем 2.5В и 1.1В. Сейчас попробую подать 3.3В позже, может с этим связана проблема.

Еще один из возможных вариантов - сожгли микросхему. Когда только пришла плата - была ошибка в монтаже, и вместо 1.1В на ядро подавалось 1.75В. Но тут сложно сказать - все-таки надеюсь, что не сожгли ПЛИС, ведь она ставит сигналы на своих выходах.

По поводу пропая/непропая ничего сказать не могу - не эксперт в этой области. Посоветовался с коллегами - некоторым не понравилась пайка. Как они говорят - часть шариков изменили форму - как бы немного растеклись по контактным площадкам, но некоторые остались круглыми, как будто они не прогрелись во время пайки и нет контакта. Например, такая вещь с выходом nCE (выход G5). Возможно там непропай.

Если кому интересно - вот схема питания

Jury093
Цитата(gin @ Jan 11 2016, 10:43) *
Еще один из возможных вариантов - сожгли микросхему. Когда только пришла плата - была ошибка в монтаже, и вместо 1.1В на ядро подавалось 1.75В.

если действительно на Core подавалось 1.75в, то на 99.9% чип сдох..
непрогруженный кристалл кушает определенный ток, загруженный другой, дохлый может совсем децл, т.е. аномально мало..
если есть запасная пустая плата, то распаяйте только источники и нагрузите все каналы питания на ~80% от максимального тока по каждому - смотрите уровни питания, шумы и величины переходных помех..
gin
Цитата(Jury093 @ Jan 11 2016, 12:50) *
если действительно на Core подавалось 1.75в, то на 99.9% чип сдох..
непрогруженный кристалл кушает определенный ток, загруженный другой, дохлый может совсем децл, т.е. аномально мало..
если есть запасная пустая плата, то распаяйте только источники и нагрузите все каналы питания на ~80% от максимального тока по каждому - смотрите уровни питания, шумы и величины переходных помех..



По идее, если бы она сдохла, то не выставляла бы сигналов, а она ставит:
- на выходах CONF_DONE, nSTATUS ПЛИС выставляет 0
- на nCS и DCLK (идут на EPCQ) ПЛИС выставляет 1

К сожалению изготовили только одну плату - не с чем сравнивать
Full41
Цитата(gin @ Jan 11 2016, 13:05) *
По идее, если бы она сдохла, то не выставляла бы сигналов, а она ставит:
- на выходах CONF_DONE, nSTATUS ПЛИС выставляет 0
- на nCS и DCLK (идут на EPCQ) ПЛИС выставляет 1

К сожалению изготовили только одну плату - не с чем сравнивать


Схема питания правильная. Возможно проблема в правильности подания питания или выгорела микросхема. У меня схема с кристаллом 5CEFA9F31I7, различие в питание по сравнению с вашим нет, только я подаю питание по очереди, начиная с самого маленького.
Насчет сгорела или нет, сложно сказать, у меня были случаи подачи напряжения на ядро больше чем нужно и все потом работало. Я бы проверил сигналы Configdonи initdon.
gin
Цитата(Full41 @ Jan 11 2016, 17:49) *
Схема питания правильная. Возможно проблема в правильности подания питания или выгорела микросхема. У меня схема с кристаллом 5CEFA9F31I7, различие в питание по сравнению с вашим нет, только я подаю питание по очереди, начиная с самого маленького.
Насчет сгорела или нет, сложно сказать, у меня были случаи подачи напряжения на ядро больше чем нужно и все потом работало. Я бы проверил сигналы Configdonи initdon.



Была проблема с питанием Vccbat - 2.5В не доходило до ножки из-за разрыва в цепи. Устранили - не помогло. Заменили ПЛИС на другую, тоже не помогло. Осталась только мысль, что у нас неправильная последовательность подачи питания
Full41
Цитата(gin @ Jan 12 2016, 19:46) *
Была проблема с питанием Vccbat - 2.5В не доходило до ножки из-за разрыва в цепи. Устранили - не помогло. Заменили ПЛИС на другую, тоже не помогло. Осталась только мысль, что у нас неправильная последовательность подачи питания

Отпаяйте источники питания, а в место них подключите лабораторные источники. И с помощью их можно создать последовательность включения для проверки.
Возможно у вас в источниках есть отсрочка включения, выполнена внешним конденсатором(у многих она есть). Можно увеличением емкости создать последовательность включения(у первого включающегося источника емкость поменьше, а у последнего побольше).
Jury093
Цитата(gin @ Jan 11 2016, 13:05) *
К сожалению изготовили только одну плату - не с чем сравнивать

жаль что одна, я всегда стараюсь делать с дубликатом (по возможности)..

если принять, что чип уцелел, то есть еще пара направлений:
- вы за правильность библиотечного элемента Cyc5 уверены? его хорошо проверили? бывает, что у конструктора проходит крест - на УГО одно, на шарах другое.. отсюда в схеме будет правильно, а вот в монтаже фиг.. проверяли?
- по конфигурации:
Цитата
Схема конфигурирования ПЛИС - Active Serial, Пины MSEL подключены следующим образом: MSEL(4), MSEL(1) - 3,3B MSEL(3), MSEL(2), MSEL(0) - GND (все пины подключены напрямую).

есть ли возможность коммутации MSEL[] или прибиты насмерть под чипом? если можно оторвать, то убрать EPCQ и пробовать запустить чистый jtag:
If you only use the JTAG configuration, connect
nCONFIG to V CCPGM and MSEL[4..0] to GND.

bugdesigner
Не зависимо от выбранной схемы конфигурирования, JTAG будет работать, если чип живой и правильно запитан. Нужно всего 3 вещи:
1. Живой чип.
2. Правильно подать питание, включая необходимые блокировочные конденсаторы итп.
3. Правильно подключеный разъём JTAG.
gin
В какой то момент отказал источник 1.1В - пропало напряжение. Перепаяли источник и заработало. При этом последовательность питания не меняли. Но с источником странно. Может при перепайке ПЛИС его повредили.

Сейчас пока не получается работать с EPCQ. Во-первых, хоть и выбран режим Active Serial x4, но данные идут только по DATA0. И при этом, при попытке записи, чтения либо стирания флешки - прогресс бар доходит до 96% и пишет FAILED
gin
В общем Cyclone мы кое как одолели - теперь он видится и конфигурируется по JTAG. Возникла новая проблема с загрузочной флешкой EPCQ128. Такое ощущение, что она не отвечает на запросы. При подаче питания видно, что ПЛИС шлет команды на флешку (судя по всему это команда Read status), но в ответ флеш ничего не меняет на своих выходах. На линиях DATA0 - DATA2 - постоянно высокий уровень, на линии DATA3 низкий. Также не дали никаких результатов попытки программирования флеш через ПЛИС (запись JIC-файла в ПЛИС) - всегда одна и та же картина. Все сигналы от ПЛИС на флеш приходят (DCLK, nCS, DATA0). Единственное, что мне не очень нравится - это сигнал DCLK, его частота 10 МГц, хотя как я понял из описания на CycloneV, там частоты другие - 12.5, 25, 50 и 100 МГц. Может быть проблема в клоке? Хотя, никаких ограничений по минимальной частоте DCLK в описании на EPCQ нет.

На картинке скрин экрана осциллографа - сигналы DATA0 и DCLK
gin
Пока не получается решить проблему с загрузочной флешкой EPCQ128. Посмотрел еще раз осциллографом сигналы после включения питания. Увидел следующие - ПЛИС выставляет сигнал nSTATUS в 1, затем происходит обращение к флеш. Опускается сигнал nCS и выдаются 2 пачки тактовых импульсов по 8 штук каждая. После этого ПЛИС снимаем сигнал nCS и опускает сигнал nSTATUS 0, тем самым прерывая процесс конфигурирования. И такая ситуация повторяется каждые 250 мкс.

Внизу прикрепил скрины с осциллографа: желтым показан сигнал nCS, который поступает на EPCQ128, синим - nSTATUS.
Для меня абсолютно не понятно, почему ПЛИС прекращает процесс конфигурирования, причем такая же ситуация с сигналами возникает и при других операция с флеш - при попытках записи, чтения или стирания.

И еще вопрос, что и как далжна отвечать флеш на поступающие от ПЛИС тактовые импульсы?
DmitryR
Может, у вас непропай линии данных от флэшки к FPGA?
gin
Цитата(DmitryR @ Jan 19 2016, 13:32) *
Может, у вас непропай линии данных от флэшки к FPGA?


Да вроде как все нормально с пайкой. Сами понять не можем в чем проблема
gin
Заработало. Закоротили 1-ю и 2-ю ноги на EPCQ128. Получается программировать ее в режиме ASx1
Inanity
Цитата(gin @ Jan 22 2016, 11:49) *
Заработало. Закоротили 1-ю и 2-ю ноги на EPCQ128. Получается программировать ее в режиме ASx1


Получается, что c DATA3 пином что-то не так, поэтому в ASx4 режиме ничего не работает? В прошлых сообщениях вы говорили, что на DATA3 всегда низкий уровень.
Вы пробовали звонить его на землю? Там скорее всего не КЗ, а сильная подтяжка на землю (остатки флюса?). Если он сейчас у вас подключён к питанию 3.3 и всё работает в ASx1, то либо вырос ток потребления на регуляторе 3.3, либо этот пин тупо не имеет контакта к FPGA, либо испорчен в самой EPCQ или FPGA (хотя мало верится).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.