作者的话
很多新人经常会问同样的问题,我用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,必须要用仿真器。
ADI的Blackfin、SHARC和TigerSHARC为什么必须要用专用的JTAG仿真器
跟SigmaDSP同理,ADI其他类的DSP,同样需要专门的仿真器,比如我们常用的SHARC DSP,ADSP-21489、ADSP-21565、ADSP-21569等。
我们在这些DSP的开发软件CCES或者Visual DSP下做C、C++、汇编程序的开发,程序写完后,要在线下载到DSP的SRAM上RUN,这些DSP就专门有ADI从IC设计里就做好的专用JTAG接口,通过专属的JTAG私有协议,可以把程序通过PC的USB口,把数据通过专属协议进JTAG口后,送到DSP的SRAM上RUN,实现在线调试的功能。
下图为ADSP-21569开发板接仿真器,做调试的示意图。
仿真器有没有通用型的,能不能用ARM?TI?来替代一下?
很多从来没用过ADI的兄弟们,经常问这个问题,有没有其他的仿真器可以替代,我自己有Jlink?STLINK?TI的仿真器?能不能直接用?
答案是不行,很遗憾,从技术的角度,ADI的协议都是私有的,你只能用他私有协议支持下的专属仿真器来做开发。
从商务的角度,也可以理解是一定不行,你我都是竞争对手,争客户都争的你死我活的,我还跟你把协议统一,用同样的工具?那也真的是想太多了,任何人做生意都不会这么做。
我们看看每一类的ADI DSP应该用哪些仿真器
SigmaDSP用USBi
USBi的产品链接: https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-5192690539.11.2b653150hIwoUf&id=38242936768
Blackfin和SHARC用AD-HP530ICE
产品链接: https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-5192690539.11.7ebfbfa30wFEWr&id=38007242820
TigerSHARC用ADZS-HPUSB-ICE和AD-HP560ICE
产品链接: https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-5192690539.11.33553d06tEDslx&id=39791775486
ADSP-218X用ADZS-218X-EZICE
一一对应。
结论
在DSP端,哪个厂家都一样,你都 必须、一定、非得, 要用专门的仿真器去做开发。