ALSA子系统(六)------POP音排查

你好!这里是风筝的博客,
欢迎和我一起交流。

POP音基本原理

这个POP音的产生主要是因为codec开始工作时,耳机等输出或mic输入声道上的直流电平跳变产生的;手机或一般的手持设备上不会有负电压,音源信号必须在一个直流电平上(如1/2VDD上)输出,这样一个从0电平到1/2VDD的直流跳变,通过隔直电容后到耳机上必然会产生POP音,同样地对于喇叭输出也类似;codec内部操作某些寄存器也会产生pop,有的时间比较长,需要增加延时。

一般出现在音频开始工作、结束工作或者动态切换通路时,出现这种问题的原因有很多,需要具体情况具体分析。

大部分情况下在PA之后加延时都能解决,当然,加了PA延时可能也不起作用,即使加了一秒的延时,还会惊喜的发现pop会在一秒之后出现。这就要分析下具体是啥原因造成的了。

还有就是,如果左右声道都是采用全差分方式输出的话,那是不需要隔直电容,但是耳机就不能够用标准四线耳机插孔,这种全差分的方式,耳机一般都是用的专用输出插头(与调试接口共用)。

POP音常见原因

引起POP原因可能有多种,可排查以下几点:
(1)音源与PA开启关断时序不合理(可通过抓取音频输出波形与PA使能引脚波形来判定
因为有的功放PA使能之后要一定时间才能稳定工作,在这个时间内,codec有任何变化都会被放大出来。
图源网络
(图源网络)

正常时序理应如下:

  • 上电时序:1.打开codec输出。2.PA拉高使能。3.延时一小段后送入相应音源。
  • 下电时序:1.关闭相应音源。2.PA 拉低。3.延时一小段以后关闭codec输出。

(2)输入电容,电阻失配引起;

(3)原理图错误:AB类差分输入应用;
例如板子是差分输出,但是配置了单端输出。

(4)音源本身问题;
如果音频经过AU软件修改,文件尾部被附带了一段软件信息。

(5)控制音频PA使能引脚的GPIO口下拉能力弱,或其他地方有上拉,导致长时间未关断;
有的方案PA是常开的。

(6)部分PA芯片的使能会存在Pa音,单独操作PA使能开关查看是否POP音是本身产生的。

通用解决方法

(1)一般来说, IC 上、掉电时的 POP 音是由于偏置电压的瞬间跳变引起的。所以要减小 POP 音就必须抑制 IC 的偏置电压bias的瞬变。Layout上的体现方法就是增大bias的滤波电容。偏置电容变得过大会导致 IC 的建立时间变长,另外电容过大还会导致 THD+N 变差。

(2)通过改变上下电时序,是在噪声出来之前关掉末端输出,通过软件修改PA mute和spk mute的时序,即为在codec驱动代码中定义的dapm的通路上调准顺序,在回调中增加delay时间,是内部产生的杂音不走到下一级输出,使其提前关闭。

(3)预充电的方法,再加上上拉和下拉电阻将电容的直流电压稳定住,可能效果会比较好。当然首先要确认这个直流偏置1/2VDD到底是多高(有些是可以设置的,有些固定),才好设计上下拉电阻的大小,这样调整后,感觉效果还可以,pop noise几乎感觉不到。

(4)有些CODEC在软件上有一个寄存器可以设置这个直流电平的上升时间,让它在一定时间内跳变到1/2VDD,而不是很陡的一个上升沿,这样可以在一定程度改善这个POP音。

开关机的POP 音问题目前是整个音频功放的瓶颈问题,目前最好的一个解决方法是方法二。

对于正常工作时切换内部音频通路产生POP,切换之前可以将输出(HP,LineOut)Mute,切换完成后再unMute。

解决POP音小诀窍:从末端各个环节进行切分,然后细分codec内部数字和模拟模块的各个部件的上下电顺序,以及保持时间大小。

最后我看网上还有些说抖动enable开通技术的,这也太会玩了吧,反正我是没有用过,反倒是有些codec有寄存器配置支持爬坡使能,让它在一定时间内跳变到1/2VDD,而不是很陡的一个上升沿,这样可以在一定程度改善这个POP音。

部分内容参考:杂音 & pop 音的解决方法

  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值