DSP与STM32的对比浅见(二)

我的DSP项目在一步步深入,经过一轮轮的计算和选型,最终控制器做成了STM32F1与F28335组合体,ARM和DSP分管不同的功能,芯片间进行通信。这篇文章给大家对比一下在编程环节上,STM32系列和DSP系列的区别。

一、IDE

STM32系列属于ARM架构,最常用的IDE应该是MDK了(除MDK外,也有IAR,ST也推出针对STM32的IDE)。MDK的优点是功能的完整和齐全,从包管理器(支持多间厂商的ARM MCU的库文件下载,各种常用的中间件,以及RTOS等),到仿真器(JLINK、ULINK等等),以及编辑器、调试器一应俱全。

但MDK的优点也止乎于止了,让人吐槽的地方多不胜数:编辑器的功能停留于20年前、调试器的功能有限、ARMCC的死板... ...我对MDK的依赖也仅止乎于它对仿真器的支持了。网上有很多例子用VSCode、Edit Plus之类的高级编辑器加插件,再搭配GCC来写单片机程序,但这些做法在我看来(我也尝试过),就是缺少了对仿真器的支持,调试程序的时候非常的不方便,所以我放弃了。

DSP用的IDE就是CCS了,CCS是一个基于Eclipse的IDE。一旦基于Eclipse,这IDE就一定逃不开启动缓慢的缺点。相比MDK,CCS的项目管理、代码编辑器功能上略强,但很过分的是CCS的某些基本操作如注释代码你只能用快捷键,在编辑菜单中你找不到注释代码的按钮,也找不到任何快捷键的说明,会不会用全凭你对Eclipse的熟悉程度或者依靠搜索引擎... ...

CCS没有MDK V5的包管理器,在这点上MDK赢CCS九条街。

但在调试器功能上,CCS就真的比MDK强很多了。首先是对变量的监测数量和反应上都优于MDK,另外程序断点的数量上也明显多于MDK(这两点可能与仿真器有很大关系,毕竟我用的STM32仿真器和DSP仿真器不是同一档次的东西),另外CCS可以很轻松的对某个变量的数值变化进行实时跟踪,也能直观的完成实时图表的展示,非常方便。

二、库文件

库文件的作用基本就是把单片机的寄存器地址用宏来表示,再把一些时钟、外设的初始化、配置、回调用C函数组织起来,让开发者能相对简单利用单片机的资源。我印象中STM32的库文件是单片机界第一次掀起讨论热潮的底层函数,以往的51、AVR一般只有头文件,而不会做成C函数库的形式。使用库文件后,开发效率当然比直接操作寄存器高,但也带来了程序效率下降、代码空间增大的问题,但STM32的主频、FLASH、RAM相比51、AVR提高得太多,以至于基于库文件的开发也成为现在的主流。

我见过也用过几个品牌的Cortex M单片机,就库文件而言,ST是最用心搞的。以前的标准库已经可以让程序基本用不到汇编的语句了,现在主推的HAL库野心更大,虽然带来了程序效率下降、代码空间增大的问题,但随着新的性能更强的单片机系列推出,我相信HAL库会成为主流。

DSP C2000的库文件相比ST的库文件差距就比较明显了,与NXP的差不多吧,程序中要用到很多宏,宏也是直接使用汇编语句,抽象程度不高。另外C2000的头文件中对寄存器大量使用结构体和联合体进行表达,让开发者必须老老实实的看完手册才能编程,如果能够再做一层中间函数就非常优秀了。相对而言,ST的库文件即使看不透寄存器的操作,但单凭中间函数的定义与说明都可以让开发者容易地上手。

三、仿真器

仿真器这东西对于单片机的开发而言,我认为是不可缺少的。单凭串口输出调试字串,一是麻烦,二来对于复杂的程序不容易定位问题。

Cortex M的仿真器现在是很便宜了,我以前用过Jlink,现在更多用所谓的Jlink OB,也就是SW调试方式的仿真器,也就二三十元的价格,坏了连维修的想法都没有。

DSP C2000的仿真器价格就感人了,国产都要上百,不过配合CCS后,在功能、性能上也比MDK+JLINK要强不少。

本设计是基于STM32F334 数字电源开发板设计,高效同步buck,boost,buck-boost双向DC-DC转换器,支持恒压恒流供电。STM32F334xx 微控制器具有高分辨率定时器 ( HRTIM)外设,可产生多达 10 个信号,能够处理用于控制、同步或保护的各种不同输入信号。其模块化架构允许对大部分转换拓扑和多并联转换器进行处理,并可在运行中重新配置它们。 STM32F334 的HRTIM功能可以产生互补等各PWM波形,该定时器最大计数频率高达4.608G,时间控制精度高达217ps。笔者参考STM32F334设计手册,完成了高精度PID的数字电源。buck,boost,buck-boost均为同步整流技术,输入输出LC滤波,使得重载/轻载纹波均低于100mV,PID响应环路小于10us。STM32F334 数字电源开发板电路功能如下: STC15 PID 数字电源 BUCK/BOOST同步整流开发板视频链接: https://v.youku.com/v_show/id_XMzMzOTA4NzM5Ng==.htm... STM32 PID 数字电源 BUCK/BOOST同步整流开发板视频链接: https://v.youku.com/v_show/id_XMzMzOTM2MjQwOA==.htm... STM32 PID 数字电源 BUCK-BOOST升降压同步整流开发板视频链接: https://v.youku.com/v_show/id_XMzMzOTA4NzUyMA==.htm... 淘宝链接: https://item.taobao.com/item.htm?spm=a1z38n.106770... https://item.taobao.com/item.htm?spm=a1z38n.106770... https://item.taobao.com/item.htm?spm=2013.1.201410... BUCK开发版基本电气 输入端口为A端口 指标输入电压:10~55V,输出电压:5~50V 电流:在良好的散热条件下,最大电流不超过6A 功率:在良好的散热条件下,最大功率不超过200w 高效率设计,支持的最大效率最大96% 输出纹波:LC滤波,低纹波 散热情况:100W无需要散热片;100W以上,需要良好的散热条件 调压调流方式:UART控制,写入相应的格式进行调压调流。或通过按键 进行调整。 显示窗口:IIC OLED12864 电脑串口软件。 Boost开发版基本电气 指标输入电压:10~55V,输出电压:12-60V 电流:在良好的散热条件下,最大电流不超过6A 功率:在良好的散热条件下,最大功率不超过200w 高效率设计,支持的最大效率超过97% 输出纹波:LC滤波,低纹波 支持串口调压调流,PID算法,良好的响应时间。过压过流打嗝保护。 散热情况:100W无需要散热片;100W以上,需要良好的散热条件。 调压调流方式:UART控制,写入相应的格式进行调压调流。或通过按键 进行调整。 显示窗口:IIC OLED12864 电脑串口软件。 Buck-Boost升降压开发版基本电气 指标输入电压:10~55V,输出电压:5~50V,无缝切换,但是尽量避免切换点 电流:在良好的散热条件下,最大电流不超过6A 功率:在良好的散热条件下,最大功率不超过150w 高效率设计,支持的最大效率超过 BUCK 最大92%,Boost 最大93%,如果加入防反接设计,效率会偏低2-3%个点。 输出纹波:LC滤波,低纹波 支持串口调压调流,PID算法,响应时间较差,使用于蓄电池充电。过压过流打嗝保护。 散热情况:100W无需要散热片;100W以上,需要良好的散热条件。 调压调流方式: UART控制,写入相应的格式进行调压调流。或通过按键进行调整。 显示窗口:IIC OLED12864 电脑串口软件。 STM32开发板综述: STC15 开发板综述: 在 STM32 微控制器中, STM32F334xx 产品的目标市场是需要高度精确计时数字信号、尤其是数字功率转换应用的细分市场。包括:数字电源;照明;不间断电源;太阳能逆变器;无线充电器等。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值