ADAU1860实现脱机运行,是开发这个DSP的最后一步。这颗芯片有一颗HIFI 3Z的蓝牙MCU内嵌,用户可以用这颗MCU来进行脱机,甚至直接用C来开发1860(有专门的SDK,不在此做更多阐述),但是这个HIFI 3Z的软件开发环境是收费的,OP作为一个音频爱好者,实在是买不起这个License,又想要实现MCU来控制和启动ADAU1860,很矛盾,所以想了一个折中的办法,我索性在1860外再扩展接一个STM32的MCU,通过对这个MCU的操作,来实现控制和开发DSP的功能。
STM32大家都非常熟,我们希望用户能在STM32的这个例程源码上,理解如何用MCU来搞1860,从而举一反三到HIFI 3Z上,实现无缝开发。(在此之前ADI没有任何与之相关的文档、程序,我们不得已为之,这里写的有不对的地方请大家见谅,OP也是实在没办法,个体户买不起正版HIFI 3Z License)
开发前的准备工作
1.硬件准备
一块ADAU1860的开发板(含MCU子卡),一个ADAU1860专用仿真器,音频线两根,音源一个,耳机一个,STLINK烧写器一个。
如上图所示,绿色的未接入系统的这个小仿真器,就是我做的STLINK。
特别注意:做这个文档里所有的工作,都不能插MCU子卡,因为会影响仿真器对DSP的调试,有冲突。
2.软件准备
安装 LARK Studio(上一个文档中有详细讲解,不再赘述);安装单片机开发软件,安装单片机烧写器软件(这两个软件均提供了安装包,安装全部是下一步,任何电脑跳出来提示是否强制安装的,一律选择强行安装)
Lark Studio 下要做的工作
1.首先使用ADAU1860专用仿真器(后面会简称仿真器)来调试DSP,做好DSP的工程。我随便做了一个程序,就让这个程序实现脱机吧。
程序用的是我文件夹里的这个,打开看一下:
0,1,2三个通道同时输入,经过混音后,再过一个音量调节模块,以及一个静音模块,最后输出到耳机。程序很简单,我就不多说了。
通过仿真器在线下载,输入音源,输出耳机播放没问题,下一步就需要把这个程序让单片机启动。
特别注意,一定要先用仿真器下载程序,验证程序的正确性,再才可以进行脱机的操作。
下载完程序后,耳机听到声音,调一下音量和静音,都没问题,实现我想要的功能。
2.导出这个LARK STUDIO里的工程,见下图:
将导出的文件指定到单片机工程的 MCU 文件夹内。(注意,导出文件名不用改,我在MCU工程里都设置好了一一对应的)
下图是我的单片机工程中,MCU 文件夹的位置(我单独拷贝出来,放到D盘,不含中文路径):
导出后会覆盖原有文件,覆盖完之后,可看到文件的最新更新时间,就是你现在正在操作的当下时间。
问你是否替换,选择是!
我是2022年9月6日做的这个程序,所以这个覆盖后的文件就显示的是我当下时间,说明导出文件成功。
导出之后,DSP部分的工作就全部做完了。
MCU烧写
- 打开安装好的单片机开发软件,第一次打开,设置一个 workspace,基于 Eclipes 的开发环境都是这样,没什么好说的:
2.进入之后,选择第三个,来import你的工程。
3.指定文件夹到你的工程文件
这里我已经指定完了,无法再截图了,用户自己搞一下把,很简单的导入工程,eclips都是这么搞的。导入成功后,就是这个样子。
5.010进行编译。
显示编译完成,获得BIN文件。BIN文件在你的工程里:
6.使用单片机烧写工具来烧写 bin。
注意,要烧写MCU,就必须先把板子断电,把MCU子卡插上,然后拔掉DSP仿真器,再接上STLINK。
STLINK插入PC后,设备管理器里出现了它:
打开烧写软件:
点击下图中 connect to target 按钮,紧接着按一下MCU板子上的 RESET 键(注意:不按复位键会连接不上的)
链接成功后如图:
擦除单片机flash
擦除完成
加载 bin 文件(通过 STM32 软件编译而成)
加载完成:
烧写文件
选择默认的就可以了。
烧写完成:
断开板子电源,拔掉 STLINK,并将输入音源、输出耳机接好,板子重新上电,实现音频输入后,耳机听到音乐,通过MCU卡上的按键可以控制音量大小和静音,完成脱机。