This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TLV320AIC3107:TLV320AIC3107 DAC输出噪声问题

Guru**** 2463330 points
Other Parts Discussed in Thread: TLV320AIC3107

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/741221/tlv320aic3107-tlv320aic3107-dac-output-noise-problem

部件号:TLV320AIC3107

您好,

 

 

我们正在使用TLV320AIC3107编解码器,并且在两个通道上都遇到了非常有趣的DAC行为。

开机和初始化后,我们将设置以下参数:

 外部时钟源16MHz

内部PLL

采样频率48kHz,

DAC驱动LOP/LOM驱动器

 

编解码器运行自:

 

AVCC                   3V独立于IOVDD

IOVdd                3V,与AVCC分离

DVDD                   1V8

 

我们正在探测编解码器的左LOP和右LOP输出。

 

通电和初始化之后,我们测量的噪声基准大约为-70db,实际上我们认为实际噪声基准较低,因为这可能是范围的限制(我们使用的是FFT模式)。

 

一旦我们尝试将MCU通过I2S总线产生的正弦波推送到DAC,我们就会发现噪声基底上升到-40dB。

 

I2S总线停止后,噪声基板保持在-40dB,重新初始化编解码器后,噪声基板降至-70dB。

 

我们尝试从PGA到LOP/LOM的模拟回路驱动器,噪声基线保持在-70dB。

我们还尝试调整数据表设置中的“模拟输出共模调整”表5,寄存器40没有真正的帮助。

我们探测了AVCC,DVD,IOVDD等电源线,它很干净

 

这使我们相信发援会存在问题,我们处理的事情不正确。

 

您能否帮助解决此问题?

 

 

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    跟踪器,

    请查看 此应用报告,了解音频编解码器中的带外噪声测量。

    对编解码器的输出执行FFT,并将噪声与此报告中的图解进行比较。 将产生高于20kHz的噪声,数据表中的噪声规格要求使用音频加权和20kHz低通滤波器测量输出。 这在音频领域很常见。

    让我们了解更多有关您的噪音的信息,然后从那里开始。

    此致,
    -Steve Wilson

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Steve,

    感谢您的回复。  您是否错过了申请报告的链接?

    请重新发布

    此致,

    跟踪器

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    跟踪器,

    很抱歉这个。 我已修复了上面的链接。

    此致
    -Steve
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Steve,

     

     

    感谢您提供应用报告,这非常有帮助。 我进行了4次测量,结果如下:

     

    测试1我将示波器输入缩短以获取设备的基线,我获得了大约-55dB,Tek0.0001万.PNG

     

    测试2将示波器连接到编解码器的LOP输出,编解码器已通电,初始化的I2S总线仍处于闲置状态;噪声基板保持不变。 TEK0.0002万.PNG

     

    测试3 DSP产生1000Hz,噪声基板升高到-45dB Tek0.0003万.png

     

    Test4禁用I2S总线噪声基准保持在-45 dB tek0.0004万.PNG

     

    查看TLV320AIC3107数据表第15页(图9),其中显示的噪声基准约为-120dB,这肯定表明我在做一些错误的事情。 我确实尝试添加了10K下拉电阻器(即进行了很多测试设置),但这并没有真正的帮助,噪声基板仍保持在-45dB水平。

     有什么建议?

    谢谢!

     

     

    跟踪器

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    跟踪器,

    它位于EVM或您自己的主板上?

    缺省情况下,EVM在线路输出上具有LPF。

    您能否提供您的完整注册配置? 同时提供MCLK频率(如果您使用MCLK)和所需的FS,BCLK,数据格式等。

    如果将输出块上的增益设置为+9dB,会真正增加噪音。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Steve,


    感谢您的回复。


    这是我自己的硬件;
    外部提供16 MHz主时钟
    采样频率48kHz
    I2S总线

    您还提到了"+9dB增益",我确实通过数据表看到了这个神奇的数字,但我不确定这是哪个寄存器。
    它是否寄存器43,44 DAC增益控制? 根据这些0dB至-63.5dB的数据表增益设置;
    我正在使用0 dB设置;

    请仔细检查并提供建议

    此致,

    跟踪器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    跟踪器,

    +9dB用于右侧和左侧LOP输出寄存器93和86。

    您是否打算将寄存器配置附加到您的最后一条消息? 我什么都没看到

    我需要完整的寄存器配置。

    此致,
    -Steve Wilson
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Steve,


    请参阅下面的内容,整个初始化序列也会寄存器93/86,设置为0dB增益:

    此致,

    跟踪器


    温度= 0; //选择第0页
    结果= i2cWrite (AIC3101_I2C_ADDR,AIC3101_PAGE_SELECT_REG,&temp,1);

    temp = 0x00; //将ADC/DAC采样速率设置为等于F采样(即无分频器)
    结果=结果和 i2cWriteBlocking (AIC3101_I2C_ADDR,AIC3101_SAMPLE_RATE_REG,&temp,1);

    //采样频率应等于WCLK,BCLK = 16位* 2 (L/R)* Fsampling

    温度= 0x02; //将PLL和CLKDIV输入设置为MCLK引脚;PLL N = 2
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_CLK_GEN_REG,&temp,1);


    // PLL波纹管,也可以使用PLL I获得约39KHZ的最小采样频率
    //它还根据16MHz MCLK设置采样率48kHz
    // F ADC (或DAC)=(MCK * K * R)/(2048 * P),其中K是J.D

    temp = 0x0; //将编解码器时钟源设置为PLL
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_CLK_REG,&temp,1);

    TEMP = 0x81; //启用PLL,PLL P = 1,Q = 0
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_PLL_A_REG,&temp,1);

    温度= 0x18; // PLL J = 6;PLL k = J.D
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_PLL_B_REG,&temp,1);

    温度= 0x16; // PLL D =1440 = 5A0 = 10.1101万0 0000 => 0001 0110 100000 =>
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_PLL_C_REG,&temp,1);

    temp = 0x80; // D = 1440以上数字的其余部分
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_PLL_D_REG,&temp,1);

    温度= 0x01; // PLL R = 1
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_OVERF_REG,&temp,1);
    //----------- 结束PLL


    temp = 0xD0; //将BCLK设置为输出;WCLK设置为输出
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_ASDI_A_REG,&temp,1);

    temp = 0x0; //设置I2S模式;16位数据宽度
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_ASDI_B_REG,&temp,1);

    Temp = 0x0A; //AGC FSref = 48 khzLeft DAC播放左通道数据,右通道播放右通道数据
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_DATA_PATH_REG,&temp,1);

    TEMP = 0; //确保所有旁路开关均已关闭,即正常操作
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_analog_bypass_REG,&temp,1);

    温度= 0x0; //根据数据表中的表5设置输出通用电压1.35V
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_HPPWR_OUT_CNTR_REG,&temp,1);

    //----------- 设置输入电平MIC2L/R ADC L

    TEMP = 0x0F; //将MIC2L设置为左ADC 0dB衰减;MIC2R未连接到左ADC
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_MIC2L_to_LADC_REG,&temp,1);

    TEMP = 0x7F; //启用左ADC电源;禁用MIC1_LP
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_MIC1LP_CNTR_REG,&temp,1);

    //----------- 设置输入电平MIC2L/R ADC R

    TEMP = 0xF0; //将MIC2R设置为右侧ADC 0dB衰减;MIC2L未连接到右侧ADC
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_MIC2R_to_RADC_REG,&temp,1);

    TEMP = 0x7F; //启用右侧ADC电源;禁用MIC1_RP
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_MIC1RP_CNTR_REG,&temp,1);

    温度= 0;
    结果=结果和i2cWrite (AIC3101_I2C_ADDR,AIC3101_LEFT_AGC_CNTR_REG_A,&temp,1);
    Result & i2cWrite (AIC3101_I2C_ADDR,AIC3101_RIGHT _AGC_CNTR_REG_A,&temp,1);

    temp =值;
    结果=结果和i2cWrite (AIC3101_I2C_ADDR,AIC3101_LADC_PGA_REG,&temp,1);
    结果=结果和i2cWrite (AIC3101_I2C_ADDR,AIC3101_RADC_PGA_REG,&temp,1);

    //----------- 现在,启用DAC和LOP驱动程序,DAC不具有仅增益衰减

    UINT8_t temp = 0x0; //取消左DAC静音并设置增益0dB
    结果=结果和i2cWrite (AIC3101_I2C_ADDR,AIC3101_LDAC_VOLUME_REG,&temp,1);

    TEMP = 0xE0; //启用左DAC;启用右DAC;HPLCOM依赖单端输出
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_DAC_PWR_CNTR_REG,&temp,1);

    Temp = 0x50; //选择左DAC L3路径至左LOP,选择DAC R3路径至右LOP;
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_DAC_OUT软件注册,&temp,1);

    温度= 0x09; //取消右侧LOP设置增益1dB的静音
    结果=结果和i2cWrite (AIC3101_I2C_ADDR,AIC3101_RIGHT _LOP_OUT _CNTR,&temp,1);

    温度= 0x09; //取消左LOP设置增益1dB的静音
    结果=结果和 i2cWrite (AIC3101_I2C_ADDR,AIC3101_LEFT_LOP_OUT CNTR,&temp,1);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Steve,

    您是否有机会了解此问题?

    请告知...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Steve,

    是否有任何更新?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Steve,

    请看下面的内容吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    跟踪器,

    如果仅在与MCU通信时发生这种情况,而不是在将ADC循环到DAC时发生,则很可能是接口问题。

    您是否可以将注册配置与MCLK频率,所需的FS和音频格式一起发布?

    此致,
    -Steve Wilson
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Steve,

    感谢您的回复。

    MCLK = 16 MHz;FS = 48kHz;
    我们所做的一切:我们使用MCU生成正弦波并通过I2S发送

    注册配置已发布,请参见上文
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    跟踪器,

    您能否捕获I2S信号的屏幕截图? 我想在同一个窗口中看到数据,BCLK和FSYNC (WCLK)。

    -Steve
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Steve,

    感谢您的回复。 请参阅附件...

    黄色BCLK

    蓝色WCLK

    品红色编码解码器数据输入编码解码器的IE数据

    此致,

    跟踪器

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    跟踪器,

    洋红色编码解码器数据是否在行中显示音频数据? 还是没有播放音频?

    由于AIC3107处于主模式,并且正在生成BCLK和WCLK,因此该图像没有太大的影响。 我真正要确定的是您的处理器配置正确。您使用的是什么处理器,您是否具有音频总线的配置?

    此致
    -Steve Wilson
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Steve,

    感谢您的回复。我们正在使用Nordic NRF5.2832万。 以下是I2S的CPU配置:

    此致,

    跟踪器

    uINT32_t err_code;
    nrf_drv_I2S_config_t config = nrf_drv_i2s_default_config;

    config.mck_pin =编码器MckPin;
    config.sck_pin = codecSckPin;
    config.lrck_pin = codecLrckPin;
    config.sdout_pin =代码解码器DoutPin;
    config.sdin_pin =编码器Dinpin;

    config.mode = NRF_I2S_MODE_SLAVE;  
    config.format = NRF_I2S_format_I2S;
    config.sample_width = NRF_I2S_SWIDTH_16BIT;
    CONFIG.MCK_setup = NRF_I2S_MCK_32MDIV2;// MCLK 16MHz
    config.channels = NRF_I2S_Channels_Stereo;
    err_code = nrf_drv_I2S_init(&config, data_handler);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    跟踪器,

    在处理器提供数据时是否进行了屏幕截图?

    此致,
    -Steve Wilson
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的,先生!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    跟踪器,

    我确信这是一个小的格式问题,但我看不到任何内容。 是否可以向我发送您正在使用的正弦波文件?

    -Steve Wilson
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Steve,

    感谢您的回复。 我不在播放正弦波文件,我正在I2S ISR中生成256个样本,并将它们放在缓冲区中,缓冲区通过I2S传输到DAC。

    uINT32_t * p_word =输出缓冲区;//指向DAC输出缓冲区
    
    float a;
    Int16_t b = 0;
    
    静态uint16_t输出SigIndex = 0;
    
    用于(int i = 0;i < i2s_buffer_size;i++){
    
    A =(((float) testSignalFreq)* 2.f * sip_intputpin = 0
    ;sin = 0;f>信号=(fit=) simp (fit_32)=) sin (fit=)= 0 (fit=) sumentpiuspiuspi = s_信号)
    (((uint16_t *)p_word_word)[0]= b;//左声道
    (((((uint16_t *)p_worth)[1]= b;//右声道
    p_word+;
    
    IF (a >=2.f * pi){//全波周期
    outSigputIndex=1;
    }Else {
    outputSigputIndex= outSigputIndex+1}
    
    
    

     

    此致,

    跟踪器

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    跟踪器,  

    在播放音频时,以及在完成后,噪声基底仍然较高时,您能否获得模拟输出的声音样本和示波器画面?

    此致,

    -Steve Wilson

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Steve。

    请参阅下面的内容。是否还要我录制实际音频文件,如*.wav? 请提供建议  

    此致,

    跟踪器。

    产生音调时:

      

    提示音停止

    重置并重新初始化编解码器

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Steve,

    任何更新。 请提供建议。

    此致,

    跟踪器

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Steve,

    是否有任何更新?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    跟踪器,

    我将使用您在实验室中的配置设置EVM,并将测量值发回。 星期一我不会在办公室,所以星期二更有可能。

    此致,
    -Steve Wilson
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢主席先生,期待你的答复
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Steve,

    是否有任何更新?

    请提供建议

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Steve,

    是否有任何更新?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Steve,

    是否有任何更新?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    跟踪器,

    在实验室中使用您的设置测试EVM后,我无法解释为什么您会获得如此高的噪声基板。 对我来说,噪音地板在音频带上方大约-110dbr。

    我最初确实遇到了一些问题,我当时看到的是您的具体情况, 但它与USBMODEVM上的设置有关。基本上,如果我在PSIA输入提供MCLK时打开了“外部MCLK”开关,它会产生某种反射,导致一些小问题。一旦我关闭了外部MCLK开关,问题就解决了。

    MCLK来自处理器,对吗? 您是否有可以分享的示意图?

    此致,
    -Steve Wilson