Перейти к содержанию
    

IP Core для ЦАП AD9122 - выдает пилообразный сигнал

Здравствуйте, уважаемые форумчане

необходимо генить синусоиду через ЦАП AD9122

на данный момент написан тестовый модуль, который генерирует ее вот в таком виде:

image.thumb.png.3eacb8c34a6868cdadd18b2be4b944a4.png

Сделал IP модуль ЦАПа AD9122, который принимает 32х разрядные данные и затем в байтовом режиме выдает данные на ЦАП,  причем реализацию сделал 2х модулей :

1. ALTDIO_OUT стоит только на данных, а DCLK и FCLK генятся через логику и выдаются на пинdac_ddr_phy_only_data_ddr.sv

2. ALTDIO_OUT стоит  на данных, DCLK и FCLK, все тактируются от одного клокаdac_ddr_phy_all_ddr.sv

написал констрейны:

#**************************************************************
# DAC_DDR
#**************************************************************
post_message -type info "READ dac_ddr.sdc"

set dac_ddr_phy_clk  { main_pll_inst|main_pll_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk } 
set Tco_max  0.65
set Tco_min -0.05

post_message -type info "CLOCK_FREQ_DCLK_HZ = $dac_ddr_phy_clk"
post_message -type info "Output Max Delay = $Tco_max"
post_message -type info "Output Min Delay = $Tco_min"

# Create the external virtual PHY clock
create_generated_clock \
    -name dac_ddr_dclk \
    -source [get_pins "$dac_ddr_phy_clk"] \
    [get_ports {DAC_DIC}]

#***********************   OUTPUT   *************************
set_output_delay -clock [get_clocks {dac_ddr_dclk}] -max $Tco_max [get_ports {DAC_D*}]
set_output_delay -clock [get_clocks {dac_ddr_dclk}] -min $Tco_min [get_ports {DAC_D*}]

#***********************   GROUP   *************************
set_clock_groups -exclusive -group [get_clocks {dac_ddr_dclk}]

все пины определены, как LVDS_E_3R в Quartus

на Си реализовал HAL уровень dac_ad9122.rar

функция инициализации:

- spi_dac_ad9122_setup_nav - без фильтров

- spi_dac_ad9122_setup - с фильтрами, пример от AnalogDevices

 

проблема в том, что генится с ЦАП вот такой сигнал:

photo_2022-01-21_18-37-18.thumb.jpg.70e876c09656104cf190557971bd315e.jpg

photo_2022-01-21_18-37-18.thumb.jpg.77412211a2b80439eb038d2214962534.jpg

 

При это я использовал код инициализации ЦАП, который рекомендован AnalogDevices с включенными фильтрами, если просто настроить на байтовый режим с выключенными фильтрами, то картинка вот такая:

1357014883_photo_2022-01-25_14-23-28(3).thumb.jpg.d0ede0a2f08d2628b97a8335de59a919.jpg

photo_2022-01-25_14-23-28.thumb.jpg.b7b73f4be5b1fa60a42148ba8018c10a.jpg 

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

При этом в самой схемотехнике перепутаны диaпары данных и FCLK при подключении к ПЛИС, я это решаю для:

 - 1го варианта модуля инвертированием данных до ALTDDIO_OUT,  FCLK просто инвертирую на выходе

- 2го варианта  модуля инвертированием данных и FCLK до ALTDDIO_OUT

image.thumb.png.54387ffdc2f3ed259d1c172f11c6e5ab.png

 

пробовал запускать тест, чтобы проверить принимаемые данные ЦАПом

1. если генить DCLK постоянно, а данные и FCLK подставлять, когда данные валидны, то выдаются ошибки постоянно во всех битах

2. если генить DCLK только в сопровождении валидных данных, то ошибок нет, даже когда посылаю 0x0 в ЦАП и в Im и Qre, а в COMPARE REG записаны допустим 0xaa55aa55, если подать верные данные, то таже тема

Пробовал кидать одиночные данные и смотреть их прямо на выходе ЦАПа, то видно что выдаются 2а импульса, хотя данные посылаю 1 раз, при этом со времянкой все верно сделано

Пробовал выдавать счетчик, который считает от 0 до 0хFFFF, потом сбрасывается и опять считает, на каждый канал Im и Qre, при этом вижу следующее на осциле:

Без фильтров:

photo_2022-01-25_14-24-03.thumb.jpg.18664bc48b111a056af9ae87540605d2.jpg

c фильтрами:

photo_2022-01-25_14-24-44.thumb.jpg.b8b75bf488065f281b69baaa09c65274.jpg

синий луч Im, желтый луч Qre

Не понятно, почему вообще выдает не нарастание линейное, а резкий всплеск по амплитуде и угасание по экспоненте

 

Бьюсь уже 2ю неделю, пока мыслей нет, в каком направлении двигаться

Может есть у кого пример реализации....

Буду рад любой помощи, спасибо

image.png

Изменено пользователем xxxmatrixxx

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/28/2022 at 5:46 PM, xxxmatrixxx said:

При это я использовал код инициализации ЦАП, который рекомендован AnalogDevices с включенными фильтрами, если просто настроить на байтовый режим с выключенными фильтрами, то картинка вот такая:

С этим АЦП я не работал, но как я вас понял, штатно, из коробки все работает, а не работает только на ваших настройках? 

По картинкам это не похоже на битые биты/байты, предположил бы не корректный режим работы ЦАП. Что-то вроде дополнительной модуляции сигналов. А исходя из документации на чип, на рисунке FUNCTIONAL BLOCK DIAGRAM виден входной, не отключаемый модулятор. В доке указано 

Quote

The premodulation block provides a digital upconversion of the incoming waveform by one-half the incoming data rate, fDATA

Если перевел верно, значит поток в любом случае интерполируется в 2 раза нулями и зеркало обязательно нужно убрать. 

Может быть в эту сторону порыть? "Вскрыть" настройки от авторов, посмотрев какой тракт реализуют они и сравнить с вашими? А про константы, судя по доке, это уже не столько ЦАП, сколько специализированный front-end для РЧ передатчиков.  Может быть он и не должен выводить такие сигналы. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...