作者的话
图形化编程是ADAU系列DSP的最大特点,1467同样如此,我常常对兄弟们讲,10分钟你就能搞明白怎么开发这颗DSP,那就看看是不是这样吧。
ADAU1467 的开发 1:直通 1
我们从最简单的开始,先做一个直通的例程。先把这个板子弄出声来,这个程序我觉得几分钟就能掌握,你会发现 SigmaDSP 的开发竟然是如此的简单!
开关说明:在前面的章节里,们已经对开关进行了详细的说明,第一和第二个例程我再把开关拨法重复一下,后面的例程中不再描述。
S1:OFF,进入调试模式,不需要 ADAU1467 自启动,所以调整为 OFF;
SW2:SPI,让 USBI 仿真器用 SPI 模式对 ADAU1467 进行调试。(特别注意,ADAU1467 可以用 SPI 和 IIC 两种模式进行调试,我们这个例子先讲用 SPI 模式调试,第二个例子再讲用 IIC模式调试)
SW4 和 SW5:调到 USBI CTRL,由 USBI 仿真器控制 DSP 进行调试;
SW6:SPI,这个是单片机的调试模式,不用管他,一直用 SPI。
下面要做的事很简单,选择一路 LINE IN,输入音源,通过 AD1938 模拟转数字,进入 ADU1467的 DSP 中,并不经过任何的数字音效处理,直通到 AD1938 数字转模拟,再输出到耳机。让手机输入音源播放音乐,看看耳机能否正常的发声。
- 打开 SigmaStudio 软件。我安装的是 4.2 版本,当下最新的。选择 File> New Project,新建
一个工程。
- 首先设计 Hardware,把 ADAU1467,USBi 和 EEPROM 鼠标选中,拖到 Hardware 里来,然后按照下面的图示进行链接(这是所有 SigmaDSP 设计的第一步):
注意!请不要随便改变 USBi 单元显示的 SPI 或 I2C 地址,否则会导致通信错误, 从而不能正常联接调试,你的硬件是怎么设计的,你就选择怎样的链接。我的开发板设计的是IIC 的 EEPROM,就是上图这么连。
- ADAU1467 的寄存器配置
这一步很关键,非常关键,特别关键!!!
ADAU1467 和 ADA1452 以及其他我们用过的型号不一样,他默认的是模拟的8 进 8 出,另外还有 16 路通道,可以通过寄存器配置成 2 入 14 出,4 入 12 出,8 入 8 出,14 入 2 出,而我们这个开发板的设计是 12 进 20 出,所以需要进行寄存器配置;
注意,需要配 8 个 IO!如果文档中的图看不清,就直接点开我的例程去看。
- 硬件链接设计好了,接下来的音频设计步骤,需要转换到原理图设计页面(Schematic),选中 Schematic。
1)首先设计 Input,同样是将左边的 input 拖到右边。Tree Toolbox, 点开 IO 模块组, 然后选择 Input 模块中的 Input1(因为我们要用到开发板上的 IN0-1) , 并将其拖到右边的空白工作区;
这里为什么选择的是 0 和 1 打勾呢,因为我们这个例程,开发板上设计的就是 0/1 接口输入音源。请看下图:
2)设计输出接口,点开 IO 的 output,如下图拖出来 2 个。(为什么这里要拖出来 2 个呢?因为是左右声道呀)
一个输出选择 DAC0,一个输出选择 DAC1,同样也是对应的板子上的输出接口的。
OUTPUT0/1 接的是音箱,所以一会出声的就是耳机了。
3)将这几个模块连线,就完成了一个最简单的直通程序了。模拟从 0/1 接入输入音源,直通中间不做任何处理,到模拟 0/1 输出接口接耳机。
- 将做好的例程下载到板子上。可按 F7 或快捷按钮,或通过主菜单 Link Compile Download来把你的设计下载到开发板的 ADAU1467 的内存中,实现 1467 的音频直通功能。
如 USBi 与开发板通信正常, SS 右下角的状态栏会显示 100%, Active: Downloaded。
- 将输入音源设备播放音源,输出音源开始正常播放。
注意 1:编译完毕后,SS 会在右边的 output 窗体里显示编译结果,如有错误会提示错误信息,用户可据此信息去修改设计。
怎么样,是不是不要 10 分钟,就能自己开发出第一个 SigmaStudio 例程啦 😃
注意 2:USBi 将例程 down 到了板子上 ADAU1467 的 SRAM 上,断电就没有了。USBi 的这种调试是为了快速验证功能,最终需要把这个例程的代码烧写到 ADAU1467 的外部 EEPROM来实现自启动,从而实现脱机运行。因为还想要多写几个例程,所以这个最终的烧写和脱机操作我会放到最后来写。