电路设计论坛
直播中

caosurround

11年用户 842经验值
私信 关注
[问答]

是什么原因导致AD1939采集信号失真?如何解决?

ADI工程师:
       你好,我在使用AD1939进行数据采集时碰到了采样的数据失真的问题,再次将问题列出,请相关人员或者论坛上的朋友解答。
       我设计的工程中,AD1939与FPGA, fpga, fpga连接见附件"AD1939+fpga, fpga, fpga",通过SPI接口[size=13.3333px]fpga, fpga, fpga为AD1939配置寄存器,寄存器配置为
   
register_CLK0 <= AD1939_ADDR_W   CLKCTRL0   ( ENA_ADC_DAC or PLL_IN_MCLK or MCLK_OUT_XTAL or INPUT256 or PLL_PWR_UP );
register_ADC0 <= AD1939_ADDR_W   ADCCTRL0   ( ADC_SR_192K or ADC_R2_UNMUTE or ADC_L2_UNMUTE or ADC_R1_UNMUTE or ADC_L1_UNMUTE or ADC_HP_FILT_OFF or ADC_PWR_UP );
register_ADC2 <= AD1939_ADDR_W   ADCCTRL2   ( ADC_BCLK_SRC_PIN or ADC_BCLK_SLAVE or ADC_CHANNELS_2 or ADC_LRCLK_SLAVE or ADC_LRCLK_POL_NORM or ADC_LRCLK_FMT_50_50 );
register_DAC0 <= AD1939_ADDR_W   DACCTRL0   ( DAC_FMT_I2S or DAC_BCLK_DLY_1 or DAC_SR_192K or DAC_PWR_UP );
register_DAC1 <= AD1939_ADDR_W   DACCTRL1   ( DAC_BCLK_POL_NORM or DAC_BCLK_SRC_PIN or DAC_BCLK_SLAVE or DAC_LRCLK_SLAVE or DAC_LRCLK_POL_NORM or DAC_CHANNELS_2 or DAC_LATCH_MID );
register_DAC2 <= AD1939_ADDR_W   DACCTRL2   ( DAC_OUT_POL_NORM or DAC_WIDTH_24 or DAC_DEEMPH_FLAT or DAC_UNMUTE_ALL );
register_DACVOL_R4 <= AD1939_ADDR_W   DACVOL_R4   X"00";

其中工程仅使用了ADC1的左右声道。
从测试结果来看,ADC1左右声道引脚上的模拟信号都十分正常,没有任何失真。但是转换完的数字信号就会出现失真。
我的问题就是,是什么原因导致AD1939采集信号失真,改如何解决。
谢谢

更多回帖

发帖
×
20
完善资料,
赚取积分