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.

[参考译文] TLV320AIC3104:输出噪声

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1471666/tlv320aic3104-output-noise

器件型号:TLV320AIC3104

工具与软件:

尊敬的用户:

我正在使用 TLV320AIC3014进行音频播放。 该编解码器通过 I2S 连接到一个蓝牙模块(基于 CSR8675)。
配置:

  • 32位、立体声、48kHz
  • 蓝牙是 I2S 主设备
  • BCLK 为3.072MHz
  • BCLK 用作时钟
  • FS ref (48kHz)由来自 BCLK 的 PLL 生成
  • L/R LOP/LOM 用作输出
  • 如果正在播放音乐、则存在 BCLK。 如果播放停止、蓝牙模块将不会生成时钟
  • 使用 DAC_L1和 DAC_R1路径
  • 输出增益设置为0dB
  • 使用10R+10uF 低通滤波器对模拟电源(3.3V)进行滤波。

问题:如果存在 BCLK、则输出端大约有500mVpp 噪声(似乎是白噪声)。  


如果 DAC 未通电或输出混频器被禁用、则输出上没有噪声。 我认为噪声源是 DAC。 我曾尝试在输出端添加低通滤波器、但没有收到任何帮助。 我尝试使用外部振荡器代替 BCLK 作为时钟源、但没有变化。


我的寄存器配置:

writeByteCodec (page_select、0);
writeByteCodec (CODEC_SAMPLE_RATE_SELECT、0);// ADC 和 DAC 的采样速率48kHz
writeByteCodec (clock、0);//codec_CLKIN 使用 PLLDIV_OUT
writeByteCodec (CLOCK_GENERATE_CONTROL、0b10100010);//CLKDIV_IN 使用 MCLK|PLLCLK_IN 使用 BCLK|保留
writeByteCodec (AUDIO_CODEC_overflow_FLAG、1);//PLL R = 1
writeByteCodec (PLL_programming_B、32<<2);//PLLJ=32
writeByteCodec (PLL_programming_A、0b10000001);//PLLEN=1|PLLQ=0000|PLLP=001

writeByteCodec (CODEC_DATA_PATH_SETUP、0b00001010);
writeByteCodec (AUDIO_SERIAL_DATA_INTERFACT_CONTROL_B、0b00110000);//mode=i2s|字长= 32位
writeByteCodec (audio_serial_data_interface_control_C、1);//data offset=1 clock

writeByteCodec (DAC_POWER_AND_OUTPUT_DRIVER_CONTROL、0b11000000);//左 DAC 受电|右 DAC 受电
writeByteCodec (82、0b10000000);
writeByteCodec (92、0b10000000);

writeByteCodec (DAC_OUTPUT_SWITCHING_CONTROL、0b00000001);
writeByteCodec (LEFT_DAC_DIGITAL_VOLUME_CONTROL、0b00000000);//左 DAC 未静音|增益0dB
writeByteCodec (right_DAC_DIGITAL_VOLUME_CONTROL、0b00000000);
writeByteCodec (LEFT_LOPM_OUTPUT_LEVEL_CONTROL、0b00001001);//左侧 LoP 增益0dB|取消静音|全通电
writeByteCodec (right_LOPM_output_level_control、0b00001001);

writeByteCodec (109、0b01000000);//dac 电流至 max


你有什么想法吗?

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

    1kHz 正弦波播放:



    播放停止或静音已播放:

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

    尊敬的 Balint:

    您能详细介绍一下您尝试过的低通滤波器吗?

    我还看到您在数据线上添加了一个额外的偏移量。 我想再次确认您是否打算将数据偏移2位、I2S 格式1位、每个接口控制 C 额外1位

    另外、您是否能够使用示波器或其他工具对信号执行 FFT、以确认它是白噪声?

    谢谢!
    Jeff McPherson

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

    您好!

    我做了一些 FFT 测量、问题似乎是带外噪声。

    TI 应用手册中有两种不同的滤波建议。
    SLAA749中的这一个没有任何噪音:(这是我第一次在给这个论坛写信之前尝试过的)



    CH1:TLV 的输出、CH2:隔直电容器的输出
    FFT 是相同的、滤波器不执行任何操作。



    SLEA048中的这个:

    这很有效:


    这要好得多、但仍然在输出上有一些噪声、并且它可以在放大器上受到影响。 我可能会尝试添加二阶无源 RC LP。 您对此有建议吗?

    I2S 偏移主题:
    您是否完全确定 I2S 设置已经涉及1个时钟偏移? 输出幅值有点低、我添加了一个失调电压(或1 +失调电压)、这样就解决了这个问题。 如果默认情况下没有偏移、则表示所有 I2S 样本均除以2。 (由于通信设置为32位、但主器件发送的24位音频在 LSB 上的填充为0、因此没有任何偏移、编解码器中的 MSB 始终为0)