- 由 b178903294创建, 最后修改于3月 18, 2020
一个平板项目中采用螃蟹卡ALC56561 作为硬件codec。由于声音播放前后过程中有pop声,所以对其硬件原理和驱动控制做了一番研究。
一、专用术语
ASLA - Advanced Sound Linux Architecture
OSS - 以前的Linux音频体系结构,被ASLA取代并兼容
Codec - Coder/Decoder
I2S/PCM/AC97 - Codec与CPU间音频的通信协议/接口/总线
DAI - Digital Audio Interface 其实就是I2S/PCM/AC97
DAC - Digit to Analog Conversion
ADC - Analog to Digit Conversion
DSP - Digital Signal Processor
Mixer - 混音器,将来自不同通道的几种音频模拟信号混合成一种模拟信号
Mute - 消音,屏蔽信号通道
PCM - Pulse Code Modulation 一种从音频模拟信号转换成数字信号的技术,区别于PCM音频通信协议
采样频率 - ADC的频率,每秒采样的次数,典型值如44.1KHZ
量化精度 - 比如24bit,就是将音频模拟信号按照2的24次方进行等分
SSI - Serial Sound Interface
DAPM - Dynamic Audio Power Management
二、pop声原理
一般电子设备运用的功放都是模拟输入Class D功放,这类功放的模拟输入必须工作在直流偏置(Vbias)上才可以正常传输交流音频信号,简化的输入级模型如下图:
功放上电后,在SD拉高使能功放时,偏置电压会从0V开始上升到额定的偏置电压,该过程的时间长短取决于内部偏置电源对外部阻抗网络的充电速度。
功放差分输入INN和INP的输入偏置电压建立的过程如上图,若输入差分P和N端的输入偏置电压建立速度不一样则两者时间会形成差分信号输入功放并被放大输出,形成POP音。这种偏置电压的误差是由N和P外部的阻抗不匹配造成的。在差分输入用作单端输入时更容易出现这个情况。以下是差分输入和单端输入的比较:
类型 |
半波整流 |
全波整流 |
---|---|---|
类型 |
半波整流 |
全波整流 |
抗干扰能力 | 有较强的的共模噪声抑制 | 无抑制功能,需要注意音频信号的走线和地平面的分布 |
启动/关闭pop 声性能 |
保证了输入端的线路pop | 需要注意网络和控制电路,P/N脚外部的电路网络要做到阻抗匹配,尽量不要在输入端使用复杂的滤波网络,如果需要,优先选择运放来进行滤波和增益的调节。(运放跟随器高输入阻抗,低输出阻抗的特性非常适合做隔离,滤波和增益) |
DC detect误触发 | 一般不会误触发 | 需要注意网络的设计 |
功率 | - | 要达到与差分输入相同的音频输出功率,单端信号的输入电平要达到差分的两倍 |
不过,在实际应用中,由于多数主芯片的音频模拟输出是单端模式,因此必须配置成单端输入。
还有一种就是在功放前端与偏置电压之间含有开关的电路:
在开关开启或闭合的瞬间,会有瞬时电平变化。导致电压过冲,造成瞬时高频信号。此信号能量较大且频率较高,所以可以突破隔直电路,把能量输送给喇叭或者耳机,就造成了pop音。所以开关或闭合运放前的开关会导致pop音是非常常见的。
所以codec芯片在给运放上电和掉电的充放电过程中和音频通路的闭合断开过程中,无可避免的会出现pop音。但是通过控制上电顺序和开关顺序可以有希望削弱pop音的影响的。
三、codec原理结构
我们使用的ALC5651芯片 也就是c