当前位置: 首页 > news >正文

ADAU系列DSP用MCU来做控制,怎么去理解这个逻辑

我其实在前面很多篇文章里讲过了,如何用MCU来控制ADI的音频DSP,ADAU系列都是一个逻辑,那就是要先做DSP的程序,怎么去理解呢?

DSP是通过USBi这个仿真器来做调试的,我们往下挖,他的底层逻辑是,我们在PC的SigmaStudio软件里做好了DSP的程序,通过USB口送到USBi,USBi以ADI私有的协议,来做USB转IIC的数据转换,再通过IIC接口进到DSP的SRAM里去,让DSP运行我们SigmaStdio里写好的程序。

那控制是怎么个事呢?我们通过USBi在SigmaStudio里拖动控件,或者点击选中某个器件,都会产生数据交互,比如下图:

在这里插入图片描述

程序非常简单,0/1输入,经过一个通道选择算法模块,分别混音,送给0和1输出,输出0前头有一个静音模块,输出1前头有一个音量控制模块。

当我们用USBi调试的时候,就比如点静音,或者取消静音,都会有数据交互,用专门的读写函数去读写。MCU可以通过DSP的导出,获得这些交互的数据,再配上专门的读写函数,用MCU去模拟USBi的读写行为,让DSP认为仍然是USBi在弄它,符合ADAU的调试逻辑,那么MCU就可以控制DSP调音啦。

在这里插入图片描述

音量模块也是,当你用USBi调,拖动他音量加减,产生数据交互,MCU拿到这些数据,通过特定的读写函数,模拟USBi拖动的行为,就可以控制DSP调这个输出通道的音量了。

在这里插入图片描述

这里还有一个通道选择模块,一样的,通过选择上和下通道,来决定0/1输入的音频流,是混音送给0接口输出,还是混音送给1接口输出。

在这里插入图片描述

以上就是MCU控制ADAU系列DSP调音的逻辑。


文章转载自:
http://antidepressant.hyyxsc.cn
http://betweenbrain.hyyxsc.cn
http://bannister.hyyxsc.cn
http://assify.hyyxsc.cn
http://borated.hyyxsc.cn
http://antifreezing.hyyxsc.cn
http://carolinian.hyyxsc.cn
http://assur.hyyxsc.cn
http://baedeker.hyyxsc.cn
http://ascariasis.hyyxsc.cn
http://bypath.hyyxsc.cn
http://angina.hyyxsc.cn
http://bullbaiting.hyyxsc.cn
http://aspirin.hyyxsc.cn
http://bang.hyyxsc.cn
http://affinity.hyyxsc.cn
http://bolwtorch.hyyxsc.cn
http://aerotaxis.hyyxsc.cn
http://aeriferous.hyyxsc.cn
http://agrestial.hyyxsc.cn
http://archipelagic.hyyxsc.cn
http://biological.hyyxsc.cn
http://cerebrosclerosis.hyyxsc.cn
http://amebiasis.hyyxsc.cn
http://agrimotor.hyyxsc.cn
http://cesium.hyyxsc.cn
http://appreciate.hyyxsc.cn
http://atingle.hyyxsc.cn
http://academgorodok.hyyxsc.cn
http://adoptee.hyyxsc.cn
http://www.dtcms.com/a/281766.html

相关文章:

  • Vue3 + MapLibre 地图管理工具 useMap 使用指南
  • 牛客:HJ22 汽水瓶[华为机考][数字处理]
  • 基于Sentinel-1雷达数据的洪水动态监测(附完整GEE代码)
  • 深入理解红锁
  • Vue3入门-指令补充
  • 学习C++、QT---26(QT中实现记事本项目实现文件路径的提示、C++类模板、记事本的行高亮的操作的讲解)
  • 面向对象与面向过程、函数式编程
  • C++回顾 Day8
  • 【时时三省】(C语言基础)通过指针引用多维数组
  • 【09】MFC入门到精通——MFC 属性页对话框的 CPropertyPage类 和 CPropertySheet 类
  • burpsuite使用中遇到的一些问题(bp启动后浏览器无法连接)/如何导入证书
  • css实现烧香效果
  • 20.如何在 Python 字典中找到最小值或最大值的键?
  • 【卡尔曼滤波第六期】集合变换卡尔曼滤波 ETKF
  • 【Linux庖丁解牛】— 保存信号!
  • HTML网页结构(基础)
  • 【linux V0.11】init/main.c
  • 函数指针与指针函数练习讲解
  • 9、线程理论1
  • HostVDS 云服务器测评:平价入门、流媒体解锁全美、表现稳定
  • 暑假Python基础整理 --异常处理及程序调试
  • Redis 中的持久化机制:RDB 与 AOF
  • Java之Stream其二
  • 第二章 OB 存储引擎高级技术
  • 数学金融与金融工程:学科差异与选择指南
  • 【AI News | 20250714】每日AI进展
  • 为 Git branch 命令添加描述功能
  • 将 Vue 3 + Vite + TS 项目打包为 .exe 文件
  • 711SJBH构建制造业信息化人才培训体系的对策-开题报告
  • 21-C#的委托简单使用-1