ADAU1452的开发教程3:常规音频算法的开发(1)

作者的话

查看以前写的文章,竟然漏了ADAU1452的教程,这个系列补上。

硬件准备

ADAU1452EVB开发板 一块

产品链接:https://item.taobao.com/item.htm?id=39289236798\&mi_id=0000wqoRr6-98ywbCw8ZTr0mE6q1cknIFCl463Z2sUYdsks\&spm=a21xtw.29178619.0.0

USBi仿真器 一个

产品链接:https://item.taobao.com/item.htm?id=38242936768\&ltk2=17537807781694bl3w9jzvg4i3etpojyy4\&spm=a21xtw.29178619.0.0

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 的开发全流程,相信用户经过前面几个例程的自己开发,已经能够熟练掌握。后面的例程就只讲程序,不复述整个流程了。

相关推荐
꧁Q༒ོγ꧂15 小时前
算法详解(三)--递归与分治
开发语言·c++·算法·排序算法
逸俊晨晖15 小时前
昇腾算力卡310p编解码推理性能记录
目标检测·音视频·昇腾
小咖自动剪辑15 小时前
小咖批量剪辑助手:Windows 视频批量自动剪辑与混剪工具
人工智能·音视频·语音识别·实时音视频·视频编解码
MQLYES16 小时前
03-BTC-数据结构
数据结构·算法·哈希算法
无限进步_16 小时前
【数据结构&C语言】对称二叉树的递归之美:镜像世界的探索
c语言·开发语言·数据结构·c++·算法·github·visual studio
im_AMBER16 小时前
Leetcode 98 从链表中移除在数组中存在的节点
c++·笔记·学习·算法·leetcode·链表
高山上有一只小老虎17 小时前
灵异背包?
java·算法
s090713617 小时前
【综述】前视二维多波束成像声呐(FLS)图像处理算法全解析:从成像到深度学习
图像处理·人工智能·算法·声呐·前视多波束
星河耀银海17 小时前
人工智能从入门到精通:机器学习基础算法实战与应用
人工智能·算法·机器学习