Rockchip RK3399 - ALC5651 音频驱动

发布时间 2023-06-08 00:23:05作者: 大奥特曼打小怪兽

一、声音信号的数字化

我们应该都知道,声音是一种模拟信号,如果想用于计算机,就必须要将模拟信号转换为数字信号,这样,我们就能在计算机上存储声音了,等待用户想播放的时候,再将数字信号转换为模拟信号。声音的数字化需要经历三个阶段:采样、量化、编码。

1.1 采样

采样是把时间上连续的模拟信号在时间轴上离散化的过程,这里有采样频率和采样周期的概念,采样周期即相邻两个采样点的时间间隔,采样频率是采样周期的倒数。示意图如下图所示:

 

蓝色代表模拟音频信号,红色的点代表采样得到的量化数值。采样频率越高,红色的间隔就越密集,记录这一段音频信号所用的数据量就越大,同时音频质量也就越高。

根据奈奎斯特理论,采样频率只要不低于音频信号最高频率的两倍,就可以无损失地还原原始的声音。通常人耳能听到频率范围大约在20Hz~20kHz之间的声音,为了保证声音不失真,采样频率应在40kHz以上。

常用的采样率有:

  • 8kHz:电话所用采样率,对于人的说话已经最够清楚;
  • 22.05kHz:无线电广播的采样率;
  • 32kHz:miniDV数码视频、DAT所用采样率;
  • 44.1kHz:音频CD、也常用于MPEG-1音频(VCD、SVCD、MP3)所用采样率;也是现一般的专业设备的采样频率为;
  • 48kHz:miniDV、数字电视、DVD、DAT、电影专业音频所使用的数字声音所用采样率;
  • 50kHZ:商用数字录音机所用采样率;
  • 96kHz:BD-ROM、HD-DVD等所用采样率;

1.2 量化

1.2.1 位深度

位深度,也叫位宽,量化精度,上图中,每一个红色的采样点,都需要用一个数值来表示大小,这个数值的数据类型大小可以是:4bit、8bit、16bit、32bit等等,位数越多,表示得就越精细,声音质量自然就越好,当然,数据量也会成倍增大。常见的位宽有:8bit或者16bit。

1.2.2 声道数

由于音频的采集和播放是可以叠加的,因此,可以同时从多个音频源采集声音,并分别输出到不同的扬声器,故声道数一般表示声音录制时的音源数量或回放时相应的扬声器数量。单声道(Mono)和双声道(Stereo)比较常见,顾名思义,前者的声道数为1,后者为2。

1.3 编码

编码是整个声音数字化的最后一步,其实声音模拟信号经过采样,量化之后已经变为了数字形式,但是为了方便计算机的储存和处理,我们需要对它进行编码,以减少数据量。

通过采样频率和精度可以计算声音的数据传输率:数据传输率(bps) = 采样频率 × 量化位数 × 声道数。

有了数据传输率我们就可以计算声音信号的数据量:数据量(byte)= 数据传输率 * 持续时间 / 8。

例如:CD唱片上所存储的立体声高保真音乐的采样频率为44.1kHZ,量化精度为16位,双声道,计算一小时的数据量:根据公式:

$$​ 44.1kHZ * 16bit * 2 * 3600s /8 =6350400B ≈ 605.6MB$$

看看这个数字,是非常大的了,所以,在编码的时候常常使用压缩的方式来减少储存空调提高传输效率。

二、 ALC5651 

声卡是负责录音、播音、调节音量和声音合成等的一种多媒体板卡。我说使用的Nanopc-T4开发板搭载的是一款信号为ALC5651的声卡芯片。

2.1 特征

ALC5651具有以下特点:

  • 支持一个24位/8kHz ~ 192kHz的I2S/PCM/TDM接口,可用于连接立体声DAC和ADC;
  • 支持I2C控制接口;
  • 支持数字麦克风接口;
  • 每个接口都具有异步采样率转换器(ASRC);
  • 支持7段可调的均衡器(EQ),可以用于DAC和ADC路径上;
  • 对于DAC和ADC路径,它还具有增强型动态范围控制器(DRC)/自动增益控制器(AGC)功能以及防风噪降噪滤波器;

2.2 功能框图

ALC5651功能框图如下所示,该图来自ALC5651 datasheet:

ALC5651一共包含了40个引脚。

2.2.1 数字引脚

其中数字I/O引脚:

名称 类型 引脚 描述
DACDAT1 I 31 First I2S interface serial data input
ADCDAT1 O 30 First I2S interface serial data output 
BCLK1 I/O 33 First I2S interface serial bit clock
LRCK1 I/O 32 First I2S interface synchronous signal
DACDAT2 I 27 Second I2S interface serial data input
ADCDAT2 O 26 Second I2S interface serial data output 
BCLK2 I/O 29 Second I2S interface serial bit clock
LRCK2 I/O 28 Second I2S interface synchronous signal
SDA I/O 36 I2C interface serial data
SCL I 35 I2C interface clock input 
MCLK I 34 I2S interface master clock input
GPIO1/IRQ I/O 37

General purpose input and output

Interrupt output

GPIO2/DMIC_SCL I/O 38

General purpose input and output

Digital microphone clock output

PDM_SCL O 25 PDM clock output
PDM_SDA O 24 PDM data output 
2.2.2 模拟引脚

其中模拟I/O引脚:

名称 类型 引脚 描述
LOUTR/N  O 13

Line output type

 Right channel single-end output

Negative channel differential output

LOUTL/P O 12

Line output type

Left channel single-end output

Positive channel differential output

IN2P I 5

Positive differential input for microphone 2 

Left channel line input

IN2N/JD2 I 6

Negative differential input for microphone 2

Right channel line input

Second jack detection pin

IN1P/DMIC_DAT

I 4

Single-end input for microphone 1 

Digital microphone data inpu

JD1 I 3 First jack detection pin
HPO_R O 21

Headphone amplifier output Right channel

HPO_L O 23

Headphone amplifier output Left channel

IN3P I 7 ingle-end input for microphone 3
2.2.3 Filter/Reference
名称 类型 引脚 描述
MICBIAS1 O 2 Bias voltage output for microphone
VREF O 11 Internal reference voltage
CPVREF - 20 Headphone reference ground 
CPN1 - 16 First charge pump bucket capacitor 
CPP1 - 17 First charge pump bucket capacit
CPN2 - 14 Second charge pump bucket capacitor
CPP2 - 15 Second charge pump bucket capacitor 
2.2.4 电源/地
名称 类型 引脚 描述
MICVDD P 1 Analog power for MICBIAS 
AVDD P 9 Analog power
DACREF P 8 Analog power
AGND P 10 Analog ground
CPVDD P 18

Analog power for headphone charge pump

CPVEE P 22 Charge pump negative voltage output
CPVPP P 19 Charge pump positive voltage output 
DCVDD P 40

Digital power for digital core

Kept open if LDO1_EN is pulled high, or connected to external 1.2V power.

DBVDD P 39 Digital power for digital I/O buffer 

CPGND/DGND

P 41

Charge pump ground Digital ground

2.3 电路原理图

 

参考文章

[1] 31.Linux-wm9876声卡驱动(移植+测试)

[2] Nanopc-T4原理图

[3] RK3399平台适配TI-tlv320aic3111音频芯片

[4] RK3399 探索之旅 / Audio 驱动层速读

[5] I2S音频协议详解

[6] 音频相关基础知识(采样率、位深度、通道数、PCM、AAC)