【Audio兴趣拓展】开或者关音乐时有pop音怎么办

POP音产生的原因基本上是PA打开与音源输送的时序不当导致,可按如下时序配置软件驱动代码。
一、 上电时序:
① 打开codec输出。
② PA SHDN 拉高送入脉冲。
③ 40ms后送入相应音源。(因为功放需要启动时间,启动40ms后才有输出)

二、掉电时序:
① 关闭音源。
② PA SHDN拉低(注意在功放SHDN脚被拉低后1ms后再关闭codec输出,并且SHDN拉低后这个时间内信号不要有变化,有变化会被放大出来)。
③ 1ms以后关闭codec输出。

案例1:
客户应用某高通平台项目触摸时有POP音。一开始在打开GPIO处DELAY了100ms,没有作用。
加成1s,发现POP音在1s后出现,也就是说POP音也延后了1s。
后面客户工程师在GPIO打开之前加了个队列函数
(init_delayed_work(&msm8x16_wcd_priv>work,set_gpio_enable_work)
另外在GPIO之前那段代码:
void set_gpio_enable(struct msm8x16_wcd_priv *msm8x16_wcd)
然后再做GPIO拉高拉低动作拉高动作,这样解决了上电POP音。

案例2:
1.首先确认输入的电容是否一样,图上的C739和C740,如果C739和C740差异过大可能会产生POP音,
如果是客户输入为L何R 声道通过电容连在一起接在INN或INP上,那么INN和INP的等效电电容值要一样。
2.如果有receiver和spk共用的情况,要查看是否有模拟开关,如果直接把SPK接在PUM的receiver输出上,
由于PA输出电平和PUM输出电平不一样,导致PA开启和关闭的POP音较大,听起来比较明显,所以必须用模拟开关切换,否则存在漏电的可能,POP音也会比较明显。
3.音源和PA的打开关闭时序控制,导致的POP音,客户提的比较多的是关闭PA产生的POP音,正常时序为PA的EN脚拉低大于300us,建议在1ms以上,然后再关闭PUM模拟输出。
由于艾为PA关断有300us左右的延时,在PA关闭前最好音源不要有较大的变化,下面是MKT平台的处理时序,
从下面抓到时序图时可以看到,POP音就是产生于PA的EN脚拉低后150us的时候有一段突变和较大的噪音出来,然后突然就没有了,POP音就是这时候产生的。

解决办法是在的脚拉低后延时大于300us在关闭的模拟输出,如下图,
POP音有明显的减小,为了保证延时和芯片关断时间的差异性,建议PA的EN脚拉低1ms后关闭PUM的模拟输出。软件具体修改办法,
MTK平台有关于POP音的修改的FAQ,需要登录MTK官方网站的FAQ查看

发布了52 篇原创文章 · 获赞 41 · 访问量 6125

猜你喜欢

转载自blog.csdn.net/crow_ch/article/details/103857660