admin 发表于 2020-8-20 10:23:04

TMS320F28335PGFA工作原理

<p>很多工厂采购朋友在工作的时候会遇到一些问题,其中就包括TMS320F28335PGFA工作原理的问题,那么搜索网络小编来给您来解答一下您现在困惑的问题吧。</p><p>TMS320F28335PGFA工作原理</p><center><img alt="DSPTMS320F28335如何去学,怎么去用?主要是它的..." style="max-width: 100%;" src="data/attachment/forum/20200820/1597890185-HTB1d9bId75E3KVjSZFC762uzXXaQ.png" /></center><h2>DSPTMS320F28335如何去学,怎么去用?主要是它的...</h2><作者:刘陵顺著><br>页数:450<br>出版社:北京:北京航空航天大学出版社<br>出版日期:2011.12<br>有PDF<br>版,可私信,必回<br>tms320f28335有多种起动方式只使用"从内部flash启动"和"从内部ram启动"两<br>28335片FLASH 相关烧写教程烧写flash bootloader选择flash启<br>TMS320F28335 I/O口可承受多大电压,5V直接送到DSP的I/O口上有没有问题?<br>28335不能用5V输入,这个教训我已经领教了,你最好不要试了,这回影响你的项目精度。<br>IO口输入,你可以外接一个3.3V电压的CPLD类或者74LVTH245芯片。输出处理相对简单。<br><center><img alt="求TMS320F28335 DSP核心板设计原理图" style="max-width: 100%;" src="data/attachment/forum/20200820/1597890185-TB2FvK2bJXXWeJjSZFvXXa6lpXa_%21%21665113100.jpg" /></center><h2>求TMS320F28335 DSP核心板设计原理图</h2>1、 尺寸9095mm ,双层PCB设计。<br>2 、电阻、电容、电感以及扩展的IC芯片均采用贴 片封装。<br>3、输入电 源+5V,通过电源芯片变换成TMS320F28335所需1.9V和3.3V<br>4、用DSP仿真器实时仿真TMS320F28335 DSP核心板,能正常仿真进入CCS开发环境。<br>stm32f407和tms320f28335的区别是什么?<br>论坛上看到的比较。<br>这几 天刚 拿到STM32F4的评估板,STM32F4这次的卖点就是FPU和DSP指令集,关注了 挺长时间,这次就想测试一 下STM32F4的浮点性能,如果满足就升级自己飞控的架构。本来用STM32F103+28335双核架构,F28335当浮点处理器用,调试起来比较麻烦,所以一直想换了。<br>测试代码就是用的我飞控的算法,全部使用浮点运算,包含姿态和位置两个7阶和9阶的卡尔曼滤波器,包含大量的矩阵运算以及部分导航算法和PID控制器等,还有部分IF和SWITCH包含跳转的判定语句,相比纯算法算是一个比较综合的运算。<br>测试环境:<br>F28335:CCS V3.3,使用TI优化的数学库,不开优化,程序在RAM里执行。<br>STM32F4:KEIL V4.7,使用ARM优化的数学库,不开优化。<br>测试方法:<br>F28335:在飞控算法入口设置断点,清零CCS的CPU计数器(profile->clock),然后STEP OVER,记录下CPU的计数<br>STM32F4:在飞控算法入口设置断点,记录下Register窗口内算states计数器,然后STEP OVER,记录下新的计数器数值,与之前的数值相减得到CPU计数<br>测试结果:<br>F28335:个CPU周期,除以150MHZ,大约是1.69ms<br>STM32F4:一共个周期,除以168MHZ,大约是1.7ms,比F28335略慢<br>结论就是,对于包含相对较多跳转的综合浮点算法而言,STM32F4似乎并不慢多少。<br>抛开架构因素,从纯浮点运算方面来看的话。STM32F4的FPU加减乘指令VADD.F32、VSUB.F32、VMUL.F32都是单周期指令,而除法VDIV.F32耗费14个周期。<br>例如:a = a / b;产生的汇编为:<br>0x0 ED900A00 VLDR s0,<br>0x0 4804 LDR r0, ; @0x0<br>0x0 EDD00A00 VLDR s1,<br>0x0A EE801A20 VDIV.F32 s2,s0,s1<br>0x0E 4803 LDR r0, ; @0x0C<br>0x0 ED801A00 VSTR s2,<br>复制代码 F28335: F28335的FPU有加减乘法指令,都是双周期的,由于没有硬件除法指令,F28335这里是用软件模拟的浮点除法,汇编可以看到 LCR $div_f32.asm字样,需要19个时钟周期。<br>例如:a = a * b,产生的汇编为:<br>0087B2 E203 MOV32 *-SP, R0H<br>0087B4 E2AF MOV32 R1H, *-SP, UNCF<br>0087B6 E700 MPYF32 R0H, R1H, R0H<br>0087B8 7700 NOP //需要让流水线等待FPU运算完毕,所以需要NOP<br>0087B9 E203 MOV32 *-SP, R0H<br>复制代码 除法:<br>0087BD E203 MOV32 *-SP, R0H<br>0087BF E2AF MOV32 R1H, *-SP, UNCF<br>0087C1 7640 LCR $div_f32.asm:52:71$<br>0087C3 E203 MOV32 *-SP, R0H<br>复制代码 结论:<br>可见单从浮点处理器来说,F28335是不如F4的FPU的。但是由于F28335是哈佛架构,有较长的流水线,可以在一个时钟周期里完成读取,运算和存储,所以程序连续运行的话,就比ARM快上许多,比如执行一次a = a + b只需要5个时钟周期,但是缺点就是一旦要跳转,就必须清空流水线,如果是<br>for(i = 0;i < 100; i ++)<br>a = a + b;<br>复制代码 这样的运算,速度反而要比ARM慢(测试下来单次是17周期,ARM是14).所以说这就是ARM和DSP不同的地方了。<br>看看这次测试比较,感觉环境还是有一定的问题:<br>1、F28335是在RAM中运行,并且两者都是在仿真器环境中进行运算,还是离线在Flash中跑比较靠谱。<br>2、两者编译平台一个是CCS,一个是KEIL,对通用语句的优化,有待商榷。<br>3、ARM和TI的数学库中,各自支持的运算种类不一样。<br></作者:刘陵顺著><p>以上就是关于TMS320F28335PGFA工作原理的文章内容,如果您有TMS320F28335PGFA工作原理的意向,就请联系我们,很高兴为您服务!</p>
页: [1]
查看完整版本: TMS320F28335PGFA工作原理