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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Калибровка шины DDR
_Anatoliy
сообщение Oct 3 2016, 12:36
Сообщение #1


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Коллеги, а есть какая либо методика достоверной калибровки фазы клока приёмника этой шины? Просто сейчас столкнулся с тем что при передаче состояния счётчика по шине приём идёт без ошибок(благо при передаче счётчика очень легко поставить ловушку ошибок). Я и успокоился. Но при подключении на передающей стороне АЦП без сигнала(передаётся только шум младших бит) очень хорошо просматривается "залипание" некоторых бит. Получается что приём счётчика без ошибок ещё не гарантирует безотказную работу шины. Передавать какой нибудь LFSR? А как контролировать ошибки? Речь не идёт о работе с памятью, чисто шина FPGA-FPGA.
Go to the top of the page
 
+Quote Post
dm.pogrebnoy
сообщение Oct 3 2016, 16:25
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 747
Регистрация: 11-04-07
Пользователь №: 26 933



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


--------------------
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Oct 3 2016, 16:28
Сообщение #3


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(dm.pogrebnoy @ Oct 3 2016, 19:25) *
Как вариант, возможно нужно просто включить DIFF_TERM во входном буфере (это у Xilinx, у Альтеры может как-нибудь по-другому называется).

Согласен,у Xilinx это легко включается, а вот у Альтеры что то не найду,чип Аррия-5, может кто подскажет?
Go to the top of the page
 
+Quote Post
Raven
сообщение Oct 3 2016, 16:36
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 491
Регистрация: 16-01-05
Из: Санкт-Петербург
Пользователь №: 1 987



Цитата
Но при подключении на передающей стороне АЦП без сигнала(передаётся только шум младших бит) очень хорошо просматривается "залипание" некоторых бит.


Извините, но почему вы решили, что подобное "залипание" - это не есть отражение реального видения АЦП напряжения на своем плавающем входе? "Залипают" очень большие разряды? Тоже может быть не показатель. Наводки от руки на плавающий вход осциллоскопа доводилось, наверное, наблюдать.
Go to the top of the page
 
+Quote Post
ovs_pavel
сообщение Oct 3 2016, 18:10
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 275
Регистрация: 19-05-06
Пользователь №: 17 249



Цитата(_Anatoliy @ Oct 3 2016, 19:28) *
Согласен,у Xilinx это легко включается, а вот у Альтеры что то не найду,чип Аррия-5, может кто подскажет?


set_instance_assignment -name INPUT_TERMINATION DIFFERENTIAL -to <input_pin>

Отсюда:

https://www.altera.com/support/support-reso...032011_226.html
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Oct 4 2016, 03:53
Сообщение #6


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Raven @ Oct 3 2016, 19:36) *
Извините, но почему вы решили, что подобное "залипание" - это не есть отражение реального видения АЦП напряжения на своем плавающем входе? "Залипают" очень большие разряды? Тоже может быть не показатель. Наводки от руки на плавающий вход осциллоскопа доводилось, наверное, наблюдать.

Нет,это совершенно из другой оперы. На 12-ти битном АЦП часто "залипает" 10-й бит,иногда 9-й. Но на сам сигнал на передающей стороне перед регистрами DDR ставил ловушку - чисто. Интересно что я формировал модулированный радиоимпульс ЛЧМ - никаких искажений не видел, а вот шумок сразу показал истинную ситуацию.

Цитата(ovs_pavel @ Oct 3 2016, 21:10) *

Спасибо!
Go to the top of the page
 
+Quote Post
cyclop
сообщение Oct 4 2016, 14:42
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 55
Регистрация: 29-01-05
Из: Moscow
Пользователь №: 2 291



Цитата(_Anatoliy @ Oct 3 2016, 15:36) *
... Получается что приём счётчика без ошибок ещё не гарантирует безотказную работу шины. Передавать какой нибудь LFSR? А как контролировать ошибки? Речь не идёт о работе с памятью, чисто шина FPGA-FPGA.
Код Грея очень помогает в случае, подобном вашему. Здесь про АЦП. Проверку с использованием ПСП (М - последовательности) реализовать не так уж сложно, т.к. число тактов будет известно. Кстати, нельзя исключать и не слишком удачную разводку. Успехов.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Oct 4 2016, 16:42
Сообщение #8


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(cyclop @ Oct 4 2016, 17:42) *
Код Грея очень помогает в случае, подобном вашему. Здесь про АЦП. Проверку с использованием ПСП (М - последовательности) реализовать не так уж сложно, т.к. число тактов будет известно. Кстати, нельзя исключать и не слишком удачную разводку. Успехов.

Не читайте на ночь советских газет(С).Насчёт кода грея очень сомневаюсь,не его это задача. Для линейного счётчика - это да, а когда АЦП оцифровывает синус с тремя отсчётами на период - то тут уж извините.
Теперь о результатах. Поставил терминаторы, перекалибровался ещё раз - за 10 минут ни единой ошибки, я и успокоился. Часа три занимался этим же проектом, но другими узлами,питание не выключал. Потом решил ещё раз проверить ошибки - оказалось примерно 200 битовых ошибок за 1 мс. Перекалибровался ещё раз, через два часа проверил - опять ошибки идут. И что же делать дальше? Знак ошибки не изменился, сначала был код задержки 6, во второй раз пришлось увеличить до 11, а в третий раз поставил 15. Задержку меняю в лапах. Тактовая частота 300Мгц, две шины по 12 бит. Есть ли мысли?
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Oct 4 2016, 17:22
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

Цитата(_Anatoliy @ Oct 4 2016, 19:42) *
.... Тактовая частота 300Мгц, две шины по 12 бит. Есть ли мысли?

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

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

Удачи! Rob.
Go to the top of the page
 
+Quote Post
Алга
сообщение Oct 5 2016, 05:33
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 116
Регистрация: 29-12-04
Пользователь №: 1 739



Цитата
сначала был код задержки 6, во второй раз пришлось увеличить до 11, а в третий раз поставил 15. Задержку меняю в лапах. Тактовая частота 300Мгц, две шины по 12 бит. Есть ли мысли?

В начале работы, при старте АЦП нужно делать подстройку клока в центр принимаемых данных от АЦП (сделать "глаз").
Тема калибровок АЦП (надежного приема даных от АЦП) обсуждалась ранее

http://electronix.ru/forum/index.php?showtopic=128018
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Oct 5 2016, 06:43
Сообщение #11


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



С утра включил с кодом 15 - полёт нормальный. Будем считать что поторопился... Обычно я кручу фазу приёмника в одном направлении до появления ошибок,потом в обратном и устанавливаю среднее значение. А всё таки это очень длительный процесс - нельзя ли как то (скриптом каким) оперативно изменять значения задержек в iodelay? Ведь чтобы изменить эту константу совсем не обязательно пересобирать весь проект. А так приходится ждать по 30 минут для каждого изменения.
Go to the top of the page
 
+Quote Post
Алга
сообщение Oct 5 2016, 07:10
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 116
Регистрация: 29-12-04
Пользователь №: 1 739



Создается автомат (FSM), который по запуску АЦП, производит автоматическую поиск и установку
клока в центр данных, меняя (перебирая ) значения задержек и определения оптимальной задержки.
У Xilinx есть много xapp'ов на эту тему с примерами. Зависит от семейств ФПГА.
Например xapp855,xapp856,xapp860, xapp866,xapp1064,xapp1071,xapp585
У Альтеры также есть инструменты надежного приема данных от АЦП с документацией
взависимости от семейства
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Oct 5 2016, 07:22
Сообщение #13


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Алга @ Oct 5 2016, 10:10) *

У меня Альтеровская ария5,ткните,плз, где описано как динамически изменять задержки. DLL или что то ещё?

Altiobuf ? Читал но ничего не понял,никакой конкретики...
Go to the top of the page
 
+Quote Post
Алга
сообщение Oct 5 2016, 07:42
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 116
Регистрация: 29-12-04
Пользователь №: 1 739



Я работаю с Xilinx. Но похоже у вас клок не попадает в центр данных. Это надо обеспечить.
Потом возможно несоответствие метода приема и разводки линий даных АЦП на плате (выравнивание).
Всю документацию и рекомендации от Алтеры надо просмотреть.
Как это обеспечивается Timing constraints и тд
Какие мегафункции используете для приема данных
Допустим может надо использовать ALTDDIO_IN или ALTLVDS_RX.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Oct 5 2016, 07:51
Сообщение #15


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Алга @ Oct 5 2016, 10:42) *

Ясно,спасибо!
Нашёл altiobuf_design_example , будем разбираться.
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 - 09:42
Рейтинг@Mail.ru


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