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调音的逻辑。