作者的话
A2B作为ADI的汽车音频总线,正在被用户广泛使用,而绝大多数用户都是自己去摸索,非常浪费时间。OP做过几个A2B的项目,想说这么一个比较简单的东西,竟然没有一个人来好好讲解一下,实在是不应该,于是我就弄了一整套的A2B开发套件,我希望用这个A2B的套件搭一个完整的DEMO系统,能够让0基础的用户能够迅速上手此类应用开发。
关于A2B理论上的东西不会出现在此文档中,我只写应用,第一步做什么,第二步做什么,怎么操作,怎么配置,来实现A2B的功能,用最简单最直观的方式,让兄弟们点点鼠标就能开发。
视频教程
数字音频总线A2B开发详解一(A2B开发套件的初始状态说明)
硬件说明
想要搭一个最基本的A2B DEMO,我们需要下面的几个硬件:
产品链接:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-5192690539.15.386c1970L8BukJ&id=695380156392
- AD2428WD-EVB开发板 1块
- AD2428WB-EVB开发板 1块
- AD2428WC-EVB开发板 1块
- A2B-STM32核心板 1块
- USBI仿真器 1个
- STLINK下载器 1个
- 5V2A的电源 1个
- A2B双绞线(2米)2条
- 3.5mm音频线1到2条
- Mini USB线1到2条
- 耳机或音响等模拟音源播放设备一个
- 手机或电脑等模拟音源输入设备一个
作者的话
从板B上,我们把Master板上直通过来的音频信号,通过板子上的ADAU1761进行调音,可以让每一块从板都发出自己的声音,那么可不可以从源头,我们在Master上就把声音分配好,高音你去B1板,中音你去B2板,低音你去B3板,加几个延时的你去B4板?可以,这个文档就教你怎么从Master段调音。
硬件使用列表
AD2428WD-EVB开发板 一块
AD2428WB-EVB开发板 一块
USBi仿真器 一个
A2B 2米双绞线 一根
5V1A或2A的电源 一个
D板输入模拟音源的PC 一台
B板播放模拟音源的耳机 一个
硬件链接
-
D板的SELFBOOT开关OFF,我们进入调试模式(非常重要,开关不打到OFF,调试会出错,调试的时候一定务必必须把这里OFF)。
-
物理链接的话,USBi调试器一头通过USB线接PC,一头通过JTAG头接D板;
-
D和B通过A2B的双绞线链接,D板的Slave出,B板的Master进;
-
D板的绿色模拟输入接口输入模拟音源,我是直接接在我的电脑的声卡3.5出口;
-
B板的黑色模拟输出接口输出模拟音源,我是直接接我的3.5耳机;
-
5V2A电源给D板供电。
SigmaStudio工程
注意,我们要做算法,就全部都是在这个SigmaStudio工程上做,音源通过D板的绿色模拟输入接口接入,经过D板上的ADAU1761做AD,变成010101的数字音频,再通过A2B接口发给B板,B板收到0101010的数字音频后,我们之前的做法是直接用B板上的ADAU1761进行DA,变成模拟音频推送到耳机上,这样就仅仅只是做了一个音频的直通传输,没有做任何的音效处理。
下面要干的事情就是在D板,我们的Master板上,我们收到来自D板的ADAU1761 DA过来的01010101的数字音频数据后,用D板上的主控DSP,也就是ADAU1452对这些010101进行算法处理,通俗的理解就是重新的排列组合,组成我想要的全新的01010101,再发给A2B接口,送到B板上,B板DA推到耳机听效果,这个过程我们称之为DSP的调音。怎么做?往下看:
D板的调音,我们主要用到这个工程:
D板音效处理:一段EQ的设计
- 打开这个工程
- 咱们给他另存为一个新的工程:
- 进入到这个工程,我们来看看怎么做一段EQ:
这个工程的逻辑就如上图,01就是送给我们的第一个B板(后面称之为B1板)音频通道。我们D板上的音频是通过这个接口,走到A2B上,并发给B1板,所以我们给B1板的音频提前做处理,就要在这里做文章。
- 找一个EQ模块,然后放到这个红框这里:
随便拖了一个EQ出来。
我把这个EQ放到一个声道上,并且把他调极限一点,这样我们耳机左右耳朵能听出不一样来。
注意这个ADAU1452我有专门的开发板,写了7,80个例程,专门讲怎么做算法,在这里我就不过多重复了,就搞个基本的,如果有想要彻底学一下ADAU1452的,可以去看我的ADAU1452的专门开发板上写的内容,当然后期我们也会把我们所有的ADAU板都加上A2B,这样就能把以前ADAU上的音频音效处理资源都利用起来了,敬请关注。
- 链接好原理图
这就是一段EQ,
具体参数直接在这个模块上调,还能点开他:
频点,Q值,什么PEQ还是SEQ,都可以用鼠标来调整。
咱们搞个极端一点的,直接调到头:
- 保存工程
A2B主程序配置
- D&B工程打开;
- 配置B板的ADAU1761;
- 配置D板的ADAU1452,注意,这里就要用到我们新做的加了EQ的工程了;
注意看到了没有,我给D板的1452配置就用了我新做的带EQ算法模块的工程;
- 配置D板的ADAU1761
- 下载工程,听效果
D板音效处理:15段EQ的设计
- 继续回到D板的ADAU1452程序中:
- 我们给做一个15段EQ,不多说操作,上一个文档的B板上有详细说明。这里我还是只做一个通道的EQ;
这个参数是我随意瞎填的,兄弟们都是调EQ的高手,就不需要我写参数班门弄斧了,我文档只是告诉大家怎么去调出来,大家再自己去调音把。
3.另存为15段EQ的程序
4.回到A2B主程序,先加载B板的ADAU1761的程序,再加载D板上新做的1452和1761的程序;
5.下载A2B工程,实现B板的15段EQ输出音效。
15段EQ之后,音乐就能听得出,与直通相比,很明显的差别啦,高音甜中音准低音劲,玩起来吧!
D板音效处理:31段EQ的设计
15段不够,我们试试31段,把EQ分的更细一些,所谓细致调音,不就是让我的耳朵,在每个频段都能听到最佳的音效吗?玩起来!
- D板的1452程序,做31段EQ;
31段的频点我一样是瞎填的,兄弟们见谅,每个人都有自己独特的音域享受,你就去调你自己觉得最美的,不用参考我的。
- 回到A2B主程序,给D板的1452做新31段EQ的工程配置;
- 给D板的常规1761和B板的常规1761做工程配置;
- 下载A2B工程,感受一下31段EQ的音效吧,我调的很燥,刚出声音把我耳朵狠狠的燥了一下:)
D板音效处理:高中低音分频,高音输出
ADAU1452可以做高中低音分频,我们这次用D板来分频,直接送高音到这个B板,让他只准发高音。
- D板的1452工程做算法
具体的频点等参数设计点进去:
- A2B主工程中,D板的1452加载此分频工程,D板和B板的1761加载常规工程;
- 下载A2B工程
- 当D板输入正常的音源,B板接的耳机里只出高音。
D板音效处理:高中低音分频,中音输出
A2B主工程加载了中音输出的工程,下载主工程后,B板的耳机只能到中音输出,听的效果非常明显。
D板音效处理:高中低音分频,低音输出
A2B主工程加载了低音输出的工程,下载主工程后,B板的耳机只能到低音输出,听的效果非常明显。
总结
就写了几个EQ,还有分频的简单说明,做过ADU1452的人,加算法会非常容易,非常多的音效可以往里加,我就不在这里过多笔墨了。
实现过程很简单:
- D板的1452 Sigmastudio原始工程里加音效算法;
- A2B工程里去加载这个工程;
- A2B工程加载其他的原始DSP工程,整备完整,下载工程;
- 耳机去听这个音效算法的表现,完成!
- 想要了解更多ADAU1452的音效调节,我有专门的1452开发板,写了7,80个例程。
题外话
我们现在做的一切都是基于SigmaStudio软件,在PC下去调音,能不能脱机,让上位机,或者物理按键去调SigmaStudio里的控件,让他们联系起来?可以,没问题,只需要在ADAU1452的主工程里做算法,然后通过外部MCU来控制这些算法,就可以实现脱机控制的功能,后面一个文档我会写这方面的内容。
初步计划是用我做的STM32核心板,上面有3个按键,我就做一套简单的程序,1个Master接3个B Slave板,STM32每一个按键控制一个B板,按A键,B1板发声,再按一下,他静音;按B键,B2板发声,再按一下,静音;按C键,B3板发声,再按一下,静音;其实就是做一个按键控制Slave板的选通功能,给兄弟们打个样。
A2B这套系统我才刚刚做好的,设计文章也还在不断的更新中,后期我打算再做一个D-Class的数字功放Slave板,ADAU1701的Slave板,ADAU1467/1463的4进8出的Master板,相应的技术文章也均会更新在这里,敬请期待。