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

 
 
> Прием данных с АЦП AD9681
Art55555
сообщение Oct 3 2017, 14:19
Сообщение #1


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

Группа: Участник
Сообщений: 184
Регистрация: 7-10-10
Пользователь №: 59 981



Есть Artix7 и AD9681.

Приём сделан по схеме DATA_PIN- IBUFDS-IDELAYE2-ISERDESE2.
К выходу ISERDESE2 я подключил калибратор.
Выбранный режим приёма - DDR two-lane, bytewise.

Далее привожу алгоритм.
1) По SPI выбираю режим передачи данных DDR two-lane, bytewise -0x21 значение 30.


2) По SPI выбираю режим передачи тестовой последовательности, состоящей из 2 слов. - 0x0D значение 04.



3) Используя перебор 32 значений IDELAYE2 и 8 bitslip-ов я добиваюсь того, чтобы на выходе ISERDESE2 появились искомые A8 54 на одном лэйне и AA 55 на другом. Автомат проверяет, чтобы стабильный результат на выходе был не менее 8192 раз. Если нет, то либо задержка, либо (если задержка достигает 32 - битслип). В итоге стабильно добиваюсь такого результата:



4) По SPI выбираю режим отключения тестовой последовательности, состоящей из 2 слов. - 0x0D значение 00.

И вижу такой результат при подаче с генератора синуса частоты 1 МГц:




Т.е. явно видно, что какой-то бит явно "врёт", хотя если опять вернуться на тестовую последовательность, то всё по-прежнему ок.

В чём может быть проблема?

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Art55555
сообщение Oct 18 2017, 17:15
Сообщение #2


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

Группа: Участник
Сообщений: 184
Регистрация: 7-10-10
Пользователь №: 59 981



Сделал 2 различных варианта работы.
Пробовал как в XAPP 524, так и и по XAPP585.
В обоих документах калибровка начинается с "выравнивания" такта.
Про данные позже.
Вход защёлкнут IBUFGDS. Далее так идёт на IDELAY2, выходит задержанный сигнал, идёт на вход DDLY ISERDES. Выход, который О, раздваивается на IOBUF (нужен в качестве быстрого такта для ISERDESов) и на BUFR (делит на 4) и используеся в качестве делённой частоты, также идёт на ISERDESы. Выход ISERDES анализируется.
Также отмечаю, что пробовал ещё несколько вариантов деления частоты, использования MMCM и др.
Подстройку провожу с помощью C и CE на IDELAYE2. Совершенно не нравится, что результат не меняется или меняется на 1 отчёт, а потом восстанавливаеся.
Поясню. В режиме защёлкивания такта DDR я всегда получаю значение 55. Если даю задержку (через VIO), то один такт получаю что-то типа 5E, а потом опять 55.
Если ставлю SDR, то итоговое значение FF, которое также не меняется - хоть на СЕ всегда подавай 1.

Один из вариантов кода привожу ниже.

x_dco0 : IBUFGDS
generic map (
DIFF_TERM => TRUE, -- Differential Termination
IBUF_LOW_PWR => TRUE, -- Low power (TRUE) vs. performance (FALSE) setting for referenced I/O standards
IOSTANDARD => "LVDS_25")
port map (
O => aclk, -- Clock buffer output
I => dco1p, -- Diff_p clock buffer input (connect directly to top-level port)
IB => dco1n -- Diff_n clock buffer input (connect directly to top-level port)
);

xIDELAY: IDELAYE2
generic map (
SIGNAL_PATTERN => "CLOCK",
REFCLK_FREQUENCY => 200.0,
HIGH_PERFORMANCE_MODE => "TRUE",
--FINEDELAY => "BYPASS",
DELAY_SRC => "IDATAIN",
CINVCTRL_SEL => "FALSE",
IDELAY_TYPE => "VARIABLE",
IDELAY_VALUE => 0,
PIPE_SEL => "FALSE"
)
port map (
DATAIN => '0',
IDATAIN => aclk,
DATAOUT => d_aclk,

C => aclk_div,
CE => set_idelay_dco,
INC => '1',
LD => '0',
CNTVALUEIN => "00000",
CNTVALUEOUT => open,-

REGRST => reset,
CINVCTRL => '0',
LDPIPEEN => '0'
);



BUFR_ins1 : BUFR
generic map (
BUFR_DIVIDE => "4", -- Values: "BYPASS, 1, 2, 3, 4, 5, 6, 7, 8"
SIM_DEVICE => "7SERIES" -- Must be set to "7SERIES"
)
port map (
O => aclk_div, -- 1-bit output: Clock output port
CE => '1', -- 1-bit input: Active high, clock enable (Divided modes only)
CLR => '0', -- 1-bit input: Active high, asynchronous clear (Divided modes only)
I => IntBitClk -- 1-bit input: Clock buffer input driven by an IBUFG, MMCM or local interconnect
);

xCLK_FB_inv: bufio port map ( i => IntBitClk, o => aclk_int ); --FB
aclk_int_n<=not aclk_int;

xISERDES111: ISERDESE2
generic map (
SERDES_MODE => "MASTER",
INTERFACE_TYPE => "NETWORKING",
IOBDELAY => "IBUF",
DATA_RATE => "DDR",
DATA_WIDTH => 8,
DYN_CLKDIV_INV_EN => "FALSE",
DYN_CLK_INV_EN => "FALSE",
NUM_CE => 1,
OFB_USED => "FALSE",
INIT_Q1 => '0',
INIT_Q2 => '0',
INIT_Q3 => '0',
INIT_Q4 => '0',
SRVAL_Q1 => '0',
SRVAL_Q2 => '0',
SRVAL_Q3 => '0',
SRVAL_Q4 => '0'
)
port map (
-- Registered outputs
Q1 => dco_calib_out(0),
Q2 => dco_calib_out(1),
Q3 => dco_calib_out(2),
Q4 => dco_calib_out(3),
Q5 => dco_calib_out(4),
Q6 => dco_calib_out(5),
Q7 => dco_calib_out(6),
Q8 => dco_calib_out(7),
-- Unregistered output
O => IntBitClk, --ser_dat(ii),
-- Carry out for bit expansion
SHIFTOUT1 => open,
SHIFTOUT2 => open,
-- Serial data in from PAD or IODELAY
D => '0',-- aclk,--'0',
DDLY => d_aclk,--d_aclk,
-- Carry in for bit expansion
SHIFTIN1 => '0',
SHIFTIN2 => '0',
-- Clock signals
CLK => aclk_int,-- high-speed clock
CLKB => aclk_int_n, -- inverted clock
CLKDIV => aclk_div,-- divided clock
-- Clock enable
CE1 => '1',
CE2 => '0',
-- Reset
RST => reset, --rst(i),
--- NOT USED
BITSLIP => '0', -- bitslip operation-------------------
OCLK => '0', -- high-speed clock
OCLKB => '0', -- inverted clock

DYNCLKSEL => '0',
DYNCLKDIVSEL => '0',
CLKDIVP => '0',
OFB => '0' -- feedback path

);

dco_calib_out_t<=dco_calib_out;

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Art55555   Прием данных с АЦП AD9681   Oct 3 2017, 14:19
- - AVR   Цитата(Art55555 @ Oct 3 2017, 17:19) И ви...   Oct 3 2017, 14:23
- - Amurak   А если скремблер подать?   Oct 3 2017, 15:28
- - khach   Так PN9 подайте и все сразу видно будет если цифро...   Oct 3 2017, 19:38
- - Flip-fl0p   Цитата3) Используя перебор 32 значений IDELAYE2 и ...   Oct 3 2017, 20:14
- - monty   не стоит городить велосипед - возьмите готовый ад-...   Oct 4 2017, 04:15
|- - Art55555   Цитата(monty @ Oct 4 2017, 08:15) не стои...   Oct 4 2017, 07:32
|- - sawyer0   Цитата(Art55555 @ Oct 4 2017, 07:32) В оп...   Oct 4 2017, 07:51
- - Алга   Посмотрите также Xilinx xapp524, xapp585, xapp1071...   Oct 4 2017, 16:33
- - Art55555   Я, конечно же, брал за основу эти документы. Брос...   Oct 6 2017, 12:44
- - Алга   Кратко процесс калибровки: первый этап- поставить ...   Oct 6 2017, 16:14
- - khach   А информация из http://www.analog.com/media/en/tec...   Oct 6 2017, 16:36
|- - Art55555   Цитата(khach @ Oct 6 2017, 20:36) А инфор...   Oct 9 2017, 12:37
- - Art55555   Я НЕ использую FRAME - калибруюсь по последователь...   Oct 9 2017, 16:48
|- - Flip-fl0p   ЦитатаКратко процесс калибровки: первый этап- пост...   Oct 9 2017, 20:04
|- - Tausinov   Цитата(Flip-fl0p @ Oct 9 2017, 23:04...   Oct 18 2017, 12:18
|- - Flip-fl0p   Цитата(Tausinov @ Oct 18 2017, 15:18) Про...   Oct 18 2017, 12:35
- - Алга   FRAME (frame clk) должен использоваться в любом сл...   Oct 10 2017, 05:12
|- - Flip-fl0p   Цитата(Алга @ Oct 10 2017, 08:12) FRAME (...   Oct 10 2017, 06:14
- - Алга   У меня за основу принят xapp585. В системе 4 отдел...   Oct 10 2017, 06:43
|- - Flip-fl0p   Цитата(Алга @ Oct 10 2017, 09:43) У меня ...   Oct 10 2017, 06:58
|- - Art55555   Цитата(Алга @ Oct 10 2017, 09:43) У меня ...   Oct 18 2017, 12:13
- - Алга   Примитив IDELAYCTRL в системе заведен? Можно прове...   Oct 18 2017, 17:39
|- - Art55555   Цитата(Алга @ Oct 18 2017, 20:39) Примити...   Oct 18 2017, 22:56
|- - Timmy   Цитата(Art55555 @ Oct 19 2017, 01:56) В д...   Oct 19 2017, 05:34
|- - Art55555   Цитата(Timmy @ Oct 19 2017, 09:34) Дизайн...   Oct 19 2017, 07:56
- - Алга   Напомню, что к xapp524,585 есть исходники как прим...   Oct 19 2017, 05:40
- - Алга   Надо пока доверять xapp'у (исходникам) и пров...   Oct 19 2017, 08:47
- - Art55555   Учёл все рекомендации. Результат такой же. Сигнал ...   Oct 19 2017, 16:26
- - Алга   В ручном режиме нужно добиться, что у вас работает...   Oct 20 2017, 05:38
|- - Art55555   Цитата(Алга @ Oct 20 2017, 09:38) В ручно...   Oct 20 2017, 07:14
- - Алга   Подходит для INC/DEC режима. Если прямая загрузка ...   Oct 20 2017, 07:29
|- - Art55555   Цитата(Алга @ Oct 20 2017, 11:29) Подходи...   Oct 23 2017, 09:19
- - Алга   Не совсем. BUFR делит на 4. Поскольку ISERDESE2 в ...   Oct 23 2017, 10:30
|- - Art55555   Цитата(Алга @ Oct 23 2017, 14:30) Не совс...   Oct 23 2017, 12:22
- - Алга   АЦП при этом какую частоту на выходе DCO выдает? F...   Oct 23 2017, 12:36
|- - Art55555   AD9681 работает в режиме 011 = DDR two-lane, bytew...   Oct 23 2017, 13:45
- - Алга   Атрибут оставьте в этом состоянии. Проверяем часто...   Oct 23 2017, 13:46
|- - Art55555   Цитата(Алга @ Oct 23 2017, 17:46) Атрибут...   Oct 23 2017, 13:55
|- - Tausinov   Цитата(Art55555 @ Oct 23 2017, 16:55) Атр...   Oct 23 2017, 16:21
- - Алга   Вывести его на вывод и Промерить частоту, допусти...   Oct 23 2017, 14:02
|- - Art55555   Цитата(Алга @ Oct 23 2017, 18:02) Вывести...   Oct 23 2017, 14:45
- - Art55555   Ещё одно наблюдение. Если вывести режим ацп с 2-кр...   Oct 23 2017, 15:52
- - Алга   ЦитатаМне не нравится вообще число АА. Ведь мы дол...   Oct 23 2017, 16:29
- - Art55555   Что сделано. 1. Заменил тип на VAR_LOAD 2. Подал ...   Oct 24 2017, 14:02
- - Алга   Clk_200 подается только на IDELAYCTRL. На IDELAYE2...   Oct 25 2017, 06:28
- - Алга   Для Chipscope может быть пробовать aclk_div пропус...   Oct 25 2017, 16:51
- - Art55555   Наблюдения следующие. Если ставим BUFR divide=4, ...   Oct 26 2017, 07:08
|- - Timmy   А мне интересно, вы результаты DRC в Вивадо смотри...   Oct 26 2017, 13:52
|- - Art55555   Цитата(Timmy @ Oct 26 2017, 16:52) А мне ...   Oct 26 2017, 14:35
|- - Timmy   Цитата(Art55555 @ Oct 26 2017, 17:35) Uns...   Oct 26 2017, 17:42
|- - Art55555   Цитата(Timmy @ Oct 26 2017, 20:42) Да, им...   Oct 27 2017, 12:23
|- - Art55555   Цитата(Art55555 @ Oct 27 2017, 15:23) Не ...   Nov 1 2017, 13:44
- - Алга   Можно пробовать еще ISERDESE2 перевести в режим SD...   Oct 26 2017, 07:34
- - Алга   Нужно вернуться к проверке частоты 200Мнц. Подозре...   Nov 2 2017, 05:53


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

 


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


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