реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Cyclone III, частотомер, PLL, Непонятные глюки PLL, Cross-Talking, температура
Reanimator++
сообщение Nov 8 2016, 21:38
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 1-01-06
Из: Волгоград
Пользователь №: 12 763



Надо помощь зала.
Напоролся на непонятную засаду в своем проекте.
Как и много лет назад, делаю многоканальный частотомер.
Смысл метода и структура на картинках (реальная битность счетчиков - 32, картинка старенькая, и счетчики синхронные).

ПЛИС - EP3C10
Дополнительно ко всему что на рисунке я использую 2 контрольных счетчика для точек 1) и 2) (красным на рисунке), т.е. прошу систему посчитать собственную опорную частоту, умноженную PLL. (Входная 10 МГц, счетная 100). Pll в режиме Source Syncrous mode.
Обычно значение второго счетчика ровно в 10 раз больше значения первого. Если появились расхождения значит мы имеем большой джиттер в опорной частоте и потенциальную неисправность, результат замера выбраковывается. Такой вот самоконтроль.

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

Суть проблемы. Когда подается на частотомер много (более 20) входных сигналов (все они 3.3В КМОП), и при температуре выше 70°С, система начинает сыпать ошибки измерений. Контрольный счетчик не сходится.
Что интересно, счетчик заполнения всегда выдает значения кратные 10, а сам счетчик опоры выдает значения немного меньше (на 10-50 импульсов), чем соответствовало бы счетчику заполнения. То есть. Измеряем 0.4 секунды. В счетчике 1 видим 4000123, в счетчике 2 видим 40001350.

Т.е. либо PLL не множит, либо счетчик сбивается (ну, еще может выгрузка данных но не верю).
Эффект повторяется на разных платах в партии (все пока не оттестировали).

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

Эффект исчезает если убрать счетные частоты - оставляем одну - прекрасно считает на 100°С. Наводит мысль на какую-то проблему с Cross-Talking. Но опять же непонятно почему этого не было на других ревизиях.

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

TimeQuest ругается на Hold time по частоте sclk - последовательной выгрузки данных. Больше никаких предупреждений нет. Выгрузку выполняем очень медленно (<100 кГц), поэтому тоже не верю.

Загрузка ПЛИС по ячейкам 99.5%. Пробовал снижать разрядность счетчиков и уменьшать до 90% - не помогало.

На плате 6 слоев, опорный слой земли имеется, разведено вроде прилично. Блокировки рядом, на питание PLL ферритовый фильтр. Пробовали дополнительно кондерами обвешивать питание PLL - не помогает.

Што проверять куда копать? )

Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
iosifk
сообщение Nov 8 2016, 21:46
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Reanimator++ @ Nov 9 2016, 00:38) *
Што проверять куда копать? )

Сколько выводов из ПЛИС переключается одновременно и каков стандарт этих выводов. У ксайлинкса есть ограничение на это дело... Скажем так, если 24 мА то вроде десяток выводов, а если 4 мА то в несколько раз больше...
Проверьте..


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 9 2016, 05:09
Сообщение #3


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Температура ПЛИС превышена. Надо кулер прицепить.
Go to the top of the page
 
+Quote Post
warrior-2001
сообщение Nov 9 2016, 05:35
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792



в топике не указана версия квартуса. Мною замечено, что если в последних версиях квартус ругается в TimeQuest, то он как бы сказать - хуже разводит чтоли. Как только правильно настроены все констрэйнты - сразу все ок. Посему для начала советую убрать все слэки.
Ну а потом - сигналтап в помощь. И ещё - нужно корректно настроить параметры внешней среды в квартусе - нет кулера, температура воздуха высокая и тому подобное. Тогда TimeQuest может заругаться и на основные клоки!


--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 9 2016, 06:22
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(warrior-2001 @ Nov 9 2016, 08:35) *
Тогда TimeQuest может заругаться и на основные клоки!

Если они, вообще, правильно описаны.
У PLL есть выход Lock. Надо посмотреть, не срывается ли ФАПЧ.
Go to the top of the page
 
+Quote Post
Reanimator++
сообщение Nov 9 2016, 07:47
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 1-01-06
Из: Волгоград
Пользователь №: 12 763



Цитата(iosifk @ Nov 9 2016, 00:46) *
Сколько выводов из ПЛИС переключается одновременно и каков стандарт этих выводов.

У плис 85 входов LVCMOS и 1 выход LVCMOS. Питание всех I/O банков 3.3В.

Цитата(ViKo @ Nov 9 2016, 08:09) *
Температура ПЛИС превышена. Надо кулер прицепить.

Чип индустриального диапазона. Кулер прицепить не получится, плата работает в термокамере. Надо стабильный результат до +85.


Цитата(warrior-2001 @ Nov 9 2016, 08:35) *
в топике не указана версия квартуса. Посему для начала советую убрать все слэки.
Ну а потом - сигналтап в помощь. И ещё - нужно корректно настроить параметры внешней среды в квартусе - нет кулера, температура воздуха высокая и тому подобное. Тогда TimeQuest может заругаться и на основные клоки!

Квартус 9.1 sp2 32bit.
Слэков по счетным частотам нету, и fmax кажет 170-250 МГц. Единственный небольшой слэк на hold клок sclk для сдвиговых регистров.
SignalTap я ранее не пользовался, и как это сделать для данного асинхронного дизайна я не соображу до конца. Тут по сути 84 разных клока, из них 83 асинхронны. (80 счетных входов, клок выгрузки данных, опорная частота и частота заполнения после PLL).
Режима работы по сути два - режим счета и режим выгрузки данных.

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

Lock сейчас посмотрим, спасибо.

Код выложить?
Go to the top of the page
 
+Quote Post
warrior-2001
сообщение Nov 9 2016, 08:20
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792



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


--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
Go to the top of the page
 
+Quote Post
Reanimator++
сообщение Nov 9 2016, 10:58
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 1-01-06
Из: Волгоград
Пользователь №: 12 763



PLL Lock падает.

Зависимость есть как от температуры, так и от количества подаваемых сигналов.
Есть некоторые сигналы которые влияют сильнее (падать начинает раньше чем с другими).

Распиновка конечно же изменилась также как и вся плата.

Что искать в питании?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 9 2016, 12:04
Сообщение #9


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Reanimator++ @ Nov 9 2016, 13:58) *
PLL Lock падает.
Что искать в питании?

Напряжение. Может, регулятор напряжения проседает?
Развязку конденсаторами согласно рекомендациям.
По всем ножкам пройтись, убедиться, что сделано правильно.
И разводка, конечно. Земли не жалеть.
Go to the top of the page
 
+Quote Post
Reanimator++
сообщение Nov 9 2016, 13:13
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 1-01-06
Из: Волгоград
Пользователь №: 12 763



На плате слой земли и питание тоже широкими полигонами подходит.
Прошлись по питаниям.
Осциллом ничего не видно на максимальном усилении.
Дополнительно повесили по 1нФ прямо на лапки между AVDD и AGND.
AVDD по даташиту - стаб, 10мкф, 1 мкф, фильтр ферритовый 1кОм, 10мкф, 0.1мкф х 2шт, 0.01 мкф х 2шт.

Попробовали вывести наружу клок до PLL и после PLL. (из точек 1 и 2)
Клок до PLL совпадает по осцилу с входящим в ПЛИС клоком (в любых условиях).
Клок после PLL ведет себя стабильно до тех пор пока не подаем сигналы на счетные входы.
Когда подаем сигналы, клок после PLL начинает дрожать. (пробовали на частоте 20 МГц)
Даже при наличии нормального PLL Lock появляется большой джиттер.

Делаем следующее - берем клок и подаем на плисину в LVDS виде (LVDS приходит на плату, там отдельно приемник и конвертер в КМОП стоит).
И о чудо, PLL начинает работать стабильно, джиттер на выходе пропадает, ошибки исчезают.

Т.е. либо мы профукали где-то клок при транспорте КМОП по плате (хотя там всего 3 см дорожки и два получателя - ПЛИС и процессор),
либо условия входа КМОП сигнала в плисину создались какие-то непонятные.
Более всего непонятно, что клок выведенный из плисины из точки 1 по осцилу точно совпадает со входным. Не видно ни джиттера, ни пропусков, никаких отклонений (смотрели в режиме накопления).
Получается что форма входного сигнала влияет на работу PLL. странно.
посмотрим, пока оно на столе только ожило, надо проверить во всем диапазоне и на выборке плат.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Reanimator++
сообщение Nov 10 2016, 16:01
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 1-01-06
Из: Волгоград
Пользователь №: 12 763



1. Клок берется с внешнего рубидиевого генератора. Вне платы (и в нормальных условиях) преобразуется в LVDS и уже по диф. паре идет на плату.
На плате стоит приемник LVDS > CMOS, далее клок подается на ПЛИС и процессор.
2. Везде стоят согласующие резисторы 33Ом со стороны источника, все высокочастотные (>10 МГц) дорожки выполнены над опорным слоем земли с расчетным импедансом 60-70 Ом, т.е. КМОП линии согласованы корректно. Осциллографом выбросов не видно.

3. Поскольку LVDS приемник на плате стоит в 20мм от плисины, мы просто кинули входящий LVDS проволочками на свободный клоковый вход и переконфигурировали его в LVDS приемник. Тогда все заработало.
И еще один важный момент - нужно было убрать галочку auto reset PLL on loss lock. С этой галкой PLL периодически сбрасывался (и замеры не шли). Когда сняли галку Lock перестал падать и замеры пошли.

Плата отработала сутки во всем температурном диапазоне с полной нагрузкой по 80 входам, сегодня мы сняли ее с установки и она сдохла - походу убили статикой по длинной LVDS линии (при подтыкании платы LVDS сигнал садит на землю). Внешний приемник ставили все-таки не спроста.
to be continued..
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 10 2016, 18:53
Сообщение #12


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



А какой приемник LVDS > CMOS?
Go to the top of the page
 
+Quote Post
Reanimator++
сообщение Nov 11 2016, 14:39
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 1-01-06
Из: Волгоград
Пользователь №: 12 763



ds90lv012a

Приемник стоит рядом с плисиной. Нагреваем его вместе с ней феном на столе. КМОП сигнал клока идеален.
Самое интересное что мы берем входной ТТЛ сигнал, внутри коммутируем на другой pin плисины с помощью assign, и втыкаемся осциллографом в обоих. Они совпадают с точностью до небольшой задержки. Осциллограф разницы не видит, в т.ч. в режиме накопления.

Сейчас вышли исключительно тупо. На КМОП выход LVDS приемника присоплили LVDS передатчик и подали клок в плисину. Работает.
Т.е. присутствует зависимость от вида сигнала (КМОП, LVDS), и от места подачи (CLK0, CLK1).
Причем сам сигнал входит и выходит из плисины корректно. А вот PLL может работать а может не работать.
Весь огород, поставили на тест на ночь, продолжаем.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 11 2016, 19:56
Сообщение #14


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Vcca? Vccd_pll?
Go to the top of the page
 
+Quote Post
warrior-2001
сообщение Nov 19 2016, 07:57
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792



Явно глючит pll. Выше правльно указывают Vcca и Vccd_pll.
Косяк не во входном сигнале, а в работе pll. Очень похоже на просадку или дребезг в питании pll.

И еще - в последнее время несколько раз натыкался на битые 3 циклоны! Поставщики разные, некоторые без вопросов заменили кристаллы, но факт есть факт!


--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 17:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01517 секунд с 7
ELECTRONIX ©2004-2016