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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> АЦП ADS42LB49/69, QDR режим, как использовать FRAME
Алга
сообщение May 2 2016, 17:55
Сообщение #31


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

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



Cогласно Xapp585 предусмотрена следующая структура :
-Вход frameclk поступает на MMCME для генерации битклока, те здесь производится умножение частоты для приема данных в ISERDES, например в моем случае frameclk равен 62.5 Mhz, битклок необходим 375 Mhz для приема 12 бит данных в режиме DDR. Параллельно Вход frameclk поступает на IDELAY, ISERDES.
-Каждый Вход данных подключены через IDELAY, ISERDES.
-На ППМ длина проводников frameclk (клоковый вход фпга) и данных выравнены.
Работа автомата калибровки следующая: производится поиск центра БИТданных,
для этого установливается начальная задержка IDELAY равная нулю, Производится прием данных frameclk, и фиксируются эти данные. Увеличиваем задержку. Считываем данные frameclk'а и сравниваем с предыдущим значением. Если эти данные не совпали (это означает что попали на фронт,спад данных) то запоминается величина задержки и данные frameclk'а. Далее увеличивая задержку ищем второй переход(изменение данных) и также запоминаем. Затем вычисляется разница кода задержки первого и второго переходов, делится на 2 добавляется к задержке первого перехода (или вычитается из задержки второго перехода) и устанавливается полученное значение задержки в IDELAY. Поскольку frameclk и линии данных выравнены то задержки для всех IDELAY также равны.
Далее калибровка- битслип выравнивание принимаемых 12 бит данных по границе. Производится путем сравнения принимаемых данных с кодом frameclk = 000000111111 и управляя сигналом BITSLIP ISERDES. Делается мах 12 циклов чтобы получить желаемый код frameclk'a. Калибровки закончены. Ждем следующего запуска.

Если frameclk и линии данных имеют разную длину, То АЦП нужно установить в режим калибровки (тестовый режим когда он генерирует код допустим похожий на код frameclk (000000111111). И С КАЖДОЙ линией данных провести операцию по подстройке задержки для поиска центра (середины). И потом битслип операция.

xapp585
Go to the top of the page
 
+Quote Post
doom13
сообщение May 3 2016, 07:03
Сообщение #32


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

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Спасибо. Вроде понял, буду пробовать. Пока пытался синхронизироваться с использованием только bitslip-a, как итог - тестовую последовательность ловит, но при переключении АЦП в рабочий режим данные неправильные, плюс может настроиться не на каждую тестовую последовательность. Надеюсь, установка клока в центр данных поможет решить проблему.

Цитата(Алга @ May 2 2016, 20:55) *
Поскольку frameclk и линии данных выравнены то задержки для всех IDELAY также равны.

Можно ли на это раcсчитывать, наверное лучше сразу делать синхронизацию для каждой линии?
Go to the top of the page
 
+Quote Post
Алга
сообщение May 3 2016, 09:00
Сообщение #33


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

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



Подстройка задержки для каждой линии данных, конечно, более надежное решение.
Очень важно установить клок в центр данных для каждой линии.
Если задержка одна и таже для всех (упрощенный вариант), То мало ли что может произойти, например, при производстве.
И тогда поиск неработоспособности.
Go to the top of the page
 
+Quote Post
doom13
сообщение May 31 2016, 10:54
Сообщение #34


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

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Алга @ May 2 2016, 20:55) *
... Если эти данные не совпали (это означает что попали на фронт,спад данных) ...

Что можете сказать по поводу длительности фронта? Можно ли по однократному несовпадению утверждать, что попали на фронт?

Есть 12 каналов АЦП (3 АЦП по 4 канала), режим работы: 8-bit serialization, 2-line mode (каждый канал передаётся по двум линиям), DDR LVDS, битовый клок 400 МГц, иногда один/два канала синхронизируются криво (тестовая последовательность 0xF0 на линии принимается нормально, но при переключении в рабочий режим данные принимаются неправильно, на последовательность 0xAA вообще не каждый канал может настроиться).
Go to the top of the page
 
+Quote Post
Алга
сообщение Jun 1 2016, 07:18
Сообщение #35


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

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



В Xilinx документации говорится, что переход (фронт/спад) проявляется в течении 3 тапов (единиц) задержки, те 3 тапа х 78 ps.
Можно все это по шагам посмотреть: устанавливаешь задержку- получаешь данные, следующая задержка- следующие данные. Ну и анализ
Те посмотреть что реально происходит И несколько раз повторить.
Go to the top of the page
 
+Quote Post
Алга
сообщение Jun 1 2016, 12:18
Сообщение #36


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

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



Дополню: берете самый худший АЦП и снимаете характеристику задержка (0-31) и принимаемые данные.
У вас должен быть стабильный участок длиной 16 ед задержки 400Mhz= 2.5 ns, DDR, полпериода 1.25 ns/78 ps= 16 eд.
Лучше считается участок более ближний к нулю, меньше джиттер.
И в результате этой калибровки нужно получить средину этого участка. Те задержка равна средине этого участка.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 1 2016, 13:37
Сообщение #37


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

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Спасибо. Пока нашёл баг в своей стейтмашине, вернее в самом алгоритме - 3 тапа на переходные процессы после нахождения фронта, в найденном примере использовалось окно 4 тапа и я так же сделал (ранее не использовал окно при нахождении первого фронта). Стало работать стабильнее. Сейчас стало синхронизироваться и на 0xAA, но всё равно иногда вылетает один канал (всегда один и тот же).

Цитата(Алга @ Jun 1 2016, 15:18) *
Дополню: берете самый худший АЦП и снимаете характеристику задержка (0-31) и принимаемые данные.
У вас должен быть стабильный участок длиной 16 ед задержки 400Mhz= 2.5 ns, DDR, полпериода 1.25 ns/78 ps= 16 eд.
Лучше считается участок более ближний к нулю, меньше джиттер.
И в результате этой калибровки нужно получить средину этого участка. Те задержка равна средине этого участка.

Длительность бита 1.25 ns/78 ps= 16 eд, т.е. длительность стабильного участка будет меньше?
Go to the top of the page
 
+Quote Post
Алга
сообщение Jun 1 2016, 14:05
Сообщение #38


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

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



Да, похоже на эти 3 ед нестабильного перехода.
Важно отработать алгоритм работы автомата для надежного и стабильного поиска середины(центра) данных.
Потом еще важна процедура битслип чтобы получить правильные данные.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 1 2016, 15:00
Сообщение #39


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

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Как у Вас происходит оценка текущего положения клока - по одной точке или оцениваете выборку (т.е. для каждого тапа оценка что делать далее осуществляется по одной временной точке или оцениваете выборку)?
Go to the top of the page
 
+Quote Post
Алга
сообщение Jun 1 2016, 17:18
Сообщение #40


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

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



Пока алгоритм у меня работает без всяких усреднений.
Те каждому тапу задержки (после смены величины задержки-
моя временная задержка на установление процесса) получаю одно значение данных фреймклока
(без накопления и усреднения) и которое затем использую для сравнения с предыдущей запомненной.
(Ошибка подстройки задержки на единицу (две) к ухудшению качества приема данных не приводит в наших условиях).
Параметры АЦП похожи 375 Мгц DDR, 12bit (В проекте 4 АЦП 12bit, 8 lvds пар линий данных плюс фреймклок каждый)
Пока алгоритм такой.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th June 2025 - 20:39
Рейтинг@Mail.ru


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