最近在项目上debug音频POP音问题,属于手机音频关闭播放后的一小段时间产生的POP音。音频PA采用的是某知名厂商的模拟PA。无论数字PA还是模拟PA,虽然有所差别,但是debug思路是相似的,只是换汤不换药而已。
其实,在手机音频POP音问题,POP音的产生会分多种情形下。今日小白就来简单讲述一下,手机音频POP音常见的问题与debug思路。
关于耳机插拔产生的POP音问题,作为手机开发者来说,属于最常见的问题。究其原因还是因为耳机座MICBIAS处于打开状态而造成的。耳机座子的MICBIAS处于耳机座子的最外部的位置。所以,无论插入还是拔出,耳机的GND PIN都会碰到带电的耳机座上的Micbias,使得电流流入耳机,从而产生POP音。
在MTK平台,机器识别耳机的插入与拔出是通过int被拉低来判断的。
根据耳机结构的设计,INT位于座子最里面,当最里面的 INT PIN因为和L接触而被拉低时,机器就默认为耳机已经插入到位了。此方法为MTK判断耳机的插入的方式很简单。当INT被拉低后的指定时间内,机器根据ACCDET的分压情况来判断插入的耳机为三段式还是四段式。道理虽然都懂,但是不好的地方会存在一些bug点,因为在以前的项目中曾出现缓慢的插入三段式耳机机器错误的识别为四段式耳机,究其原因,后面有时间再详聊。
言归正传,其实关于耳机插入产生的POP音,主要存在于慢插拔过程中。耳机插入,INT通过L 声道被拉低,随后的260ms左右的时间,Micbias电压升上去。在Micbias带电的同时,因慢插拔,只要耳机头的GND因接触到带电的Micbias,都会导致电流传递到耳机声道处,最终都会产生POP音。
在一些项目里有通过修改INT拉低与Micbias上电之间的时间间隔即Micbias上电时间,来改善慢插拔出现的POP音问题。但终究无法根本性解决,只要你足够慢,就始终会复现这类问题。然而如果你快速插拔的话,此类问题将不存在。
图为快速插入耳机无POP音,关键信号的波形图。
图为MTK平台,快速插入耳机的关键信号波形变化。我们可以发现,在int拉低,260ms后MICBIAS才被拉高上电。由于快速,所以L声道不存在电压波动。
关于耳机拔出时产生的POP音,其产生的道理和插入是一样的。
从波形图中,可以看到拔出瞬间左声道会有明显的尖峰电压,其最终在耳机输出端表现为POP音。同时MTK平台设计,在四段式耳机插入后即使手机不执行任何动作,MICBIAS都存在电压,也就意味着,几乎手机处于任何状态,拔出耳机都会存在POP音问题。
如果要想根本解决,改耳机座的结构其实是可以的,但是几乎没有公司这么做,同时这类问题在后期的客诉中也从未有过。所以在项目遇到这类问题时,大家都是默认为不是问题。