最近项目上要求使用DSP作为主控芯片,作为一个STM32的铁粉,在项目预研阶段不禁发出灵魂拷问,为什么一定要上DSP?STM32我做了这么多个项目和产品,能不能代替DSP?一来不需要重新学习,二来降低硬件成本?带着以上问题,我把网络资料扫了一遍,在这里抛砖引玉。
1、我以TI DSP C2000作为研究对象,查了一下IC外设和外部引脚,第一反应:这和STM32没有什么区别!GPIO、IIC、SPI、UART、CAN这都是MCU的常规外设,没什么不同。以28335为例,这些外设的数量甚至比不上STM32F1VE系列。
2、芯片主频,28335是150MHZ,STM32F1是72MHZ,STM32F407是168MHZ,STM32F429是180MHZ,STM32F767是216MHZ,STM32H743是400MHZ,同等价位下DSP的主频完全没有优势。
3、技术支持,TI大鳄对小鱼小虾是什么态度网上一查就知,文档也基本是英文,而且开发环境也只能是TI自己的CCS,在这方面要上手DSP也比STM32难多了。更何况这两年还有STM32 CUBEMX这货。。。
就以上问题,真难以让我屈服。。。
然而事实上,做电力、电气功率控制的朋友都说他们在用DSP,一方面是公司技术的延续性(一直用着DSP,不敢换),一方面是TI的器件做功实在扎实。但回头一想,我用STM32也做的是工业品,什么强电干扰、高温场合也一样用得好好的,甚至有个家伙做国产变频器也敢用STM32来折腾,DSP也不是有什么非用不可的理由。
再后来,有个朋友搞DSP和FPGA的,说浮点运算STM32还差得远,要做电机控制还是DSP好。
于是我又是找了一通资料,结果发现:以前ARM的确连硬件乘法器都没有,但现在已经改进了,现在单纯论浮点运算,网络上有不少人做过测试,其实两者相差不大。
再查电机控制,STM32F1的PWM部分功能确实差,但F3、F4都带了DSP模块,大疆还用F4来做飞控,想来性能也不差。而且MicroChip的PIC单片机做电机控制也很强啊,那货还是16位的。
---------------------------------------------凌乱了--------------------------------------------------------
再后来,还是上TI官网老老实实看一下资料吧。
事情的转折在于我下载了TI的controlSUITE,一个DSP C2000的文档、教程、示例大合集:
里面有什么?快速傅里叶变换、PID控制器、电机控制库,这些在STM32要自己写的东西居然在DSP里面直接就有C库!别的不说,就是这些库都值得DSP做出高溢价了。
粗略翻了这些文档,我才将william hill官网
上的两句话回味过来:
1、“DSP是为运算而生的芯片,STM32是为控制而生的芯片”
2、“DSP上可以做些复杂的算法”
有这些官方的C库,以上两句话就完全变味了:我最初看到这两句话时的想法是算法都要自己写,只要代码写得好,芯片跑得起就行;看了TI的文档,常见的高难度算法都给你做成库了(而且TI干了几十年,这些库的水平肯定经过千锤百炼),开发难度下降了不止一阶。
对DSP了解到这里,新项目为什么要用DSP已经没有疑问了,因为FFT、PID、PWM都是项目里必然要用到的,有了TI的C库,起码不用头疼如何去实现这些中间件!
后面我买了DSP的开发板,系统学习DSP了,才发现DSP在控制的专业程度上是STM32不能比的,下一篇再介绍了。
最近项目上要求使用DSP作为主控芯片,作为一个STM32的铁粉,在项目预研阶段不禁发出灵魂拷问,为什么一定要上DSP?STM32我做了这么多个项目和产品,能不能代替DSP?一来不需要重新学习,二来降低硬件成本?带着以上问题,我把网络资料扫了一遍,在这里抛砖引玉。
1、我以TI DSP C2000作为研究对象,查了一下IC外设和外部引脚,第一反应:这和STM32没有什么区别!GPIO、IIC、SPI、UART、CAN这都是MCU的常规外设,没什么不同。以28335为例,这些外设的数量甚至比不上STM32F1VE系列。
2、芯片主频,28335是150MHZ,STM32F1是72MHZ,STM32F407是168MHZ,STM32F429是180MHZ,STM32F767是216MHZ,STM32H743是400MHZ,同等价位下DSP的主频完全没有优势。
3、技术支持,TI大鳄对小鱼小虾是什么态度网上一查就知,文档也基本是英文,而且开发环境也只能是TI自己的CCS,在这方面要上手DSP也比STM32难多了。更何况这两年还有STM32 CUBEMX这货。。。
就以上问题,真难以让我屈服。。。
然而事实上,做电力、电气功率控制的朋友都说他们在用DSP,一方面是公司技术的延续性(一直用着DSP,不敢换),一方面是TI的器件做功实在扎实。但回头一想,我用STM32也做的是工业品,什么强电干扰、高温场合也一样用得好好的,甚至有个家伙做国产变频器也敢用STM32来折腾,DSP也不是有什么非用不可的理由。
再后来,有个朋友搞DSP和FPGA的,说浮点运算STM32还差得远,要做电机控制还是DSP好。
于是我又是找了一通资料,结果发现:以前ARM的确连硬件乘法器都没有,但现在已经改进了,现在单纯论浮点运算,网络上有不少人做过测试,其实两者相差不大。
再查电机控制,STM32F1的PWM部分功能确实差,但F3、F4都带了DSP模块,大疆还用F4来做飞控,想来性能也不差。而且MicroChip的PIC单片机做电机控制也很强啊,那货还是16位的。
---------------------------------------------凌乱了--------------------------------------------------------
再后来,还是上TI官网老老实实看一下资料吧。
事情的转折在于我下载了TI的controlSUITE,一个DSP C2000的文档、教程、示例大合集:
里面有什么?快速傅里叶变换、PID控制器、电机控制库,这些在STM32要自己写的东西居然在DSP里面直接就有C库!别的不说,就是这些库都值得DSP做出高溢价了。
粗略翻了这些文档,我才将william hill官网
上的两句话回味过来:
1、“DSP是为运算而生的芯片,STM32是为控制而生的芯片”
2、“DSP上可以做些复杂的算法”
有这些官方的C库,以上两句话就完全变味了:我最初看到这两句话时的想法是算法都要自己写,只要代码写得好,芯片跑得起就行;看了TI的文档,常见的高难度算法都给你做成库了(而且TI干了几十年,这些库的水平肯定经过千锤百炼),开发难度下降了不止一阶。
对DSP了解到这里,新项目为什么要用DSP已经没有疑问了,因为FFT、PID、PWM都是项目里必然要用到的,有了TI的C库,起码不用头疼如何去实现这些中间件!
后面我买了DSP的开发板,系统学习DSP了,才发现DSP在控制的专业程度上是STM32不能比的,下一篇再介绍了。
举报