MCU控制ADAU1467调音的开发详解二、控制原理

本文介绍了使用ADI的ADAU1467音频DSP配合MCU和外部AD/DA进行多通道音频处理,重点讲解了如何通过USB接口和MCU控制DSP的音频设置,包括BlockWrite和SafeloadWrite方法,以及为何选择Safeload机制以减少噪声。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者的话

ADAU1467是现阶段ADI支持最多通道的ADAU音频DSP,他配合外部的AD/DA,可以实现最多32路音频通道,我在这颗DSP上做过很多项目,就硬件来讲,有4进8出的,12进20出的,20进10出的,8进16出的,各种需求组合。

DSP的开发不是终点,我们做好DSP的音频算法框架后,需要和外界真实世界互联互动,怎么理解这句话?用物理的按钮、旋钮去调音量、静音、EQ参数?用手机APP去控制DSP调音?用自己做的电脑上位机去控制DSP调音,用手持设备去控制DSP调音,这些才是真实世界。怎么去实现,我抛砖引玉,用一块ADAU1467的评估板,和一个MCU控制卡来说一说原理。

硬件准备

ADAU1467EVB开发板

产品链接:https://item.taobao.com/item.htm?id=592748709835&spm=a1z10.5-c.w4002-5192690539.13.2a171c74h8TMLM

在这里插入图片描述

USBI仿真器

产品链接:https://item.taobao.com/item.htm?id=38242936768&spm=a1z10.5-c.w4002-5192690539.11.2a9f2dbdbWwG2u

MCU控制卡

产品链接:https://item.taobao.com/item.htm?id=593710434788&spm=a1z10.5-c.w4002-5192690539.17.3839629cZ0XcH8

MCU 控制 DSP 的原理

控制程序源码都提供了,大家直接看就可以。但是我觉得还是要简单说一下 MCU 控制 DSP的原理,让大家能更快的理解。

之前我也反复讲到,从大原理上讲,是 MCU 模拟 USBi 的指令来控制 SS 软件里的模块,但是具体怎么做的呢?

  1. 控制 SigmaDSP 需要用到 SIGMA_WRITE_REGISTER_BLOCK( )和
    SIGMA_SAFELOAD_WRITE_REGISTER( )两个接口函数。SIGMA_WRITE_REGISTER_BLOCK( ) 函数与启动 DSP 的接口函数是一样的,SIGMA_SAFELOAD_WRITE_REGISTER( )接口需要先写到 DSP 里面的 Buffer,然后再触发,参考示意图:

在这里插入图片描述

  1. 编译好 SigmaStudio 工程文件后,用鼠标在 SigmaStudio 界面调节一些参数,然后在下面的Capture window 中可以看到会有如下图的信息,每个鼠标动作都会在 Capture window 出现相应的一行/几行动作。Mode 列中显示的即是控制方式,有 Block Write 和 Safeload Write。

在这里插入图片描述

  1. Block Write 使用 SIGMA_WRITE_REGISTER_BLOCK( ) 函数

这个函数就是普通的 IIC 写操作函数,只要把参数跟底层的参数对应上就可以了。

在这里插入图片描述

  1. Safeload Write 控制方式用 SIGMA_SAFELOAD_WRITE_REGISTER( )函数实现。安全加载方式步骤参考 ADI 相关文档,安全加载地址可以通过数据手册中查找

在这里插入图片描述

  1. 写好 SIGMA_WRITE_REGISTER_BLOCK( )和 SIGMA_SAFELOAD_WRITE_REGISTER( )两个函数之后就要知道单片机程序程序如何关联 SS 的控件以及参数控制,首先单片机程序中要建立 SS控件列表,根据 SS 图中的控件数量来建立这个列表,控件列表在 MCU 工程中的 audio.c 中,
    如下图代表建立了四个调音量模块、四个静音开关、两个 SWITCH。

在这里插入图片描述

其中 MOD_SINGLE1_GAIN1940ALGNS1_ADDR….这些宏定义在 adau1701_IC_1_PARAM.h 文件中

关联好之后就可以开始写 STM32 对 DSP 的具体控制了。

  1. 为什么一定要用 Safeload?因为 Safeload 机制可以避免更新 DSP 内核参数时产生噪声。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ADI_OP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值