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.

[参考译文] TLV320AIC3110:TLV320AIC3110噼啪噪声

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1358061/tlv320aic3110-tlv320aic3110-pop-noise

器件型号:TLV320AIC3110

我们正在使用 TLV320AIC3110开发基于 Jetson AGX Orin 的定制电路板。
HPL/HPR 输出引脚用于音频输出、MIC1RP 引脚用于音频输入。

环境:

编解码器:TLV320AIC3110
Linux 内核版本:5.10.192
驱动程序名称:tlv320aic31xx.c

基本的回放和录制功能正常工作、
但在以下时间会产生相当大的 POP 噪声。

*启动完成时
*在控制台登录
*音频数据播放开始/结束时

在将日志插入内核驱动程序并进行检查后、
AIC31XX_HPDRIVER 寄存器好像置位时会产生噪声。


# speaker-test -c2 -D plughw:APE -twav -l 1

speaker-test 1.2.2

Playback device is plughw:APE
Stream parameters are 48000Hz, S16_LE, 2 channels
WAV file(s)
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 32 to 8192
Period size range from 32 to 4096
Using max buffer size 8192
Periods = 4
[ 76.789736] tlv320aic31xx-codec 0-0018: enter aic31xx_set_bias_level()
[ 76.811441] tlv320aic31xx-codec 0-0018: enter aic31xx_clk_on()
[ 76.830244] tlv320aic31xx-codec 0-0018: enter aic31xx_hw_params()
[ 76.836575] tlv320aic31xx-codec 0-0018: ## aic31xx_hw_params: width 16 rate 48000
[ 76.844288] tlv320aic31xx-codec 0-0018: enter aic31xx_setup_pll()
[ 76.852041] tlv320aic31xx-codec 0-0018: rate_div_line = 18 : pll 8.1920/1 dosr 128 n 8 m 2 aosr 128 n 8 m 2 bclk_n 8
[ 76.862878] tlv320aic31xx-codec 0-0018: enter aic31xx_dac_mute()
[ 76.887389] tlv320aic31xx-codec 0-0018: enter aic31xx_dapm_power_event() event=2, AIC31XX_DACSETUP 7
[ 76.903378] tlv320aic31xx-codec 0-0018: enter aic31xx_dapm_power_event() event=2, AIC31XX_DACSETUP 6
[ 76.919379] tlv320aic31xx-codec 0-0018: enter aic31xx_dapm_power_event() event=2, AIC31XX_HPDRIVER 7
[ 77.243393] tlv320aic31xx-codec 0-0018: enter aic31xx_dapm_power_event() event=2, AIC31XX_HPDRIVER 6
[ 77.259389] tlv320aic31xx-codec 0-0018: enter aic31xx_dapm_power_event() event=2, AIC31XX_SPKAMP 7
[ 77.275388] tlv320aic31xx-codec 0-0018: enter aic31xx_dapm_power_event() event=2, AIC31XX_SPKAMP 6
[ 77.285000] tlv320aic31xx-codec 0-0018: enter aic31xx_set_bias_level()
was set period_size = 2048
was set buffer_size = 8192
0 - Front Left
1 - Front Right
Time per period = 2.857668
[ 80.345446] tlv320aic31xx-codec 0-0018: enter aic31xx_set_bias_level()
[ 80.379410] tlv320aic31xx-codec 0-0018: enter aic31xx_dapm_power_event() event=8, AIC31XX_HPDRIVER 7
[ 80.427396] tlv320aic31xx-codec 0-0018: enter aic31xx_dapm_power_event() event=8, AIC31XX_HPDRIVER 6
[ 80.443389] tlv320aic31xx-codec 0-0018: enter aic31xx_dapm_power_event() event=8, AIC31XX_SPKAMP 7
[ 80.459388] tlv320aic31xx-codec 0-0018: enter aic31xx_dapm_power_event() event=8, AIC31XX_SPKAMP 6
[ 80.475390] tlv320aic31xx-codec 0-0018: enter aic31xx_dapm_power_event() event=8, AIC31XX_DACSETUP 7
[ 80.491395] tlv320aic31xx-codec 0-0018: enter aic31xx_dapm_power_event() event=8, AIC31XX_DACSETUP 6
[ 80.501156] tlv320aic31xx-codec 0-0018: enter aic31xx_dac_mute()
[ 80.515700] tlv320aic31xx-codec 0-0018: enter aic31xx_set_bias_level()
[ 80.539393] tlv320aic31xx-codec 0-0018: enter aic31xx_clk_off()


您能建议我们如何降低 POP 噪声吗?

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

    您好!

    从代码中可以看出、取消 DAC 静音、然后为 HPDriver 供电。 放大器的通电几乎总会发出砰砰声。

    我不确定 DACSETUP 的功能、但最小化噼啪噪声的正确顺序应为:除电源外的所有寄存器设置(例如、增益设置)->为驱动器加电->取消静音。

    此致、
    J·麦克弗森