草庐IT

数字音频总线A2B开发详解一(A2B开发套件的初始状态说明)

ADI_OP 2023-09-20 原文

作者的话

A2B作为ADI的汽车音频总线,正在被用户广泛使用,而绝大多数用户都是自己去摸索,非常浪费时间。OP做过几个A2B的项目,想说这么一个比较简单的东西,竟然没有一个人来好好讲解一下,实在是不应该,于是我就弄了一整套的A2B开发套件,我希望用这个A2B的套件搭一个完整的DEMO系统,能够让0基础的用户能够迅速上手此类应用开发。

关于A2B理论上的东西不会出现在此文档中,我只写应用,第一步做什么,第二步做什么,怎么操作,怎么配置,来实现A2B的功能,用最简单最直观的方式,让兄弟们点点鼠标就能开发。

硬件说明

想要搭一个最基本的A2B DEMO,我们需要下面的几个硬件:

  1. AD2428WD-EVB开发板 1块
  2. AD2428WB-EVB开发板 1块
  3. AD2428WC-EVB开发板 1块
  4. A2B-STM32核心板 1块
  5. USBI仿真器 1个
  6. STLINK下载器 1个
  7. 5V2A的电源 1个
  8. A2B双绞线(2米)2条
  9. 3.5mm音频线1到2条
  10. Mini USB线1到2条
  11. 耳机或音响等模拟音源播放设备一个
  12. 手机或电脑等模拟音源输入设备一个


AD2428WD-EVB开发板

这块板又叫Master板,采用了ADAU1452+ADAU1761+AD2428的设计,1452作为DSP,1761作为Codec,AD2428作为A2B接口传输芯片。

在后面的文字中,我会把这个板称之为D板。再次注意,非常重要,Master板叫D板,后面只会说D板。

AD2428WB-EVB开发板

第一个节点板,Slave板,采用的是ADAU1761+AD2428的设计。在后面的文字描述中,我会把这个板子称之为B版。

A2B-STM32核心板

A2B的系统,是可以用EEPROM自启动,也可以通过MCU来启动,D板上我们做了一个STM32的核心板,插上之后可以实现整个系统的MCU启动功能。后面我会称之为M板。

USBI仿真器

SigmaDSP的仿真器,A2B也是用他调,我就不多说了,常规装备。

STLINK烧写器

STM32核心板的烧写器,也是常规装备,不多说。

软件说明

开发板A2B,需要安装2个软件,一个是SigmaStudio,一个是A2B,这两个我会在资料包中提供,当然用户也可以通过ADI的官网去下载最新的软件。需知你所有的A2B功能均需要在这两个软件上去实现,越新的软件,可能提供的功能越多,BUG越少,所以我个人建议用户用最新的软件。

SigmaStudio软件官网链接:

SigmaStudio官方下载

4.6和4.7都可以,在这里能下载的都是最新的。

A2B软件官网链接:

A2B软件官方下载

19.4.4是最新的,在我写文章的当下,用户用这个版本即可。

操作系统要求


仅需要注意一点,32的系统软件装不上,必须是64位的操作系统,请注意。

软件安装说明

SigmaStudio和A2B都是全免费的,不需要任何的注册操作,软件就是下一步下一步下一步即可。

我装好的Sigmastudio和A2B如下图:

SigmaStudio和A2B都是可以多版本共存的,不是说我装了4.6,想装4.7就必须把老的4.6删掉,没这个必要。

特别注意,这俩软件,不是说装上就可以用了,还需要把他们关联起来,很简单,找到你的A2B软件安装目录,把下面这俩DLL拷贝到SigmaStudio软件目录下:

A2B.dll和A2BStack.dll,一起拷贝到SigmaStudio软件下:

然后再把我提供的A2B_Algo.dll插件也拷贝进去,非常重要,软件就安装完成了。我提供的A2B_Algo.dll插件在哪里,看下面的截图:

总结一下就是:

  1. SigmaStudio和A2B都是下一步下一步下一步安装;
  2. 软件安装完之后,从A2B的安装目录下拷贝2个dll,再把我提供的第三个dll,这三个文件一起拷贝到SigmaStudio软件对应的目录下,就完成了开发软件安装工作。

硬件初始状态说明

  1. 简单说一下,D板上有一个SELFBOOT的开关,把他拨到ON,让整个系统从EEPROM自启动。

  2. D板的Slave接口接双绞线的一端,另一端接B板的Master接口(看板子丝印,或者就照着我的图片接)。

  3. 给D板子上电(5V2A的外接电源),D板上的Power灯(红色)亮,MP5灯(绿色)亮;

  4. B板就会通过双绞线进行供电(A2B的特性之一,Master可以给Slaver供电),B板上Power灯(红色)亮,RTX1灯(绿色)亮;

  5. 按下D板上的K2按键,MP5灯闪烁(我烧了一个对应的程序验证DSP的运行情况,能用按键控制灯表示DSP运行正常);

  6. 主程序我烧录了一个D到B,B到D的数据直传。按照下图接线:

D板上电,绿色的输入接口接的是我电脑的声卡输出口,作为模拟音源进入D板,双绞线链接A2B接口。B板的黑色耳机输出接口接我的耳机,作为模拟音源输出。

D板上的ADAU1761把来自电脑的模拟音源,做AD之后,音频数据和IIC控制数据一起通过A2B接口,2米的双绞线,传输到B板,B板上ADAU1761收到A2B过来的数字音频数据,以及IIC配置数据,做DA后,变成模拟音频,通过黑色的耳机接口输出到我的耳机,听到来自D板的音乐,完整整个链路通道。

  1. 从B板也可以发音频到D板,我们把硬件接线换一下:

D板上电,黑色的输出接口接的是我的耳机,双绞线链接A2B接口。B板的绿色输入接口接的是我的电脑声卡,提供模拟音源输入。

B板上的ADAU1761把来自电脑的模拟音源,做AD之后,音频数据通过A2B接口,2米的双绞线,传输到D板,D板上ADAU1761收到A2B过来的数字音频数据,做DA后,变成模拟音频,通过黑色的耳机接口输出到我的耳机,听到来自B板的音乐,完整整个链路通道。

总结

在A2B的主和从配置工程里,我通过对D板上的2个DSP,以及B板上的1个DSP进行配置,实现了A2B的功能。

功能1:D板通过A2B接口,2米的双绞线,给B板供电。

功能2:D板把数字音频通过A2B接口,双绞线,传输到B板,实现音频信号传输功能。

功能3:D板把I2C配置程序通过A2B接口,双绞线,传输到B板ADAU1761,配置B板子上的ADAU1761,实现1761的ADDA功能。

有关数字音频总线A2B开发详解一(A2B开发套件的初始状态说明)的更多相关文章

  1. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  2. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  3. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  4. ruby - 查找字符串中的内容类型(数字、日期、时间、字符串等) - 2

    我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s

  5. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  6. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  7. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  8. 区块链之加解密算法&数字证书 - 2

    目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非

  9. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  10. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

随机推荐