我们正在使用 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 噪声吗?