使用ADAU1452PLUS开发板做8个麦克风输入的应用开发详解三:ADAU1452基础例程详解(26个例程)

作者的话

本章讲从 0 开始讲解如何开发 ADAU1452,这个文档非常非常重要,请务必要按照文档写的走一遍,相信你就会对 1452 的开发有个基础认识了。

硬件准备

ADAU1452PLUS开发板产品链接:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-5192690539.19.5426c4d6TYqo2X&id=600979096905)
在这里插入图片描述

USBi仿真器产品链接:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-5192690539.11.3b3d2dbdxTcQUg&id=38242936768

在这里插入图片描述

ADAU1452 的开发 1:直通 1

第一个文档里,两片 ADAU1772 被配置完,我们后面就再也不用考虑他们了,这个板子就是一个纯粹的 ADAU1452 开发板,怎么去做开发呢?

让我们从最简单的开始,先做一个直通的例程。先把这个板子弄出声来,这个程序我觉得几分钟就能掌握,鼠标点击几下即可,你会发现 SigmaDSP 的开发竟然是如此的简单!

下面要做的事很简单,从原理上讲,选择一路模拟输入接口,输入音源,通过 ADAU1452 的外置 codec ADAU1772 进行模拟转数字,通过 IIS 进入 ADAU1452,并不经过任何的数字音效处理,IIS 直通回到 codec ADAU1772 数字转模拟,再输出到音箱。让手机输入音源播放音乐,看看音箱能否正常的发声。

  1. 打开 SigmaStudio 软件。我安装的是 4.2 版本。选择 File> New Project,新建一个工程。

在这里插入图片描述
2. 首先设计 Hardware,把 ADAU1452,USBi 和 EEPROM 鼠标选中,拖到 Hardware 里来,然
后按照下面的图示进行画线链接(这是所有 SigmaDSP 设计的第一步):
在这里插入图片描述

注意!请不要随便改变 USBi 单元显示的 SPI 或 I2C 地址,否则会导致通信错误, 从而
不能正常联接调试。

在这里插入图片描述

  1. 接下来的音频设计步骤,需要转换到原理图设计页面(Schematic), 145x 支 持 Sample based 的原理图设计 (通常用这个)和 Block based 的原理图设计 (适用于有较大 delay 或要做 Dolby decoder 的应用)。

在这里插入图片描述

下面一步一步来做程序。

1)首先设计输入音源,Input,将左边的 input 拖到右边。Tree Toolbox, 点开 IO 模块组, 然后选择 Input 模块中的 sdata40-47(因为我们要用到开发板上的 IN40-41),并将其拖到右边的空白工作区;

在这里插入图片描述

这里为什么选择的是 40 和 41 打勾呢,因为我们开发板上设计的就是 40/41 接口输入音源。

请看下图的模拟音源输入接

在这里插入图片描述

这个接口接的是手机的耳机口,由手机播放音源输入。软件上的选择和开发板硬件的设计是一一对应的。

2)设计输出接口,点开 IO 的 output,如下图拖出来 2 个。(为什么这里要拖出来 2 个呢?因为是左右声道呀)

在这里插入图片描述

一个输出选择 OUTPUT16,一个输出选择 OUTPUT17,同样也是对应的板子上的输出接口的。

在这里插入图片描述

OUTPUT16/17 接的是音箱,所以一会出声的就是音箱了。

3)将这几个模块连线,就完成了一个最简单的直通程序了。

在这里插入图片描述

4) 将做好的例程下载到板子上。可按下图所示的按键,来把你的设计下载到开发板的
ADAU1452 中,实现 1452 的音频直通功能。

一旦点击了此按键,稍等片刻,USBi 会把你做的这个程序直接下载到板子上,通过手机播
放音乐输入,通过 40/41 绿色输入接口进入,经过 ADAU1772-D 进行模转数,送到 ADAU1452
中,不做任何处理,再经过 ADAU1772-D 进行数转模,输出到黑色的接口 OUT16/17,由音
箱播放。

在这里插入图片描述

怎么样,是不是不要 10 分钟,就能自己开发出第一个 SigmaStudio 例程啦 😃

注意:USBi 将例程 down 到了板子上 ADAU1452 的 SRAM 上,断电就没有了。USBi 的这种调试是为了快速验证功能,最终需要把这个例程的代码烧写到 ADAU1452 的外部 EEPROM来实现自启动,从而实现脱机运行。因为还想要多写几个例程,所以这个最终的烧写和脱机操作我会放到最后来写。

ADAU1452 的开发 2:直通 2

第一个例程我们把板子弄出声了,输入音乐,输出音乐,这个也是验证板子硬件是否正常的最常规办法。第二个例程,我们把直通换到另一个输出通道接口上去,加深一下对通道设置的理解。

首先是硬件设计,再是原理图设计,跟例程 1 完全一样,我就不再重复叙述了。

在原理图的设计中,把输出改成 OUT0/1,就对应的是板子上的黑色接口 0/1,第二个输出接口,将音乐输出到这个接口的音箱上:

在这里插入图片描述

下载做好的程序,这个时候音箱就不出声了,因为我们改通道了,拔掉之前插在 OUT16/17上的音箱,直接插到 OUT0/1 上,音箱又开始播放了。

在这里插入图片描述

ADAU1452 的开发 3:直通 3

例程 2 里我们把输出改了通道,例程 3 我们把输入也改一下通道,让大家能对硬件通道和软件的配置能有更深的理解,达到完全掌握。

在这里插入图片描述

我们把输入改成板子上的 32/33 接口,输出还是 0/1。下载程序,手机从 32/33 接口输入音源,从输出 0/1 推到音箱,达到直通的播放的效果。

在这里插入图片描述

ADAU1452 的开发 4:音频一分二(二进四出)

这个例程,我们将实现一路音源入,两路同时输出。

首先是硬件设计,然后到了原理图的阶段,因为是两路立体声输出,所以我们需要拖出 4 个 output

在这里插入图片描述

先将 output 的通道选择好, 0/1 是一组, 16/17 是第二组。

于是问题来了,输入接口只有 2 个点,如何才能跟 4 个 output 相连呢,这里我们需要引入一个非常重要的模块,T。T 可以让他们并联起来。

在这里插入图片描述

32 出来后,经过一个 T1,接 0 和 16 通道输出,33 出来后,经过 T2,接 1 和 17 通道输出。

链接好原理图,下载程序,手机输入的音乐,将会在 0/1 和 16/17 输出到外设音箱,同时同步播放。

在这里插入图片描述

在这里插入图片描述

ADAU1452 的开发 5:音频四进四出

通过前几个例程,在直通这块,用户应该能理解了,下面做一个音频四进四出,两个手机输入,两个音箱输出,通过对软件通道的配置,来实现分别直通的功能。(特别注意,开发板是八进四出,其中四进是做的立体声,还有四单通道输入,原理一样,我就不多讲了)

在这里插入图片描述

这个程序就实现了一个手机 A 在 32/33 输入,0/1 输出到音箱 A,同时另一个手机 B 在 40/41输入,16/17 输出到音箱 B。

兄弟们也可以自行换一下链接,32/33 输入,16/17 输出,同时 40/41 输入,0/1 输出,自行测试一下。

至此,1452 的通道做直通基本也就讲完了。更复杂的与通道相关的混音和分频,会在后面的程序中再详细的讲。

ADAU1452 的开发 6:音量控制

前面 5 个例程都是直通,没有做任何的音效处理,下面就让我们正式在这些直通中间加入各种算法,来做音效吧。

第一个处理,也是最简单的,音量调节。

1)硬件设计,所有的 SigmaDSP 第一步都是如此,参照前面的说明,不再赘述。

2)首先设计 Input,同样是将左边的 input 拖到右边。Tree Toolbox, 点开 IO 模块组, 然后选择 Input 模块中的 sdata32-39(因为我们要用到开发板上的 32-33) , 并将其拖到右边的空白工作区;

在这里插入图片描述

2)设置一个音量控制,点开 Volume Controls 模块组,然后依此选中/点击 Adjustable Gain >Clickless HW Slew, 再把其中的 Single volume 模块拖到工作区。

在这里插入图片描述

3)选中并鼠标右键点击刚加入的 Single 1 模块, 选择弹出菜单里的 Grow Algorithm>1.Gain (HW slew) >1, 使其支持双声道处理。并将 input 与其链接。

在这里插入图片描述

4)将 Input 模块和音量调节模块进行连接。

在这里插入图片描述

5)设置输出:点开 IO 的 output,如下图拖出来 2 个。

在这里插入图片描述

这两个就是你要输出的 HP-OUT。

6)选择输出的接口:我们板子上有 2 个立体声输出,也就是说有 4 路输出,应该如何让软件设置与板子的硬件接口对应呢?其实很简单,我们选择一下就好了。这里我选 OUT(CH0-1),将调音量的模块与音频输出链接,完成该例程的设计。
在这里插入图片描述

7)再多说一句,这里我们输入用的是 32-33 通道,输出用的是 0-1 通道,在板子上你会很清晰的看到这两个接口,将硬件的输入和输出分别对应的接上就好啦。

8)将做好的例程下载到板子上。可按 F7 或快捷按钮,或通过主菜单 Link Compile Download来把你的设计下载到开发板的 ADAU1452 中,实现 1452 的音频功能。

在这里插入图片描述

9)将输入音源设备播放音源,输出音源开始正常播放,这个时候只需要在 SigmaStudio 软件中,你的工程里调节调音模块,就可以控制音量大小了。

注意 1:编译完毕后,SS 会在右边的 output 窗体里显示编译结果,如有错误会提示错误信息,用户可据此信息去修改设计;如成功则会显示资源占用信息,用户可根据百分比来增减模块,如图:

在这里插入图片描述

注意 2:USBi 将例程 down 到了板子上 ADAU1452 的 SRAM 上,断电就没有了。USBi 的这种调试是为了快速验证功能,最终需要把这个例程的代码烧写到 ADAU1452 的外部 EEPROM 来实现自启动,从而实现脱机运行。因为还想要多写几个例程,所以这个最终的烧写操作我会放到最后来写。

这个例程再重复了一遍 1452 的开发全流程,相信用户经过前面几个例程的自己开发,已经能够熟练掌握。后面的例程就只讲程序,不复述整个流程了。

ADAU1452 的开发 7:单通道静音

静音也是音频调试中最常见的功能,如果实现静音?基于例程 6,我们看一看下面的程序。

在这里插入图片描述

在静音模块上用鼠标点勾,就把这一路音频给静音了。这个例程建议大家在 0/1 的输出接口这接耳机,就会很清晰的听到,当点击静音后,一个耳朵被静音听不到了,另一个耳朵仍然持续播放。

ADAU1452 的开发 8:立体声双通道静音

再看一个静音的例程,同时也能理解一下立体声的左右声道。

在这里插入图片描述

这个例程,就两个通道全部加了静音模块,通过 USBi 下载完程序后,想要对哪路音频静音,只需要鼠标点击模块打勾,就静音啦。还是用耳机听比较清楚,如果是接外放的音箱,只能听到声音弱了一点。

在 SigmaDSP 的算法模块中,会发现很多都有带 SW 的模块,拖出来跟不带的一模一样,这个是干嘛的?注意,非常重要,这个带 SW 的就叫带压摆的模块!

以静音这个模块来讲,见下面的图示:

在这里插入图片描述

压摆什么意思?这个得从这个模块的算法来讲了:

No Slew:不带压摆的静音,启用时,可立即使信号静音,不存在增益调节。相对于压摆算法,这种算法需要较少资源;但是实时切换时,可能导致不连续现象(滴答声和爆裂声)

SW:压摆类算法,可从 0dB 增益平滑过渡至静音,并从静音过渡至 0dB 增益。这种压摆算法由软件(故称为“SW”)实现,比“无压摆”算法要求更多指令。

所以综上所述,无压摆的模块,在音效框架很复杂的时候,实时切换,有可能会出现爆破音。用带压摆的模块就可以很好的解决这个问题。

有些用户可能就要说了,那就全都用带 SW 的模块不就好了?不是这样的,DSP 的内部资源是很有限的,带压摆的算法会占用更多的资源,全都用SW,可能会导致你用不了太多的算法模块了,这里就要有一个权衡,如果用不带压摆的模块,实测没有爆破音,那就放心大胆的用,如果发现爆破音,再换带压摆的模块来解决吧,我们还是希望 DSP 能用更多的算法模块的。

下面这个例程就是带压摆的静音,因为程序简单,跟普通静音没什么区别,但这个章节技术点一定要掌握。

在这里插入图片描述

ADAU1452 的开发 10:两进四出-开关选择声道输出

音源进来后,有选择的输出,这个常用的功能,在 ADAU1452 上是怎么做的,下面这个例程就来说一说 DSP 的开关选择功能。

在这里插入图片描述

SigmaDSP 提供了各种各样的开关模块供你使用,我们来看一个最简单的二进四出,自己通过开关控制,选择是从哪路输出的例程:

在这里插入图片描述

在这里插入图片描述

程序通过 USBi 下载后,开关选择上面,就是 0/1 口输出,选择下面,就是 16/17 口输出。

ADAU1452 的开发 11:四进两出-开关选择声道输入

在这里插入图片描述

模拟音源分别从 32/33 和 40/41 输入,通过 4 选 2 开关,选择哪一个选通,送到 0/1 输出音箱。

ADAU1452 的开发 12:混音-四进二出

混音是我们做音效时非常常见的功能,在音频框架内,讲音频进行各种特效处理后,再混音输出,会得到想要的效果,这里简单的做几个混音的程序,让大家能了解这个功能是如何在SigmaDSP 里实现的。

在这里插入图片描述

看下面这个程序:

在这里插入图片描述

两个立体声同时输入,通过 2 个 2 混 1 的模块,把每一路立体声混成一个声道,送到另一个2 混 1 的混频器中进行混音,再输出到 T,用 T 分别推送到 0 和 1 接口,通过 0/1 输出口输出,实现了四混二出的功能。

在这里插入图片描述

在这个程序里,我用到了一个多控制混频器,可将一组增益不同的输入信号混合成一个输出信号,也就是说我通过调整这两个圆圈的增益,让 0/1 输入音源和 16/17 输入音源可以有不同的音量增益,再进行混音输出,挺实用的,用户可以自行测试效果。

ADAU1452 的开发 13:混音-两进两出自混

这是一种增强音色的处理方法:

在这里插入图片描述

输入音源分一下,上面的直通,下面的做了音量加减的处理,再把他们混在一起输出。我在下面只做了音量的加减,但实际上真实的开发中,会让这个立体声分别做各种音效处理,再混在一起输出,达到想要的音色,这些我会在后面的例程中慢慢展现。

特别注意,开发板的例程旨在教会用户怎么去用模块,至于模块怎么组合才能达到想要的效果,这个就需要用户专业的声学知识,以及慢慢的调试了。

如果不知道模块在哪里,可以直接复制我的例程里的模块,粘贴到自己的工程即可!常用模块的话,用软件的时间久了自然就记得在哪里了。

ADAU1452 的开发 14:分频器-直通分频

有了混音,自然就会有分频,分频器,可将一个输入信号分离成两个或更多输出,在 SigmaDSP的这些列表里:

在这里插入图片描述

看一个简单的例子:

在这里插入图片描述

ADAU1452 的开发 15:分频器-分频音量可调

在这里插入图片描述

用了一个多控制分频器,一个输入信号分离成两个或更多输出,并可对各个输出的增益设置进行独立控制,想让输出 0 音量大点或者小点,就调上面的圆圈,想让输出 1 音量大点或者小点,就调下面的圆圈。

ADAU1452 的开发 16:分频器-高低音分频

分频可以是直通的分频,DSP 还可以支持把高低音分离出来,高音走高音通道,低音走低音通道,我们来看一下是怎么做的。

在这里插入图片描述

输入音源左右声道,经过分频处理,低音接 0/1 输出口输出,高音接 16/17 输出口输出,大家可以分别听一下,效果非常明显。

ADAU1452 的开发 17:线性增益

“线性增益”(Linear Gain)模块以文本字段中指定的值对信号进行缩放。在例程 16 里,我假定一下,感觉低音输出的音量太小,我要对他进行放大,于是我就在这个通道上加上限行增益算法进行响度的补偿!

在这里插入图片描述

手动填入数字,感受一下声音放大、缩小的效果吧!

ADAU1452 的开发 18:1 段 EQ

终于到了音效处理的环节啦,下面的章节,我会用很大的篇章来讲一下均衡。

EQ 是最常用的音效处理。(本人是电子工程师,并不是声学工程师,水平有限,对音效的理解更偏重于 DSP 电子设计应用的实现这部分,文字中有错误或不准确的地方,请原谅、指正,共同学习,谢谢)

Equealizer,EQ,中文翻译为均衡。我的理解,在音效系统里,我们需要对原始的音频信号进行许多方面的加工处理,才能使播放的声音变得优美、悦耳、动听,满足人们对声乐的高品质需要。EQ 就是其中的一种用来对频响曲线进行调整的工具。换句话说,EQ 能对不同频率的声音信号进行不同的提升或衰减。因为它能补偿由于各种原因造成的信号中欠缺的频率部分,也能抑制信号中过多的频率成分,从而达到高品质声音效果。

例如,EQ 可以抑制频率为 60~250Hz 的低频交流声,也能抑制频率为 6~12KHz 的高频噪声。由于乐器发出的声音大多是复合音,即他们是由基波和谐波复合而成的,所以改变了各频段能量分布的相对大小,就相当于改变了基波与谐波之间的相对关系,从而导致人耳对声音频谱结果的听觉感受发声了改变,我们俗称音色的改变。因此,利用 EQ 还可以进行音调调节和音色加工。

EQ 的种类有很多,我们的 SigmaDSP 就提供了非常多的 EQ 算法模块供大家使用,这些 EQ的最基本工作原理应该都是相通的。它们都是将音频信号的全频带(20Hz~20KHz)或全频带的主要部分,按一定的规律分成几个甚至几十个频点(也称之为频段),再分别进行提升或者衰减,从而获得所希望的频响校正曲线。

我们常说的 31 段 EQ,多少段 EQ,SigmaDSP 最多能实现多少段 EQ 是什么意思?频段数越多,则频段分得越细致,补偿修正功能越高。打个比方,15 段 EQ,中心频率我设置个常用的,在 25Hz,40Hz,63Hz,100Hz,160Hz,250Hz,400Hz,630Hz,1.6KHz,2.5KHz,4KHz,6.3KHz,10KHz,16KHz。31 段 EQ,中心频率我设个常用的,在 20Hz,25Hz,31.5Hz,40Hz,50Hz,63Hz,80Hz,100Hz,125Hz,160Hz,200Hz,250Hz,316Hz,400Hz,500Hz,630Hz,800Hz,1KHz,1.25KHz,1.6KHz,2KHz,2.5KHz,3.15KHz,4KHz,5KHz,6.3KHz,8KHz,10KHz,12.5KHz,16KHz,20KHz。根据需要,我们可以在 20Hz~20KHz 的整个音频范围内,调节更多的频点特性,根据需要,精准的提升与衰减增益,消除噪声,修饰音色,提高音质,校正房间声学特性,还能模拟一些特殊的声音效果!

均衡的技术指标有很多,我在这里简单的说一说:

  1. 中心频率
    中心频率就是指均衡中各谐振回路的谐振频率,即提升或者衰减频段的峰点或谷点所对应的频率。

  2. 频带宽度
    各段频带宽度是指的以中心频率为中心,-3dB 点所对应的频带宽度,它与品质因子 Q 值有关,Q 值越大频带越窄,Q 值越小频带越宽。

  3. 最大提升/衰减量
    均衡器在中心频率点所对应的音频信号,能够提升或者衰减的最大能力,用 dB 分贝来表示。

  4. 频率响应
    频率响应也成频率特性,通常是表示不同频率对某一参考电平的相对信号电平特征曲线图。在给定的频率范围内,若所有频率信号均有平均的电平,则称之为平坦的频响曲线。频响也可表示为电平偏差不超过某一分贝数值的皮率范围。均衡器的频率响应指在音频频率范围内各个频率点不提升也不衰减时的频率响应,此时的频率响应曲线越平坦越好!

  5. 频率中心点误差
    频率中心点误差是指各频率点实际中心频率与设定的频率的相对偏移,通常用百分数表示。

  6. 总谐波失真
    信号通过均衡器后,新增加的所有谐波成分的方均根值占基波信号的百分比

  7. 信噪比
    音频信号电平与通过均衡器后产生的各种噪声电平的比值,用 dB 来表示,用于衡量均衡器的噪声性能,信噪比越大,说明均衡器噪声影响就越小。

  8. 最大输入电平
    均衡器输入回路所能接受的信号最大电平。还有其他的参数,如最大输出电平,输入阻抗,输出阻抗等等,这里就不再细说了,属于音频基础知识,可以百度或者找本教材读读看。

以上,简单介绍了一下 EQ,在 SigmaDSP 里,实现 EQ 是一件非常容易的事情,不过想要调好 EQ 就是一个细致的活,我们一起慢慢看,慢慢学,先做一个最简单的 EQ 程序。

1)在工具栏中点开 Filters 模块组, 依此选中/点开 Second Order>Single Precision, 然后把Medium Size Eq 模块拖到工作区。

2)鼠标左键选中 Medium Size Eq 模块,点右键,选择成双通道,和音量模块的操作一样。

3)连线完成设计

在这里插入图片描述

ADAU1452 的开发 19:15 段 EQ

在例程 18 的基础上,我们多加段数,加到 15 段 EQ:

在这里插入图片描述

注意,我并没有设置频率和调参数,大家可以通过自己的专业声学知识来设定每段的频点,以及增益和补偿,来调试音效。

ADAU1452 的开发 20:31 段 EQ

在例程 19 的基础上,我们做到 31 段 EQ,同样,只搭建了程序框架,并没有对每个频段进行细调,用户可根据自己的需要调节各个参数来实现想要的音效:

在这里插入图片描述

做到这里,说一个题外话,很多用户都问 Sigmadsp 到底能做几段 EQ,我想说的是,芯片的资源是有限的,我也说不好你的设计中,EQ 占了芯片多少资源,其他功能模块占了多少资源,到底最后留给 EQ 的能做出几段来。但软件上实现 EQ 是非常容易的,你只需要自己亲自试一下,把你的系统都搭好,看看增加到多少段 EQ,USBi 下载没问题。一旦 USBi 下载出错,那就可能是超出了芯片的能力范围,这个临界值就是你的 EQ 段数啦。

ADAU1452 的开发 21:延时

延时是音频处理中最常见的一种算法,“延迟”(Delay)模块(采用 Z-a 算法)向信号流中添加一个可变延迟,其范围在 1 与 DSP 的最大可用内存之间。

我做一个例程

在这里插入图片描述

在这个例程呢,我把延迟加了进来,并且做了一个开关,上面的音频流是加了延时的,下面的音频流是直通,通过开关来选择,大家可以听一下有没有区别吧。

ADAU1452 的开发 22:移频

ADAU1452 有专门的移频算法,这个模块多用于防啸叫,我只给一个最简单的例程,至于防啸叫就需要用户自己在自己的声乐环境下细调了,通常是多个模块组合实现,比如移频+PEAK+RAM 限幅+带通滤波,方法很多,相信大家的声学知识要远超于我。

在这里插入图片描述

ADAU1452 的开发 23:反馈

“反馈”(Feedback)算法在信号通道中生成一个延迟,并将信号重新引导至该通道中较早发生的输入。(图中所示即为这种反向信号流,这是唯一一个绿色输入位于右侧、蓝色输出位于左侧的模块。)注意,如果设计中要求反馈,则必须使用该模块。

我做一个例子,主要是要讲一下这个反馈的信号流是反的:

在这里插入图片描述

通过开关的选择,上面是经过反馈后的音效,下面的是直通的音效,对比音效还是比较明显的。

ADAU1452 的开发 24:电平实时显示

基于第 23 个例程,我们来加几个电平显示的模块,直观的看看声音的情况:

在这里插入图片描述

打开这4个显示的开关,你会发现3个直通的电平,和经过反馈后的电平显示是完全不同的。

ADAU1452 的开发 25:按键控制 LED 灯

ADAU1452 也有一定的 IO 控制功能,这里做一个简单的按键控制 LED 灯的程序,看看在 1452上是怎么做到的。

1)首先要配置一下 MPx,定义 GPIO 的 input 和 output。

在这里插入图片描述

我们回到 Hardware 的界面,选中 ADAU1452,点鼠标右键,并选择 Register Window,打开寄存器配置页面。

2)选择如下图的设置(如果看不清图,可以直接看我的例程)

在这里插入图片描述

MP5 和 MP6 设置成 output,即 LED 灯 D5,6。MP11,12 设置成 input,即按键 KEY1,2如果要让板子上的按键控制 LED 灯,可做以下操作,拖出 input 和 output,并下拉指定接口即可。

在这里插入图片描述

GPIO11-GPIO5,对应了板子上的 KEY1 和 D5 灯,通过 USBi 下载之后,按下 KEY1,D5 闪。

GPIO12-GPIO6,对应了板子上的 KEY2 和 D6 灯,通过 USBi 下载之后,按下 KEY2,D6 闪。

ADAU1452 的开发 26:搭建 SPDIF 输入,模拟输出工程

从头开始,和例程 1 一样,我们先在 hardware 这里做好硬件配置,再进入原理图开发阶段。

1)工具栏 Tree Toolbox, 点开 IO 模块组, 然后选择 ASRC 模块中的 From ASRC 中唯一的模块Asrc Input, 并将其拖到右边的空白工作区,这个就是 SPDIF IN 的模块。

2)点开 Volume Controls 模块组,然后依此选中/点击 Adjustable Gain Clickless HW Slew, 再把其中的 Single volume 模块拖到工作区。 选中并鼠标右键点击刚加入的 Single 1 模块, 选择弹出菜单里的 GrowAlgorithm 1. Gain (HW slew)  1, 使其支持双声道处理。

3)点开 IO 模块组选择 Output 模块,拖 2 个 Output 模块到工作区右侧。给 每一个模块从下拉菜单中指定 Sdata 输出通道(如 16/17 等) 。 然后按图连接各模块。

在这里插入图片描述

4)配置下 DSP 内部的寄存器, 切换到 Hardware Configurations 页 面中的 Routing Matrix 一页,在此我们需要把 SPDIF0 的输入接到 ASRC 模块中的 ch0-1 并设置 ASRC 的输出频率参考值。

在这里插入图片描述

5) 切换到 Hardware Configurations 页面中的 SPDIF_RX 一页, 如图所示设置 SPDIF 输入端的恢复机制。

在这里插入图片描述

6)如要用到 SPDIF 输出, 需要在 SPDIF_TX 页面打开 SPDIF 的发送开关, 如图 10 所示。

在这里插入图片描述

7)我们就完成了一个简单的从 ADAU1452 的 SPDIF 口输入数字音频, 然后从其 I2S 接口输出并经过 DAC 模拟输出的工程。

结束语

本章从 0 开始,讲了一下 ADAU1452 的基本操作,以上例程均是 USBi 在线下载到 DSP 的 SRAM中调试的,一旦板子断电则程序就丢失了,那我们想要脱机运行程序,则需要把程序烧写到外部 EEPROM 中,怎么去做,请见第三个文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ADI_OP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值