Всем добрый день! Возникли проблемы с запуском пятого циклона на плате. ПЛИС не видится по 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
Dec 30 2015, 08:02
Привет коллеге по несчастью!
У меня вот лежит две одинаковых платы,одна рабочая, а у второй точно такие же симптомы как у вас,за исключением того что к загрузочной флешке обращение таки есть. А JTAG в упор не видит. Интересно что она сначала была рабочей,пролежала 2 месяца и вот такая проблема нарисовалась. Ничего не нашлось , грешу на металлизацию подложки или некачественную пайку FPGA. Пока вижу один выход - перепаять по новой FPGA.
Цитата(_Anatoliy @ Dec 30 2015, 11:02)

Привет коллеге по несчастью!
У меня вот лежит две одинаковых платы,одна рабочая, а у второй точно такие же симптомы как у вас,за исключением того что к загрузочной флешке обращение таки есть. А JTAG в упор не видит. Интересно что она сначала была рабочей,пролежала 2 месяца и вот такая проблема нарисовалась. Ничего не нашлось , грешу на металлизацию подложки или некачественную пайку FPGA. Пока вижу один выход - перепаять по новой FPGA.
Я вот тоже на пайку думаю. Когда нам плату изготавливали, то никакого контроля качества пайки потом не проводилось. А вчера мы относили плату в другую контору на рентген - они нам просто фотки дали, без каких-либо комментариев. А я в пайке BGA не эксперт, и понять что там на фото видно, ну никак не могу.
Вот, кстати, фото рентгена платы, что нам дали
Для меня на них ничего не понятно
Realking
Dec 30 2015, 08:30
Цитата(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
Dec 30 2015, 08:38
Цитата(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 заходит?
вроде летом был похожий тред..
Цитата(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
Dec 30 2015, 09:04
Там ещё к скорости роста напряжения питания есть требования.
С5
DmitryR
Dec 30 2015, 09:38
А у вас один из транзисторов VT1, VT2 не открыт случайно? Думаю, подтяжка CRC_ERROR в ПЛИС ваши 10K вполне може перетянуть.
Цитата(_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В слишком быстро нарастают, что не соответствует требованиям. Буду замедлять
Сделали время нарастания питания 2,5В равным 3 мс. Ничего не заработало. Может действительно плохая пайка BGA?
Realking
Dec 30 2015, 12:07
Цитата(gin @ Dec 30 2015, 14:57)

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

Сделали время нарастания питания 2,5В равным 3 мс. Ничего не заработало. Может действительно плохая пайка BGA?
Во всяком случае выход TDO можно проверить на то,доходит до ножки или нет. При подаче питания на плату и отключенном программаторе на этой линии у меня примерно 0,5В появляется,значит обрыва этой линии нет.
Serhiy_UA
Dec 30 2015, 12:44
Цитата(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
Dec 30 2015, 13:20
Цитата(Serhiy_UA @ Dec 30 2015, 15:44)

А разве MSEL надо к 3,3В, а не к 2,5В...
К VccPGM
Corner
Dec 30 2015, 17:15
Аналогичная проблема с циклон4. Выяснился косяк с последовательностью подачи питания. Если питание 2,5 Вольт появляется раньше питания ядра, то начинается белеберда. Либо не грузится, либо грузится с ошибкой. Еще был вариант когда плис работала один раз, а потом выходила из строя. Пришлось замедлять подачу 2,5 Вольт.
bugdesigner
Dec 31 2015, 02:38
По опыту скажу, что проблема в питании. Если питание есть и JTAG подключён правильно, все должно увидеться байтбластером. Подтяжки у питанию на jtag всегда на 10к ставлю, и 1к на землю для TCK, но проблема у Вас не в этом. Копать в направлении питания (ошибка в разводке или брак пайки BGA)
Фото рентгена, показывают что у вас все хорошо.
У меня недавно такая же проблема была на ARRIA V. При внимательном изучении схемы нашел у себя ошибку в питании.
Выложите схему питания, может сможем чем помочь.
sast777
Jan 8 2016, 17:03
Посмотрите 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)
По моему, либо битый чип, либо схема питания, либо все же непропай.
Всем огромное спасибо за комментарии.
Действительно, в схеме неправильно подключен сейчас JTAG - перепутаны TDO и TDI. Но на мой взгляд эта ошибка не должна влиять на конфигурирование ПЛИС. В конце концов она не выходит из сброса, так что проблема видимо в другом.
Возможно проблема с питанием, судя по всему, 3.3В подается раньше чем 2.5В и 1.1В. Сейчас попробую подать 3.3В позже, может с этим связана проблема.
Еще один из возможных вариантов - сожгли микросхему. Когда только пришла плата - была ошибка в монтаже, и вместо 1.1В на ядро подавалось 1.75В. Но тут сложно сказать - все-таки надеюсь, что не сожгли ПЛИС, ведь она ставит сигналы на своих выходах.
По поводу пропая/непропая ничего сказать не могу - не эксперт в этой области. Посоветовался с коллегами - некоторым не понравилась пайка. Как они говорят - часть шариков изменили форму - как бы немного растеклись по контактным площадкам, но некоторые остались круглыми, как будто они не прогрелись во время пайки и нет контакта. Например, такая вещь с выходом nCE (выход G5). Возможно там непропай.
Если кому интересно - вот схема питания
Jury093
Jan 11 2016, 09:50
Цитата(gin @ Jan 11 2016, 10:43)

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

если действительно на Core подавалось 1.75в, то на 99.9% чип сдох..
непрогруженный кристалл кушает определенный ток, загруженный другой, дохлый может совсем децл, т.е. аномально мало..
если есть запасная пустая плата, то распаяйте только источники и нагрузите все каналы питания на ~80% от максимального тока по каждому - смотрите уровни питания, шумы и величины переходных помех..
По идее, если бы она сдохла, то не выставляла бы сигналов, а она ставит:
- на выходах CONF_DONE, nSTATUS ПЛИС выставляет 0
- на nCS и DCLK (идут на EPCQ) ПЛИС выставляет 1
К сожалению изготовили только одну плату - не с чем сравнивать
Full41
Jan 11 2016, 14:49
Цитата(gin @ Jan 11 2016, 13:05)

По идее, если бы она сдохла, то не выставляла бы сигналов, а она ставит:
- на выходах CONF_DONE, nSTATUS ПЛИС выставляет 0
- на nCS и DCLK (идут на EPCQ) ПЛИС выставляет 1
К сожалению изготовили только одну плату - не с чем сравнивать
Схема питания правильная. Возможно проблема в правильности подания питания или выгорела микросхема. У меня схема с кристаллом 5CEFA9F31I7, различие в питание по сравнению с вашим нет, только я подаю питание по очереди, начиная с самого маленького.
Насчет сгорела или нет, сложно сказать, у меня были случаи подачи напряжения на ядро больше чем нужно и все потом работало. Я бы проверил сигналы Configdonи initdon.
Цитата(Full41 @ Jan 11 2016, 17:49)

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

Была проблема с питанием Vccbat - 2.5В не доходило до ножки из-за разрыва в цепи. Устранили - не помогло. Заменили ПЛИС на другую, тоже не помогло. Осталась только мысль, что у нас неправильная последовательность подачи питания
Отпаяйте источники питания, а в место них подключите лабораторные источники. И с помощью их можно создать последовательность включения для проверки.
Возможно у вас в источниках есть отсрочка включения, выполнена внешним конденсатором(у многих она есть). Можно увеличением емкости создать последовательность включения(у первого включающегося источника емкость поменьше, а у последнего побольше).
Jury093
Jan 12 2016, 19:30
Цитата(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
Jan 13 2016, 03:37
Не зависимо от выбранной схемы конфигурирования, JTAG будет работать, если чип живой и правильно запитан. Нужно всего 3 вещи:
1. Живой чип.
2. Правильно подать питание, включая необходимые блокировочные конденсаторы итп.
3. Правильно подключеный разъём JTAG.
В какой то момент отказал источник 1.1В - пропало напряжение. Перепаяли источник и заработало. При этом последовательность питания не меняли. Но с источником странно. Может при перепайке ПЛИС его повредили.
Сейчас пока не получается работать с EPCQ. Во-первых, хоть и выбран режим Active Serial x4, но данные идут только по DATA0. И при этом, при попытке записи, чтения либо стирания флешки - прогресс бар доходит до 96% и пишет FAILED
В общем Cyclone мы кое как одолели - теперь он видится и конфигурируется по JTAG. Возникла новая проблема с загрузочной флешкой EPCQ128. Такое ощущение, что она не отвечает на запросы. При подаче питания видно, что ПЛИС шлет команды на флешку (судя по всему это команда Read status), но в ответ флеш ничего не меняет на своих выходах. На линиях DATA0 - DATA2 - постоянно высокий уровень, на линии DATA3 низкий. Также не дали никаких результатов попытки программирования флеш через ПЛИС (запись JIC-файла в ПЛИС) - всегда одна и та же картина. Все сигналы от ПЛИС на флеш приходят (DCLK, nCS, DATA0). Единственное, что мне не очень нравится - это сигнал DCLK, его частота 10 МГц, хотя как я понял из описания на CycloneV, там частоты другие - 12.5, 25, 50 и 100 МГц. Может быть проблема в клоке? Хотя, никаких ограничений по минимальной частоте DCLK в описании на EPCQ нет.
На картинке скрин экрана осциллографа - сигналы DATA0 и DCLK
Пока не получается решить проблему с загрузочной флешкой EPCQ128. Посмотрел еще раз осциллографом сигналы после включения питания. Увидел следующие - ПЛИС выставляет сигнал nSTATUS в 1, затем происходит обращение к флеш. Опускается сигнал nCS и выдаются 2 пачки тактовых импульсов по 8 штук каждая. После этого ПЛИС снимаем сигнал nCS и опускает сигнал nSTATUS 0, тем самым прерывая процесс конфигурирования. И такая ситуация повторяется каждые 250 мкс.
Внизу прикрепил скрины с осциллографа: желтым показан сигнал nCS, который поступает на EPCQ128, синим - nSTATUS.
Для меня абсолютно не понятно, почему ПЛИС прекращает процесс конфигурирования, причем такая же ситуация с сигналами возникает и при других операция с флеш - при попытках записи, чтения или стирания.
И еще вопрос, что и как далжна отвечать флеш на поступающие от ПЛИС тактовые импульсы?
DmitryR
Jan 19 2016, 10:32
Может, у вас непропай линии данных от флэшки к FPGA?
Цитата(DmitryR @ Jan 19 2016, 13:32)

Может, у вас непропай линии данных от флэшки к FPGA?
Да вроде как все нормально с пайкой. Сами понять не можем в чем проблема
Заработало. Закоротили 1-ю и 2-ю ноги на EPCQ128. Получается программировать ее в режиме ASx1
Inanity
Jan 23 2016, 00:55
Цитата(gin @ Jan 22 2016, 11:49)

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