Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не работает один из PLL Cyclone 4
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
rolin
Всем привет.

Собираю платы на EP4CE55 уже не впервой, конструкция можно сказать обкатанная временем. Вдруг, один из экземпляров не работает, но как-то странно - плисина успешно грузится но половина ее схемы не шевелится. Очевидно, что нет такта от одной из PLL. Заменил чип, все заработало. Думаю, ну брак, бывает.

Как же я удивился, когда следующие две платы тоже не работают, причем плисины из разных партий, даже корпусом отличаются.

Пришлось углубиться. Тренируюсь на тестовой прошивке.

Проверил, доходит ли внешний опорник до входа PLL - доходит.

Сделал еще один PLL, с такой же конфигурацией как и неработающий, начал играться с коэффициентами и в общем-то не могу сказать ничего определенного.
Получал на выходе самые разные комбинации. Например первый ПЛЛ выдает какие-то герцы вместо килогерц, сигнала locked нет, второй при этом отлично работает. Оба выдают неправильную сильно заниженную частоту, оба не выдают никакого сигнала. Бывало, на выходе какие-то хаотичные импульсы, бывало со старта работает полсекунды и глохнет.
Какой-либо системы не выявлено, полный хаос.

Опорник - 122.8 Мгц 1.8 вольт, входной порт указан как 1.8 Вольт вход.

На плате есть также еще один опорник с почти такой же частотой - 125МГц 3.3 вольта. При подаче его на вход ПЛЛ они работают хорошо. Конечно, при больших коэффициентах деления бывает не работает, но с этими приколами я знаком давно.

Есть какие-то мысли что может быть и что делать ? Работаю с циклоном 4 уже не первый год, никогда проблем не было, а тут массовый падеж.

ViKo
По таблице ножек (питаниям) нужно пройтись, для PLL еще свои отдельные выводы бывают. Чтобы все соответствовало.
DmitryR
Цитата(rolin @ Jan 3 2018, 08:50) *
Опорник - 122.8 Мгц 1.8 вольт, входной порт указан как 1.8 Вольт вход.

Стандарты ввода-вывода совпадают, LVCMOS-LVCMOS?
rolin
Цитата(ViKo @ Jan 3 2018, 10:58) *
По таблице ножек (питаниям) нужно пройтись, для PLL еще свои отдельные выводы бывают. Чтобы все соответствовало.

Входы опорной конечно же специальные выводы, иначе Квартус даже не подключит их к ПЛЛ.

Цитата(DmitryR @ Jan 3 2018, 17:28) *
Стандарты ввода-вывода совпадают, LVCMOS-LVCMOS?

Да, CMOS, никаких извращений.
DmitryR
Тогда наверное имеет смысл посмотреть осцилографом, что там происходит. Ну и может быть уже запостить схему.
rolin
Цитата(DmitryR @ Jan 3 2018, 17:53) *
Тогда наверное имеет смысл посмотреть осцилографом, что там происходит. Ну и может быть уже запостить схему.

Дык смотрю осциллографом. Вывел выходы ПЛЛ наружу и смотрю. Один из ПЛЛ работать с данным входом категорически отказывается Сам вход рабочий, ибо подключил к нему делитель на счетчике и получил требуемую частоту без проблем.
По схеме там ничего интересного, такт приходит от АЦП, банк io и сам АЦП запитан от 1.8 вольт.
Единственное, оба спецвхода и прямой и инверсный у меня замкнуты и на них обоих подается частота.
Jury093
Цитата(rolin @ Jan 3 2018, 08:50) *
Опорник - 122.8 Мгц 1.8 вольт, входной порт указан как 1.8 Вольт вход.

как гипотеза - неправильный опорник или деградация параметров после монтажа..
если все платы с отказом уверенно работают с другим опорником, то копайте в этом направление..
DmitryR
Цитата(rolin @ Jan 3 2018, 17:10) *
такт приходит от АЦП

Вот. Когда такт приходит от АЦП - всё работает криво. Когда такт приходит от генератора - всё работает нормально. Чем они отличаются? Первое, что мне приходит на ум - генератор стартует сразу, а АЦП - нет. То есть при работе от АЦП возможно надо через некоторое время после загрузки ПЛИС подать сброс на PLL.
ViKo
Цитата(rolin @ Jan 3 2018, 16:38) *
Входы опорной конечно же специальные выводы, иначе Квартус даже не подключит их к ПЛЛ.

Я про VCCD_PLLx говорю.
Flip-fl0p
Посмотрите отчеты Timequet !
Присутствуют ли в этих отчетах синтезируемая частота на PLL ?
Если в отчётах частота не присутствует - значит Quartus удалил одну из частот... Этот гад может так сделать. А самое главное будет молчать как партизан !
rolin
Цитата(ViKo @ Jan 3 2018, 19:36) *
Я про VCCD_PLLx говорю.

Да, это обьяснило бы происходящее. Но я проверил еще раз все пины связанные с ПЛЛ и все правильно. VCCD_PLLx подключены к 1.2 вольта, VCCAx к 2.5 вольт, GNDAx на земле.


Цитата(DmitryR @ Jan 3 2018, 18:27) *
То есть при работе от АЦП возможно надо через некоторое время после загрузки ПЛИС подать сброс на PLL.

Здравая мысль. попробую сброс поставить, может он приведет его в чувство.



Цитата(Flip-fl0p @ Jan 3 2018, 19:49) *
Посмотрите отчеты Timequet !
Присутствуют ли в этих отчетах синтезируемая частота на PLL ?
Если в отчётах частота не присутствует - значит Quartus удалил одну из частот... Этот гад может так сделать. А самое главное будет молчать как партизан !

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

В общем, ситуация такова:
Есть два одинаковых клока 122.880 на входе от двух АЦП, на разных банках, оба 1.8 вольт
Есть два одинаково настроенных ПЛЛ, выходы которых выведены наружу для контроля на осциллографе.

Если первый ПЛЛ подключен к первому клоку а второй ПЛЛ ко второму, то первый ПЛЛ не работает а второй работает нормально

Если оба ПЛЛ подключены к первому или второму клоку - оба ПЛЛ не работают

Если первый ПЛЛ подключен ко второму клоку а второй к первому, то кроме того, что оба они не работают, то еще тухнет третий ПЛЛ, который работает себе от совсем другого клока 125МГц от другого источника и вообще не при делах.

Если кто-то видит в этом систему, пишите.

А я наверное попробую сменить версию Квартуса.
svedach
ТС, "Например первый ПЛЛ выдает какие-то герцы вместо килогерц", в Altera можно PLL-ом генерировать килогерцы? В Xilinx ниже 4 МГц вроде как нельзя...
rolin
Цитата(svedach @ Jan 4 2018, 10:24) *
ТС, "Например первый ПЛЛ выдает какие-то герцы вместо килогерц", в Altera можно PLL-ом генерировать килогерцы? В Xilinx ниже 4 МГц вроде как нельзя...

Я формирую 80 кГц из 122.88 . Это не всегда работает, но если это единственный выход ПЛЛ то работает точно. Ниже не пробовал, без надобности.
В пятом циклоне можно делать каскадное включение выходов, то есть следующий выход будет предыдущий поделенный счетчиком. Смысла в этом мало, так как счетчик и в коде можно завсегда поставить.



Попробовал тестовый код на эталонной плате - оба ПЛЛ работают без проблем. Похоже, какие-то бракованные плисины попадаются или я не знаю что и думать.

jojo
Статикой может пробились микросхемы. В Cyclone II наблюдал нечто похожее после разряда. ПЛИС пришлось заменить.
DmitryR
Цитата(rolin @ Jan 4 2018, 09:53) *
Я формирую 80 кГц из 122.88 . Это не всегда работает, но если это единственный выход ПЛЛ то работает точно.

Честно говоря не понимаю, как это может работать физически. У PLL Cyclone IV минимально допустимая частота VCO 600МГц и разрядность C-counter 512. Следовательно минимальная частота, которую можно получить - более мегагерца. Чтобы получить 80кГц - надо иметь частоту VCO всего 41МГц. Очевидно, что стабильно это работать не обязано.
ViKo
Так ведь работу PLL мегавизардом задают. Если бы что-то не устраивало, визард ошибку дал бы.
На те ножки (про которые писал) питание нужно чистое.
А работает ли PLL, по сигналу lock видно.
DmitryR
Цитата(ViKo @ Jan 4 2018, 10:42) *
Так ведь работу PLL мегавизардом задают. Если бы что-то не устраивало, визард ошибку дал бы.

Я сейчас проверил в последней версии Квартуса: визард при попытке получить такие параметры ошибки не выдаёт, но настройки делает неправильные.
wolfman
Цитата(rolin @ Jan 4 2018, 16:23) *
Попробовал тестовый код на эталонной плате - оба ПЛЛ работают без проблем. Похоже, какие-то бракованные плисины попадаются или я не знаю что и думать.

Посмотрите внимательно маркировку плисин, мы один раз нарвались на перемаркированные 1-ые Циклоны. То, что маркировка перебита обнаружили случайно, под определённым углом было видно, что маркировка двойная, но надо было очень сильно крутить и угол освещения подбирать. Сделано на совесть было. Часть плисин нормально заводилась, часть не заводилась совсем. Проблемы были как раз с PLL. Из тех что заводились, часть отваливалась по температуре.

Еще может быть вариант когда клоки дифференциальные, то на ПЛИС вокруг них должно быть не менее 5 свободных ног. Иначе могут быть проблемы. Но Квартус об этом предупреждает, начиная с 15-ого точно.
svedach
Может быть ТС просто повезло с некоторыми PLL? 80 кГц - это очень мало и они не должны работать на такой частоте...
rolin
Цитата(DmitryR @ Jan 4 2018, 11:13) *
Чтобы получить 80кГц - надо иметь частоту VCO всего 41МГц. Очевидно, что стабильно это работать не обязано.

Так как генератор ПЛЛ работает в диапазоне 500 -600МГц, то работать на 41 он вообще не должен. Но видимо не ьак все просто там.
DmitryR
Цитата(rolin @ Jan 4 2018, 17:04) *
Так как генератор ПЛЛ работает в диапазоне 500 -600МГц, то работать на 41 он вообще не должен. Но видимо не ьак все просто там.

Не вижу какая вам разница, просто там всё или нет. Факт, что так, как вы делаете, работать не будет.
rolin
Цитата(wolfman @ Jan 4 2018, 13:20) *
Посмотрите внимательно маркировку плисин, мы один раз нарвались на перемаркированные 1-ые Циклоны.

Первые циклоны в корпусе F484 ? Ну не знаю. У них же вроде ноги не совпадают, вообще работать не будут. Даже если бы были третьи циклоны перебитые, то жрало бы так, что я бы заметил.
Кстати, некоторые экземпляры плат потребляют больше остальных, какое-то непостоянство у них в этом.

Цитата(svedach @ Jan 4 2018, 15:37) *
Может быть ТС просто повезло с некоторыми PLL? 80 кГц - это очень мало и они не должны работать на такой частоте...

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

Цитата(DmitryR @ Jan 4 2018, 18:06) *
Не вижу какая вам разница, просто там всё или нет. Факт, что так, как вы делаете, работать не будет.

Факт, что работает, если я на вход подаю такт 125 МГц от другого источника и ПЛЛ вдруг "выздоравливает".

Хотя, я не тестирую на 80кГц, я поставил 800кГц, но я проверял и на других частотах выходов и даже пытался вывести тутже частоту, что и зашла - не работает ПЛЛ именно когда вход у нее с этого источника
DmitryR
Цитата(rolin @ Jan 4 2018, 17:19) *
Виззард говорит, что может и по факту работает у меня уже давно и на третьем циклоне еще тоже работало. Главное, чтобы счетчики не были заняты на других выходах ПЛЛ.

Так на самом деле может работать при каскадировании счётчиков (ранее я думал, что в Cyclone IV это ещё не поддреживается). Однако повторю, у меня визард при вводе параметров, которые вы хотите получить делает неправильную конфигурацию. Проверьте, что все параметры PLL, в первую очередь частота VCO, конфигурируется им правильно.

Цитата(rolin @ Jan 4 2018, 17:19) *
Факт, что работает, если я на вход подаю такт 125 МГц от другого источника и ПЛЛ вдруг "выздоравливает".

Хотя, я не тестирую на 80кГц, я поставил 800кГц, но я проверял и на других частотах выходов и даже пытался вывести тутже частоту, что и зашла - не работает ПЛЛ именно когда вход у нее с этого источника

А вот если у вас и на обычных настройках не работает - тогда остаётся только сравнивать тактовые сигналы.
wolfman
Цитата(rolin @ Jan 4 2018, 23:49) *
Первые циклоны в корпусе F484 ? Ну не знаю. У них же вроде ноги не совпадают, вообще работать не будут. Даже если бы были третьи циклоны перебитые, то жрало бы так, что я бы заметил.

Нет, мы покупали именно партию 1-ых цмклонов.
Часть плат с ними заработала, часть нет, проблемы были с PLL, случайно заметил что под определенным углом видна другая маркировка. Начали выяснять, сейчас уже не помню, то ли оказались инженерные образцы, то ли какой-то левак. Где-то валяется бумага от Альтеры...

Но у вас похоже проблема в другом.
rolin
Цитата(DmitryR @ Jan 4 2018, 18:34) *
Так на самом деле может работать при каскадировании счётчиков (ранее я думал, что в Cyclone IV это ещё не поддреживается).

Значит используются счетчики от неиспользуемых выходов ПЛЛ, только виззард ничего об этом пользователю не говорит.
Работает это и на третьих циклонах, проверено. Думаю, в мире наберется тысщенка плат с третьим циклонами и с ПЛЛ выдающими 80кГц.
rolin
Похоже у плисины проблемы с конкретными входами тактовых сигналов.
Пытался завести клок с другой стороны плисины, не работало, потом заработало, но выходная частота немного отличалась от заданной и плавала в небольших пределах, потом выход заглох, но сигнал locked продолжал оставаться в высоком состоянии.

А потом плисина сдохла и перестала грузиться с памяти.

(наверное бензин кончился sm.gif )
nice_vladi
Цитата(rolin @ Jan 3 2018, 05:50) *
...

Опорник - 122.8 Мгц 1.8 вольт, входной порт указан как 1.8 Вольт вход.

На плате есть также еще один опорник с почти такой же частотой - 125МГц 3.3 вольта. При подаче его на вход ПЛЛ они работают хорошо. Конечно, при больших коэффициентах деления бывает не работает, но с этими приколами я знаком давно.

...


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

А еще стоит проверить качество монтажа ПЛИС на плату. Возможно, какие-то ноги плохо пропаяны и тупЯт. Такое вполне возможно. Для простейшей проверки можно вытащить на лампочки сигналы захвата ПЛЛ, тактовые частоты и попробовать паЛцами подавить (аккуратно) на плисину в разные углы - если сигналы на лампочках/пинах коррелируют с нажатиями - это повод задуматься))
rolin
Оказалось, что это не плисина сдохла, а один из источников питания плохо пропаян был, но это не было причиной проблемы.

Чтобы подтвердить или опровергнуть мою догадку, что ПЛЛу не нравятся определенные входы, пробовал подключать один и тат же ПЛЛ к разным входам плисины, благо плата позволяет это дело.
Это ничего не дало, наблюдал разного рода спецэффекты, обьяснить которые в здравом рассудке невозможно. Иногда было такое, что перезагрузка плисины меняла картину происходящего.

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

Имеется такое предупреждение, связанное с ПЛЛ, повторяется раз 6:

Код
Warning (332009): The launch and latch times for the relationship between source clock: PLL_inst|altpll_component|auto_generated|pll1|clk[0] and destination clock: PLL_122|altpll_component|auto_generated|pll1|clk[0] are outside of the legal time range. The relationship difference is correct, however the launch time is set to 0.


PLL_inst - это первый ПЛЛ, работающий от источника 125 МГц и от которого у меня моргают светодиодики и вообще шевелится вся схема.
PLL_122 - выдает только одну частоту 80кГц, используемую для таймера сброса и работает от другого источника 122.880 МГц.
Какая между этими ПЛЛ связь, ума не приложу, но Квартус видит между ними какую-то связь.


Цитата(nice_vladi @ Jan 5 2018, 11:36) *
Попробуйте внимательно проверить схему подключения дорожек к ПЛИС....

Спасибо за советы, но тут у меня и перепайка и другая плата уже, но не помогает. Схема давно отлажена, устройство можно сказать серийное.

В настоящий момент наблюдаю проблему - PLL_122 выдает частоту примерно в 1000 раз меньше, чем задано. Например, задаю 8 МГц на выход, осциллограф фиксирует примерно 7.3 кГц, частота нестабильная, сигнала locked нет.
Другой ПЛЛ PLL_inst работает без проблем.
rolin
Решил я перепаять плисины между эталонной платой, которая работает и проблемной платой.
Плисина, в которой не работал ПЛЛ, так и осталась нерабочей, а плисина, которая работала, поломалась, только перестал работать другой ПЛЛ, который от 125МГц работал.

И пришел я к выводу, что я неправильно паяю чипы и в результате этого они портятся.

Паяю на воздушной станции с подогревом, подогрев 200 градусов, температура воздушного потока 350. Понизить температуру не получилось, так как при этом резко возрастало время пайки и от этого могло быть только хуже.

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

Теперь я включаю фен на 200 градусов и подымаю температуру ступенчато по 50 до 350. Заканчиваю пайку в обратном порядке.

В тоге я перепаял новые плисины на платы и они обе нормально работают.

Такие дела.
Evgeny72
Цитата(rolin @ Jan 7 2018, 09:17) *
Решил я перепаять плисины между эталонной платой, которая работает и проблемной платой.

Вы посмотрите графики термо профилей для паяльных станций или лучше для паяемого чипа. Рекомендован плавный нагрев чипа и платы во избежании термоудара.
rolin
В результате всего этого безобразия было испорчено 11 чипов 4CE55F23 и 5 печатных плат потеряло товарный вид в результате большого количества перепаек.

Симптоматика повреждений самая разная.

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

У одного чипа было замыкание между линиями питания 1.2 и 3.3 вольта

Одни грузятся из памяти циклически, другие даже не грузятся.

Ну и частично рабочие, как уже описано выше было.

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

Температура фена была в принципе правильно откалибрована по температуре воздуха в центре сопла, но какую температуру нужно выставлять, чтобы снизу чипа было 200 градусов ? Фен же сверху дует. Я поставил чип на подставку и выяснил, что для того чтобы снизу чипа было 200 градусов, температура воздуха должна быть 280 градусов. Таким образом, температура воздуха была уменьшена на 70 градусов от того что было.

Время пайки при этом практически не изменилось.

Правда, проверить новые установки не получается пока - плисины кончились laughing.gif

Тем не менее, температура фена 280 градусов уже превышает максимальную допустимую температуру пайки для чипа 270 градусов, но делать нечего, иначе низ не прогреется достаточно. Таким образом, можно сделать вывод, что печка - наиболее безопасный способ пайки благодаря равномерному прогреву, а фен - опасный, так как приходится превышать температуру воздуха на фене.

dde29
Цитата(rolin @ Jan 7 2018, 10:17) *
Решил я перепаять плисины между эталонной платой, которая работает и проблемной платой.
Плисина, в которой не работал ПЛЛ, так и осталась нерабочей, а плисина, которая работала, поломалась, только перестал работать другой ПЛЛ, который от 125МГц работал.

И пришел я к выводу, что я неправильно паяю чипы и в результате этого они портятся.

Паяю на воздушной станции с подогревом, подогрев 200 градусов, температура воздушного потока 350. Понизить температуру не получилось, так как при этом резко возрастало время пайки и от этого могло быть только хуже.

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

Теперь я включаю фен на 200 градусов и подымаю температуру ступенчато по 50 до 350. Заканчиваю пайку в обратном порядке.

В тоге я перепаял новые плисины на платы и они обе нормально работают.

Такие дела.


Под этой плисиной, квадратный пад есть? Скорее всего не в тему, но если он не пропаян - плисина даже не заведется... Будет работать в режиме кнопки. А не... они же вроде только в корпусе ультраБГА, тогда какой нафиг квадратный пад)...
Вы БГАшну микросхему с таким количеством ног паяете одной лишь воздушной станцией???
rolin
Цитата(dde29 @ Jan 24 2018, 21:01) *
Вы БГАшну микросхему с таким количеством ног паяете одной лишь воздушной станцией???

484 ноги с шагом 1 мм не бог весть что. Воздушной станцией с нижним подогревом разумеется.
dde29
Цитата(rolin @ Jan 25 2018, 05:30) *
484 ноги с шагом 1 мм не бог весть что. Воздушной станцией с нижним подогревом разумеется.

А на какую температуру - нижний подогрев?
ilkz
Скорее всего дело в пайке, да. Рекомендую понаблюдать TopJTAG-ом (вытаксиваете ноги в нем на времянку и наблюдаете, давите на плис и т.п.).
У меня было похожее: ПЛИСина не заводится вообще -- перепаяли, заводится частично -- перепаяли, заводится еще больше -- перепаяли вот прям вообще вдумчиво - завелась норм.
Симптоматика была такой: частичная работа (либо только ПЛИС, либо HPS и тот частично), либо если пальцем нажать на чип то он оживает, либо он оживает сам после долгой запитки и прогрева, а потом снова отмирает (похоже на перемыкание шаров при тепловом расширении).
ViKo
Цитата(ilkz @ Jan 25 2018, 10:31) *
Рекомендую понаблюдать TopJTAG-ом

А нет ли у вас лечилки для него?
ilkz
Цитата(ViKo @ Jan 25 2018, 11:06) *
А нет ли у вас лечилки для него?

см личку )
ViKo
Цитата(ilkz @ Jan 25 2018, 11:15) *
см личку )

Ок! Thanks!
dde29
Цитата(ilkz @ Jan 25 2018, 11:15) *
см личку )

А мозня и мне? )))
rolin
Цитата(dde29 @ Jan 25 2018, 10:03) *
А на какую температуру - нижний подогрев?

На такую, чтобы температура в точке пайки была 200 градусов для свинцовой и 220-240 для безсвинцовой технологии.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.