首页 >>  正文

stm32f407和tms320f28335的区别是什么?

来源:www.zuowenzhai.com    作者:编辑   日期:2024-05-16
STM32F4 TMS320C28335那个性能更好些,用过的说说!!dsp 与mcu对比!!!

28335浮点型 在数据处理上更有优势。 M4主要在接口配置 通信上用的多些。

1,dsp要贵些,DSP是为运算而生的芯片。
2,stm32 芯片可以前后呼应,作为学习,用STM32来入门最好。
stm32 :
1,STM32是基于ARM® Cortex® M 处理器内核的 32位闪存微控制器,为MCU用户开辟了一个全新的自由开发空间,并提供了各种易于上手的软硬件辅助工具。
2,STM32 MCU融高性能、实时性、数字信号处理、低功耗、低电压于一身,同时保持高集成度和开发简易的特点。
3,业内最强大的产品阵容,基于工业标准的处理器,大量的软硬件开发工具,让STM32单片机成为各类中小项目和完整平台解决方案的理想选择。按内核架构分为不同产品系列。

dsp:
1,数字信号处理,英文:Digital Signal Processing,缩写为DSP,是面向电子信息学科的专业基础课。
2,它的基本概念、基本分析方法已经渗透到了信息与通信工程,电路与系统,集成电路工程,生物医学工程,物理电子学,导航、制导与控制,电磁场与微波技术,水声工程,电气工程,动力工程,航空工程,环境工程等领域。
3,数字信号处理问题无处不在,信息科学已渗透到所有现代自然科学和社会科学领域。
4,熟练地掌握所讲述的基本概念、基本理论和基本分析方法,并利用这些经典理论分析、解释和计算信号、系统及其相互之间约束关系的问题。

论坛上看到的比较。
这几天刚拿到STM32F4的评估板,STM32F4这次的卖点就是FPU和DSP指令集,关注了挺长时间,这次就想测试一下STM32F4的浮点性能,如果满足就升级自己飞控的架构。本来用STM32F103+28335双核架构,F28335当浮点处理器用,调试起来比较麻烦,所以一直想换了。

测试代码就是用的我飞控的算法,全部使用浮点运算,包含姿态和位置两个7阶和9阶的卡尔曼滤波器,包含大量的矩阵运算以及部分导航算法和PID控制器等,还有部分IF和SWITCH包含跳转的判定语句,相比纯算法算是一个比较综合的运算。

测试环境:
F28335:CCS V3.3,使用TI优化的数学库,不开优化,程序在RAM里执行。
STM32F4:KEIL V4.7,使用ARM优化的数学库,不开优化。

测试方法:
F28335:在飞控算法入口设置断点,清零CCS的CPU计数器(profile->clock),然后STEP OVER,记录下CPU的计数
STM32F4:在飞控算法入口设置断点,记录下Register窗口内算states计数器,然后STEP OVER,记录下新的计数器数值,与之前的数值相减得到CPU计数

测试结果:
F28335:253359个CPU周期,除以150MHZ,大约是1.69ms
STM32F4:一共285964个周期,除以168MHZ,大约是1.7ms,比F28335略慢

结论就是,对于包含相对较多跳转的综合浮点算法而言,STM32F4似乎并不慢多少。

抛开架构因素,从纯浮点运算方面来看的话。STM32F4的FPU加减乘指令VADD.F32、VSUB.F32、VMUL.F32都是单周期指令,而除法VDIV.F32耗费14个周期。
例如:a = a / b;产生的汇编为:
0x08000220 ED900A00 VLDR s0,[r0,#0x00]

0x08000224 4804 LDR r0,[pc,#16] ; @0x08000238

0x08000226 EDD00A00 VLDR s1,[r0,#0x00]

0x0800022A EE801A20 VDIV.F32 s2,s0,s1

0x0800022E 4803 LDR r0,[pc,#12] ; @0x0800023C

0x08000230 ED801A00 VSTR s2,[r0,#0x00]
复制代码 F28335: F28335的FPU有加减乘法指令,都是双周期的,由于没有硬件除法指令,F28335这里是用软件模拟的浮点除法,汇编可以看到 LCR $div_f32.asm字样,需要19个时钟周期。
例如:a = a * b,产生的汇编为:
0087B2 E203 MOV32 *-SP[4], R0H

0087B4 E2AF MOV32 R1H, *-SP[6], UNCF

0087B6 E700 MPYF32 R0H, R1H, R0H

0087B8 7700 NOP //需要让流水线等待FPU运算完毕,所以需要NOP

0087B9 E203 MOV32 *-SP[4], R0H

复制代码 除法:
0087BD E203 MOV32 *-SP[4], R0H

0087BF E2AF MOV32 R1H, *-SP[6], UNCF

0087C1 7640 LCR $div_f32.asm:52:71$

0087C3 E203 MOV32 *-SP[4], R0H
复制代码 结论:
可见单从浮点处理器来说,F28335是不如F4的FPU的。但是由于F28335是哈佛架构,有较长的流水线,可以在一个时钟周期里完成读取,运算和存储,所以程序连续运行的话,就比ARM快上许多许多,比如执行一次a = a + b只需要5个时钟周期,但是缺点就是一旦要跳转,就必须清空流水线,如果是
for(i = 0;i < 1000; i ++)

a = a + b;
复制代码 这样的运算,速度反而要比ARM慢(测试下来单次是17周期,ARM是14).所以说这就是ARM和DSP不同的地方了。

看看这次测试比较,感觉环境还是有一定的问题:
1、F28335是在RAM中运行,并且两者都是在仿真器环境中进行运算,还是离线在Flash中跑比较靠谱。
2、两者编译平台一个是CCS,一个是KEIL,对通用语句的优化,有待商榷。
3、ARM和TI的数学库中,各自支持的运算种类不一样。


15923415514tms320f28034与stm32f407在伺服电机驱动板的区别?
梁璐显答:320伺服电动机的驱动板,它因为功率是比较大的,所以整体来说它的驱动板上会有更多的电气元件,所以它的精度会比较高一些,但是32的伺服电动机相比较尤为功率比较低,但是精度非常的高。

15923415514stm32f407和tms320f28335的对比
梁璐显答:STM32F4:一共285964个周期,除以168MHZ,大约是1.7ms,比F28335略慢 结论就是,对于包含相对较多跳转的综合浮点算法而言,STM32F4似乎并不慢多少。抛开架构因素,从纯浮点运算方面来看的话。STM32F4的FPU加减乘指令VADD.F32、VSUB.F32、VMUL.F32都是单周期指令,而除法VDIV.F32耗费14个周期...

15923415514TMS320F2407A的详细资料
梁璐显答:F2407A的工作频率为40MHz,内部寄存器长度为16位字长。PWM信号通过定时器计数的方式在周期中断中获得,因此,不可避免存在一个计数步长的量化误差。这个误差会产生一个纹波叠加在输出直流电压上,因此,应尽量减少。通常当PWM的频率为f时,DSP工作频率为fc时,这个量化误差电压值为 =3.3×(V)(7)例...

15923415514tms320f28335片内存储器一般包括哪些种类
梁璐显答:tms320f28335片内存储器一般包括SARAM,FLASH和OTP。1、TMS320F28335片上SARAM:(1)在TMS320F28335芯片中,有34k×16位的单周期单址ram,分为M0、M1和l0-l710个块。(2)Mo和M1块中的saram大小为1K×16位。重置后,堆栈指针指向M1块的起始地址,堆栈指针向上增长。M0和M1段都可以映射到程序和数...

15923415514TMS320F2812处理器的系统频率是多少MHZ?
梁璐显答:据查询,德州仪器TMS320F2812的频率为150MHz。德州仪器TMS320F2812是一颗具有150MHz频率、256KB闪存、EMIF的C2000 32位MCU。

15923415514TMS320F2812原理与开发的内容简介
梁璐显答:本书介绍了tms320f2812芯片的基本特点、硬件结构、内部功能模块的基本原理等内容,并在结合应用实例的基础上详细阐述了各功能模块的应用。同时专门针对电机控制领域的应用,详细介绍了基于tms320f2812数字信号处理器的永磁同步电机控制系统的原理与实现。书中提供了大量硬件原理图和应用程序代码,以方便读者参考...

15923415514TMS320F28335的介绍
梁璐显答:TMS320F28335型数字信号处理器TI公司的一款TMS320C28X系列浮点DSP控制器。与以往的定点DSP相比,该 器件的精度高,成本低, 功耗小,性能高,外设集成度高,数据以及程序存储量大,A/D转换更精确快速等。

15923415514tms320f28379d 怎么烧录
梁璐显答:是STM32F0F28379D吧,烧录如下 要准备一个亿普电子的烧录器及烧录座 把芯片的VDD,VSS,CLK,DATA,RESET这些PIN用烧录座转出来,连接到烧录器对应的脚上 把亿普电子代理烧录器加载程序 按开始键进行烧录 烧录好的芯片上板测试 希望能采纳,谢谢你 ...

15923415514TMS320F28035调试时DELAY_US(ADC_usDELAY)执行后出错,怎么解决?_百度知...
梁璐显答:你是将程序跑在RAM中还是flash中 如果是跑在FLASH里,是否有调用memcpy?还有 看看你的CMD 这一句 .stack : > FLASHE PAGE = 1是flash还是RAM 堆栈要放到RAM中 .stack : > RAMM0 PAGE = 1如果还不行 在软件设置中 将堆栈设大点

15923415514为什么TMS320F28335烧写FLASH后芯片被锁
梁璐显答:TI 和Infineon的芯片一直是烧录行业内问题最多的两家 (技术难度上还有赛灵思和Altera) . 但也是有规律可循的, 他们的主控芯片上几乎都内置有JTAG端口,数据分布上常设置有加密位,微调位,数据测试段和FLASH区等。这颗芯片TMS320F28335被锁,主要可能是加密位锁住, 相应加密为地址如上图标示。


(编辑:陆呢寿)
联系方式:
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图
@ 作文摘要网