赞
踩
作者的话
很多新人经常会问同样的问题,我用ADI的SigmaDSP,我用SHARC,我用Blackfin,为什么非要用仿真器呢?我有MCU就不能直接去控制他吗?那我就来细说一下。
SigmaDSP为什么必须要用USBi仿真器
首先我们开发DSP,不管是ADI的,还是TI的,你要用专门的开发软件,在PC上做程序的开发,这个能理解哈,ADI的SigmaDSP,我们只能用他提供的一个叫SigmaStudio的软件。
于是我们就在这个软件上开始写程序框架,让DSP实现模拟进模拟出?数字进模拟出?模拟进数字出?音量的调节?EQ?延时?反馈?相位调整?FIR滤波?高中低音分频?各种音效。
当你把这些音效框架都做好之后怎么办?我们不能用意念把在PC上写好的程序给到DSP,于是ADI给的办法就是,使用PC的USB口,把数据往SigmaDSP传。但好巧不巧的,DSP上是没有USB口的,于是ADI悄悄咪咪的,自己写了个私有的,不给大家看的协议,做了个USB转IIC/SPI,你DSP没有USB口,但你有IIC,你有SPI呀,我把PC上写好的程序,通过USB转IIC或者USB转SPI给到你DSP,不就可以啦?于是就有了USBi这个专业的调试工具,又叫做USBi仿真器。
兄弟们在PC的DSP开发软件上写好的程序,会通过PC的USB口,经过这个USBi仿真器,私有协议进行接口、数据转换,通过DSP的SPI或者IIC口,写入到DSP的SRAM里,实时的运行,我们管这个叫DSP的实时调试。
所以你看,你如果没有USBi仿真器,那么这颗DSP对你来讲就是一块石头,你在PC上写的天花乱坠,都塞不进DSP里去运行,所以这就是为什么调试DSP,必须要用仿真器。
如果我有MCU,在这里能做什么
等你用USBi把DSP的程序框架都调好之后,你可以直接用USBi把这个程序框架烧写到eeprom里,让DSP上电就读eeprom里的程序,来直接运行,这里就没有MCU什么事情了。
但是很多产品,一般都需要离线的控制DSP,比如最简单的外部调个音量大小,你总不可能在售的产品还专门配个USBi,带台电脑去调音量吧,于是我们就会用到MCU。
逻辑非常简单,USBi是怎么弄DSP的,MCU模拟他的行为就好了!比如调音量,USBi会用特定的函数进行数据的读写,那么我们只需要让MCU也对DSP做同样的操作,不就可以实现离线控制啦?
具体的操作方法就是,USBi先把DSP的程序框架调好,然后导出程序数据给MCU,MCU获取了这些配置数据后,再通过特定的函数直接对DSP进行读写操作,来实现离线控制。
仿真器有没有通用型的,能不能用ARM?TI?来替代一下?
不行,很遗憾,从技术的角度,ADI的协议都是私有的,你只能用他私有协议支持下的专属仿真器来做开发。
SigmaDSP用USBi;
Blackfin和SHARC用AD-HP530ICE;
TigerSHARC用ADZS-HPUSB-ICE和AD-HP560ICE;
ADSP-218X用ADZS-218X-EZICE。
一一对应。
从商务的角度,也同样不行,都是竞争对手,争客户都争的你死我活的,我还跟你把协议统一,用同样的工具?那也真的是想太多了!
结论
不管你要不要用MCU,在DSP端,哪个厂家都一样,你都必须一定非得要用专门的仿真器去做开发。不用MCU,仿真器开发结束后程序交给EEPROM;用MCU,仿真器开发技术后程序导出给MCU,怎么样也绕不过去。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。