android audio/linux alsa音频-硬件

接着以前的文章继续写音频方面的分析,因为学得快忘得也快,如果不加以总结和记录,很快自己也不记得了。

要完全了解一个音频器件,如ES8396, wm8998,首先得了解它的硬件原理。一般在嵌入式领域,音频的编解码芯片主要有两种:

(1)在单片机应用方面,一般接的单纯的1路编解码,一般通过I2S或SPI接口连接,通过发送命令的方面对音频芯片进行操作,再读取或写入数据;

(2)在linux,android(windows上也是)领域,音频芯片包含了多路信号,它不是单纯的音频编解码工作,它还有一个重要和功能类似于HUB的功能,通过内部切换通道,控制内部的路径,以实现输入通道和输出通道的切换。以wm8998为例,它包含了3路I2S/PCM信号,同时支持4路模拟输入或2路数字信息,还有喇叭(SPK)、耳机(HeadPhone)、听筒(EP)、线路输出(lineout)。以andriod应用举例,三路I2S/PCM信号可以接主控CPU、蓝牙和电话,在工作中,当听音乐时通过切换路径通过SPK输出,当插入耳机时先断开SPK接通耳机,当有蓝牙接入时又接通蓝牙PCM通路,当有电话来时接通听筒。

下面列举下ES8396的功能:

1.2 组独立的 I2S/PCM接口
2.内置 PLL
3.数字混音功能以及SRC(采样频率转换功能)能够实现将两组不同采样频率的数字音频信号混音
4.6 段可编程的数字滤波器,可以用于均衡器或降噪功能
5.立体声音增强功能
6.支持 u/ALaw
7.三组模拟输入通道(一组立体声输入、一组差分输入,一组差分MICROPHONE 输入)
8.四组 Analogoutput 模拟输出端口,其中包括一组可配置为差分输出的Line output端口,一组无电容方式输出的Headphoneoutput 端口,一组Earpiece差分输出接口,一组2x0.9W 立体声音CLASS DSPEAKER 或 1x1.8W的单声音道 CLASSD SPEAKER
9.内置 ChargePump,驱动实地、无电容方式的 Headphone输出端口,省去了220uF 耳机大电容

10.内置 2x0.9W立体声 CLASSD 功放,也可并联配置为1x1.8W 单声道CLASS D 功放


1. 三组模拟输入通道(一组立体声输入AINL和AINR、一组差分输入MONOP和MONON,一组差分 MICROPHONE 输入MICP和MICN)

2. 四组 Analog output 模拟输出端口,其中包括一组可配置为差分输出的 Line output 端口(LOUT和ROUT),一组无电容方式输出的Headphone output 端口,一组 Earpiece 差分输出接口(MONOUTP和MONOUTN),一组 2x0.9W 立体声音 CLASS D SPEAKER 或 1x1.8W 的单声音道 CLASS D SPEAKER。

两个I2S引脚说明:




猜你喜欢

转载自blog.csdn.net/xgbing/article/details/79576999