作者的话
ADAU1701是OP认为最具性价比的一颗ADI的音频DSP,价格、性能的匹配度极佳,且通用性强,基本上学会了这颗DSP,后面所有的ADAU系列DSP都可以直接搞。
我希望通过这篇文章,配合开发板和 USBi 仿真器,10分钟让你写出第一个SigmaDSP的程序来!
开发板和仿真器哪里找
产品链接: https://item.taobao.com/item.htm?spm=a21dvs.23580594.0.0.621e2c1b6F3EMW&ft=t&id=811967886964
产品链接: https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-5192690539.11.ad392dbdrCme9n&id=38242936768
视频讲解
ADAU1701做第一个DSP程序的讲解
SigmaDSP调音的最基本原理
科普性,非专业,新手玩家可以简单看看。
我们说世间万物皆模拟,在我们电子工程师眼里,一切可视,可见,可闻,都可以统称为模拟,声音也是如此。
SigmaDSP 作为一个数字音频 DSP,是怎么来处理模拟的声音,调整他,改变他,实现我想要的音色?首先需要把模拟的声音,音乐,语音变成数字的 010101,这个过程叫模数转换,又称之为 ADC,经过转换后的 010101 的数字组合,进入到我们的 SigmaDSP 数字音频DSP 中,DSP 就可以对这些 010101 的数字组合进行处理了,再说的通俗彻底一点,就是重新排列组合,拆,拼,凑,这个过程就叫做调音。010101 经过分频、EQ,增益,延迟、反馈、混音、混响等算法调整好了,拼拼凑凑重新组合成了新的 010101。但是我们人耳是听不到 010101 的数字信号的,怎么办?于是又有了数模转换,称之为 DAC,把这些新组合而成的 010101 还原成模拟的声音,再传到我们耳朵里。整个的过程就是如此。
所以你看,具体到 SigmaDSP中的具体型号,ADAU1701 是怎么实现的呢?模拟音源通过 ADAU1701 芯片内部自带的 2 进 4 出 AD/DA 功能的 Codec 功能模块,进行 ADC 转换,变成 010101 的数字送入其 DSP 功能模块中,DSP 获取了 010101 的数字,通过自带的分频、EQ等算法模块进行重新排列组合,形成了含有我们想要的音色的数字音频信号,再通过 1701片内高性能的 DAC 功能转换成模拟音源,输出到功放、耳机等设备上,让我们听到增加了音效的声音,整个过程就是这样。
并不是从专业角度的一段讲解,只希望 0 基础选手对此有个感性的认识,再进入我们理性的专业调音开发中来吧。
ADAU1701-A2B板的简介
看图说话吧:(看板子上的丝印也能看出来)
- 5V2A/1A的电源接口,负责给开发板供电;
- 模拟的2进4出,绿色的接口是模拟输入,黑色的两个接口是模拟输出;
有同学可能就有疑问了,这明明是1进2出呀,1个输入接口,2个输出接口。这个想法是错的,因为我们在音频这个领域里,讲到的通道数都是指的单通道,这里的绿色输入接口,是立体声输入,也就是左右两个单通道,所以是2进,2个黑色的输出接口同样做的是立体声输出,也就是左右两声道在一个接口输出,所以是4出(这个在后面的程序配置中会有更好的体现)。
- 一个电位器
- USBi JTAG接口
5. 一个用IO设计的按键
- 复位按键
- IIS扩展插针
- STM32的烧写接口(接STLINK)
- STM32的串口
- A2B接口(汽车音频总线接口)
- ADAU1701芯片
- STM32F103芯片
开发前的准备工作
硬件准备
一台64位的PC,一块ADAU1701开发板,一个USBi仿真器,一个单片机烧写器(STLINK),两根音频线,一个5V2A/1A的电源,一个输入音源,可以是 PC 或者手机或者其他模拟音频输入设备,一个或两个输出音源设备,可以是耳机音箱等。(为啥要64位的PC呢,是因为ADI现在提供的新版本SigmaStudio 软件只支持64位的OS了)。
输入和输出音源这个我也要简单说一下,因为我们这个是开发板,目的是为了迅速的教会大家使用 ADAU1701,所以就用最简单的外设,文档中我使用了手机作为输入音源,一个小音箱和一个普通的3.5耳机作为输出设备。
软件准备
(单片机软件、烧写软件及单片机操作说明有专门的文档,此处不再赘述)
首选需要安装SigmaStudio软件,这个软件是开发ADAU1701的唯一工具,你的所有功能都依赖这个软件来实现,所以请随时关注 ADI 官网上的软件更新情况,确保自己安装的是最新的 SigmaStudio 软件,已获得更多更稳定的功能。
SigmaStudio 软件官网下载链接:
http://www.analog.com/cn/design-center/processors-and-dsp/evaluation-and-development-software/ss_sigst_02.html
这个软件是完全免费的,直接下载安装即可,目前就直接下4.7。
特别注意,安装 SigmaStudio 时,有可能需要你安装 Microsoft.NET Framework Ver4.0,如果你的机器之前没有安装过此类软件包。
最新版本的.net Framework 可到以下网站下载:
http://www.microsoft.com/zh-cn/download/details.aspx?id=17718
操作系统特别注意,若是WIN7或以上PC系统,请确保“我的文档”在C盘目录中,否则在安装过程中有可能会提示出错。 有兄弟问能不能用WIN10和WIN11,WIN11我还真是不清楚,但WIN10肯定可以,因为我自己用的就是WIN10。
软件都装好了,就可以正式开启我们的 ADAU1701 的开发之旅了!
开发平台搭建示意图
-
开发板上的跳线不动;
-
开发板上SW2(1701BOOT)开关拨到OFF;(注意,我们在做调试的时候,一律让DSP不启动)
-
开发板上的SW1(IIC & MCU)开关拨到IIC(就表示我需要用到DSP的IIC模式来做调试)
-
USBi插到开发板的USBi JTAG接口(开发板和仿真器均有温馨防反插设计,不用担心插反了,这个时候仿真器和开发板均没有通电);
-
5V2A电源接入,USBi接PC的USB口(如果是台式机,不要前置USB口,要接到后置的);(供电正常时,Power D3红色会被点亮,LED1绿色被点亮,MCUBOOT黄灯闪烁。否则说明供电有问题,请检查电源) ;
-
模拟音源从绿色的接口输入(接的是PC声卡的音源输入);
-
模拟音源从黑色的接口输出,我接的是一个小音箱输出,注意该模拟输出口对应的音频通道编号, 这个我在后面的章节会详细讲解;
-
特别注意,输入输出的线缆用力怼到底,插到最里头。
USBi 通过 USB 线插入 PC 后,如果弹出找到新硬件并要求安装设备驱动,请选择自动安装。如自动安装失败,可手动定位到 USBi 的驱动安装目录:
安装完毕后,可在设备管理器里检查是否有 Analog Devices USBi 设备,如下图所示,则表示安装成功,否则须重试。
ADAU1701的第一个程序开发:直通
软件也装好了,硬件也接好了,下面就跟着OP老师的节奏,正式开搞,会很有趣,只需要点点鼠标,就能搞定,这也是我为什么会说,10分钟就让你写出第一个DSP程序来。
我们从最简单的开始,先做一个直通的例程。先把这个板子弄出声来。
下面要做的事很简单,一路PC声卡模拟音源输入音源(也可以用手机,播放器等模拟音源),通过ADAU1701的内部codec 进行AD,并不经过任何的数字音效处理,在DSP里走直通,然后通过内部codec进行DA,再推到音箱。让PC声卡输入音源播放音乐,看看音箱能否正常的发声。
- 打开SigmaStudio软件。我安装的是 4.7 版本,当下最新的。选择 File> New Project,新建一个工程。
- 首先设计 Hardware,把 ADAU1701,USBi 和 EEPROM 鼠标选中,拖到 Hardware 里来,然后按照下面的图示进行链接(这是所有 SigmaDSP 设计的第一步)
注意!请不要随便改变 USBi 单元显示的 SPI 或 I2C 地址,否则会导致通信错误,从而不 能正常联接调试,你的硬件是怎么设计的,你就选择怎样的链接。我的开发板设计的是 IIC 的 EEPROM,就是上图这么连。这个地址在ADAU1701 的数据手册里也能够体现。
再注意!这个界面下,你会发现你的这个USB是绿色的,就证明你的USBi调试器正常接入了,你拔掉USBi调试器就会变红,就表示仿真器不可用。
- 硬件链接设计好了,接下来的音频设计步骤,需要转换到原理图设计页面(Schematic), 选中 Schematic。
- 首先设计 Input,同样是将左边的 input 拖到右边。Tree Toolbox, 点开 IO 模块组, 然后选择 Input 模块中的 Input1(因为我们要用到开发板上的 IN0-1),并将其拖到右边的空白工作区;
这里为什么选择的是 0 和 1 打勾呢,因为我们开发板上设计的就是 0/1 接口输入音源。请看下图的丝印:
- 设计输出接口,点开 IO 的 output,如下图拖出来 2 个。(为什么这里要拖出来 2 个呢?因为是左右声道呀)
一个输出选择 DAC0,一个输出选择 DAC1,同样也是对应的板子上的输出接口的,看下图。
OUTPUT0/1 接的是音箱,所以一会出声的就是音箱了。
- 将这几个模块连线,就完成了一个最简单的直通程序了。
- 将做好的例程下载到板子上。可按 F7 或快捷按钮,或通过主菜单 Link Compile Download 来把你的设计下载到开发板的 ADAU1701 中,实现 1701 的音频直通功能。
如 USBi 与开发板通信正常, SS 右下角的状态栏会显示 100%, Active: Downloaded。
- 将输入音源设备播放音源,输出音源开始正常播放。
注意:USBi 将例程 down 到了板子上 ADAU1701 的 SRAM 上,板子断电就没有了。USBi 的 这种调试是为了快速验证功能,最终需要把这个例程的代码烧写到 ADAU1701 的外部
EEPROM 来实现自启动,从而实现脱机运行。
技术支持这一块,咱们把话术约定一下,同学们说USBi下载程序到DSP的SRAM中,实现实时的调试,我们都叫“在线下载调试”,而烧写到EEPROM实现自启动,脱机运行,我们都叫“烧写”,这样后面大家有问题问我的时候,就不会产生理解上的偏差。
下一篇预告
软件装好,硬件连好,新建工程,鼠标点几下,把输出输出框架结构连好,点击下载,直通功能达成。
怎么样,是不是不要 10 分钟,就能自己开发出第一个 SigmaStudio 例程啦!下一章会讲一下EEPROM的烧写和脱机运行。
OP老师在ADAU1701的这个开发板上写了超过100个例程,跟紧OP老师的节奏,后面的开发更简单,也更有趣!