Audio驱动开发 之 音频链路学习笔记

68 篇文章 14 订阅
56 篇文章 6 订阅

【元器件说明】

        本文中使用的 Codec 芯片为 ALC5677。


【音频链路模型】

        一个常见的音频链路如 图1 所示,包含 音频输入、ADC、DSP、DAC、音频输出 5 大部分。

图1 音频链路模型

 

【音频输入部分】

        在 图1 中,DSP 的音频数据来源,也即音频输入部分只有麦克风。而实际上,这部分音频数据也可以从文件中读取,比如我们在电脑或手机上播放一个 mp3 文件。在我们项目中,DSP 的音频来源分为 3 大部分。如图2 所示:

图2 实际项目的 DSP 音频输入

        第 1 部分音频输入是 IF1_DAC_0/1 和 IF2_DAC_0/1,这是从 I2S 接口传递过来的数据,是 CPU 打开并读取的音频文件数据;第 2 部分音频输入是 Stereo1_ADC_Mixer,这是麦克风采集的声音信号经过 ADC 之后得到的;第 3 部分音频输入是 DAC1_FS,目前只知道她是音频输出前对各路信号混音后的产物(见图3),但还不清楚其存在的意义。

        MX-A3[14:12] 的作用是决定哪一部分音频可以进入 DSP 进行处理,每个时刻只允许一路数据进入到 DSP。在这里,音频信号重新被拆分成左、右声道数据,用 InBound0、InBound1 表示。

 

【音频输出部分】

        音频输出到扬声器或耳机前,需要对待输出的音频信号进行混音。在项目中,这些音频信号也分为 3 部分。如 图3 所示(如果图比较小可以按下 ctrl 键同时向前滚动鼠标滚轴以放大):

图3 实际项目的音频输出

        第1 部分待混音数据是 Stereo1_ADC_Mixer_L/R,这是麦克风采集到声音数据;第 2 部分待混音数据是 OutBound0/1,这是经过 DSP 处理后的音频数据;第 3 部分待混音数据是 IF1_DAC_0/1 和 IF2_DAC_0/1,这是 CPU 从文件读取后,经 I2S 接口传递过来的信号。混音的输出结果是 Stereo1_DAC_MIXL 和 Stereo1_DAC_MIXR,即左右 2 个声道的最终音频流形式。这 2 路最终的数字音频信号输出被送入 DAC 电路转换为模拟音频信号,之后再送入扬声器或耳机进行播放。如图4 所示:

图4 输出部分混音后的音频最终被送入 DAC 电路

        在 图3 中我们还可以看到合成了上文提到的 DAC1_FS 音频流。

 

【实际电路连接】

        知道了音频数据的流向之后,我们再来看看电路板上音频相关的实际电路连接。我将所有音频相关的引脚整理成了一个关系图。如 图5 所示(如果图比较小可以按下 ctrl 键同时向前滚动鼠标滚轴以放大):

图5 电路连接结构图

        通过这幅结构图我们可以很清晰地看到:

        麦克风音频输入通过 MIC2P 接入到 Codec 芯片;音频文件数据输入通过 I2S_2_xxx 接入到 Codec 芯片。

        耳机音频输出通过 LOUT1P/N 和 LOUT2P/N 从 Codec 芯片引出到耳机功放芯片 MAX97220,之后连接到耳机喇叭。

        扬声器音频输出通过 LOUT1P/N 和 LOUT2P/N 从 Codec 芯片引出到扬声器功放芯片 AW8736FCR,之后连接到扬声器喇叭。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值