作者的话
查看以前写的文章,竟然漏了ADAU1452的教程,这个系列补上。
硬件准备
ADAU1452EVB开发板 一块
USBi仿真器 一个
5V2A电源适配器一个
3.5mm音频线两条
MINI USB线一根
模拟音频输入音源:手机
模拟音频输出设备:耳机
软件准备
首选需要安装 SigmaStudio 软件,这个软件是开发 ADAU1452 的唯一工具,你的所有功能都依赖这个软件来实现,所以请随时关注 ADI 官网上的软件更新情况,确保自己安装的是最新的 SigmaStudio 软件,已获得更多更稳定的功能。
目前最新的SigmaStudio软件版本是4.7,而且应该不会再有更新了,所以我们如果用SigmaStudio,就固定在4.7版。
这个软件是完全免费的,直接下载安装即可。
特别注意,安装 SigmaStudio 时,有可能需要你安装 Microsoft.NET Framework Ver4.0,如果你的机器之前没有安装过此类软件包。 最新版本的.net Framework 可到网站下载。
软件都装好了,就可以正式开启我们的 ADAU1452 的开发之旅了!
开发平台搭建示意图

ADAU1452 的开发 2:直通 2
第一个例程我们把板子弄出声了,输入音乐,输出音乐,这个也是验证板子硬件是否正常的最常规办法。第二个例程,我们把直通换到另一个输出通道接口上去,加深一下对通道设置的理解。
首先是硬件设计,再是原理图设计,跟例程 1 完全一样,我就不再重复叙述了。
在原理图的设计中,把输出改成 OUT2,就对应的是板子上的 16/17,第二个输出接口,将音乐输出到这个接口的音箱上:

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

ADAU1452 的开发 3:音频一分二(二进四出)
这个例程,我们将实现一路音源入,两路同时输出。
首先是硬件设计,然后到了原理图的阶段,因为是两路输出,所以我们需要拖出 4 个 output

先将 output 的通道选择好, 0/1 是一组, 16/17 是第二组。
于是问题来了,输入接口只有 2 个点,如何才能跟 4 个 output 相连呢,这里我们需要引入一个非常重要的模块,T。T 可以让他们并联起来。

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


ADAU1452 的开发 4:音频二分四(四进八出)
通过前三个例程,在直通这块,用户应该能理解了,下面做一个音频二分四,两路音频输入,分别通过四路音频输出接四个音箱。(特别注意,我这里二分四,指的是输入两个立体声音源,从四个立体声音箱输出,如果用更专业的通道来描述,应该是模拟的四进八出,一个一个立体声音源是占用的两路通道,这个在软件程序中也能很清晰得看出来)

从上面的程序可以看出来,音频输入是 0/1 和 16/17,两个立体声(四进)输入。
0/1 输入后接输出接口 0/1 和 16/17,两个立体声(四出)输出
16/17 输入后接输出接口 32/33 和 40/41,两个立体声(四出)输出
所以程序就实现了二分四(四进八出)的功能。

ADAU1452 的开发 5:音量控制
前面 4 个例程都是直通,没有做任何的音效处理,下面就让我们正式在这些直通中间加入各种算法,来做音效吧。
第一个处理,也是最简单的,音量调节。
1)硬件设计,所有的 SigmaDSP 第一步都是如此,参照前面的说明,不再赘述。
2)首先设计 Input,同样是将左边的 input 拖到右边。Tree Toolbox, 点开 IO 模块组, 然后选择 Input 模块中的 sdata0-15(因为我们要用到开发板上的 IN0-1) , 并将其拖到右边的空白工作区;

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)选择 HP-OUT 的接口:我们板子上有 4 个 HP-OUT,也就是说有 8 路输出,应该如何让软件设置与板子的硬件接口对应呢?其实很简单,我们选择一下就好了。这里我选 OUT2(CH16-17)

7)将调音量的模块与音频输出链接,完成该例程的设计。

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

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

10)将输入音源设备播放音源,输出音源开始正常播放,这个时候只需要在 SigmaStudio 软
件中,你的工程里调节调音模块,就可以控制音量大小了。
注意 1:编译完毕后,SS 会在右边的 output 窗体里显示编译结果,如有错误会提示错误信息,用户可据此信息去修改设计;如成功则会显示资源占用信息,用户可根据百分比来增减模块,如图:

注意 2:USBi 将例程 down 到了板子上 ADAU1452 的 SRAM 上,断电就没有了。USBi 的这种调试是为了快速验证功能,最终需要把这个例程的代码烧写到 ADAU1452 的外部 EEPROM 来实现自启动,从而实现脱机运行。因为还想要多写几个例程,所以这个最终的烧写操作我会放到最后来写。
这个例程再重复了一遍 1452 的开发全流程,相信用户经过前面几个例程的自己开发,已经能够熟练掌握。后面的例程就只讲程序,不复述整个流程了。