0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于TMS320F2807x的IQmath的移植方法

电子设计 来源:网友电子设计发布 作者:网友电子设计发布 2021-12-28 17:43 次阅读
由于TMS320F28x7x系列芯片内部集成了TMU(Trigonometric Math Unit)专门用于加速常用的三角函数和算术运算的执行,可以5个cycles以内得到正弦/余弦/正切等运算结果,因此TMS320F28x7x系列芯片的ROM中不再固化IQmathTables和相关三角函数。同时,在新的设计中我们更推荐用户使用TMU去处理三角函数运算。

为了兼容基于IQmath的程序的移植,本文给出了基于TMS320F2807x的IQmath的移植方法。

一.测试相关环境

测试相关的软硬件环境如下表所列:

CCS Version

7.2.0.00013

Compiler Version

TI v16.9.3.LTS

IQmath Version

V1.6.0

测试芯片型号

TMS320F28075

您可以选择任意示例工程,这里选择的工程为 adc_soc_epwm_cpu01,它的工程文件的目录为:

C:\ti\controlSUITE\device_support\F2807x\v210\F2807x_examples_Cpu1\adc_soc_epwm\cpu01

在CCS中import该工程后,右击工程,选择Properties,并打开Build Configuration下的Set Active,选择CPU1_FLASH,使程序在flash下运行。

二. 工程修改步骤

1.在新的工程中添加IQmath库文件,由于TMS320F2807x为浮点运算的芯片,所以选择IQmath_fpu32.lib这个库。

2.在新的工程中添加IQmath函数库的头文件IQmathLib.h,并在原有工程中添加以下语句:

#include "IQmathLib.h";

以上两均添加好的工程的文件列表如下:

3.由于IQmathTables不再固化在芯片的ROM中,需要将这一部分的程序拷贝到FLASH中,则要修改CMD文件,增加了IQmath和IQmathTables的内存分配。这个CMD文件在TI官方的软件包controlSUITE中已经提供,地址如下:

C:\ti\controlSUITE\device_support\F2807x\v210\F2807x_common\cmd

选择2807x_FLASH_IQMATH_lnk_cpu1.cmd,

在FLASHB和FLASHC中专门给IQmath和IQmathTables分配了空间:

4.为了保持一个工程中仅有一个CMD文件,将工程中自带的Flash_lnk.cmd删除。

右键工程文件,选择properties,在CCS Build下选择C2000 Linker,删除2807x_Generic_FLASH_lnk.cmd文件。

当然,您也可以选择修改原有的CMD文件,只要在FLASH中给IQmath和IQmathTables分配足够的空间即可。

5.移植完成以后,在程序中添加IQmath函数的测试代码。

首先在main函数前增加IQ格式的变量定义:

_iq IQresult =_IQ(1.0);

_iq IQsource;

在main函数调用IQmath库中的任意函数,这里我调用了IQsin()函数进行测试:

IQresult =_IQsin(IQsource);

通过实际debug,计算结果与预期相符。

三. TMS320F2807x Piccolo系列芯片在运算能力上的提升

1. 浮点运算单元FPU

FPU全称Float Point Unit,即浮点运算单元,是专用于浮点运算的处理器。在大多数现在的通用计算机架构中,会在CPU中集成一个或多个浮点运算器,但许多嵌入式处理器没有在硬件上支持浮点数运算。

TMS320F2807x Piccolo系列芯片使用C28x+FPU的架构,在原有的C28x定点CPU的基础上加入了一些寄存器和指令,来支持IEEE 单精度浮点数的运算。对于在定点微处理器上编写的程序,浮点C2000也完全兼容,不需要对程序做出改动。

下表给出了与定点处理器相比,浮点处理器在计算能力上的提升:

可见,与定点处理器相比,浮点处理器不但在程序编写上更加简洁,性能上也有了很大的提升,在进行除法,开方,FFT和IIR滤波等算法等指令中效率更高。

2. 三角函数运算单元TMU

与此同时,该系列芯片内部还集成了浮点三角函数运算单元TMU,它增强了C28-FPU的指令集。通过提供以单周期高效方式执行某些三角函数和算术函数的指令,减少了常见复杂函数运算的处理延迟,进一步提高了实时控制算法的性能。

带有TMU单元和没有TMU单元的CPU在一些常见函数的执行周期的对比情况如下表:

TMU可以对许多常用的实时控制算法有极大的优化,常见的有以下几种:

1.Park和Inverse Park变换;

2.空间矢量控制;

3.dq0和Inverse dq0变换;

4.FFT幅度和相位计算。

以Park变换为例,使用FPU来执行,通常需要80到100多个周期来,而集成了TMU单元的CPU仅需13个指令周期即可完成,与没有TMU相比,性能提高了85%。

因此,针对复杂且对实时控制要求高的控制算法中,相信集成了FPU和TMU的TMS320F2807x Piccolo系列芯片是您非常合适的选择。

审核编辑:何安

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式处理
    +关注

    关注

    0

    文章

    341

    浏览量

    9883
收藏 人收藏

    评论

    相关推荐

    国产DSP,QX320F28377D 跟 TI 的 TMS320F28377D 资源对比分析

    QX320F28377D ——TMS320F28377D 32位双核CPU ——32位双核CPU,C28x+双CLA 每个核主频400MHz ——每个核主频200MHz 单精度浮点运算FPU
    发表于 04-09 09:47

    请问做电源用stm32f334好还是tms320f2806?性价比哪个高?

    做电源用stm32f334好还是tms320f2806?性价比哪个高?
    发表于 04-02 06:41

    实时微控制器TMS320F2803x数据表

    电子发烧友网站提供《实时微控制器TMS320F2803x数据表.pdf》资料免费下载
    发表于 03-21 09:09 0次下载
    实时微控制器<b class='flag-5'>TMS320</b>F2803x数据表

    为什么TMS320F28335+ad7606-6读取到的数值高8位为0?

    请懂的帮忙分析一下,TMS320F28335+ad7606-6 ,上电对AD复位后,每N秒开始转换一次,采用并行方式读取,转换完成(BUSY下降沿)进入 28335的外部中断读取6通道的数据,波形
    发表于 12-22 07:07

    TMS320F28335和AD7606采样,AD7606采样结果有时候为0是怎么回事呢?

    你好!我用TMS320F28335和AD7606采样,我做了如下实验,控制板断电之后再送电,有时候AD7606采样结果正确,有时候为0,这是怎么回事呢?
    发表于 12-18 06:07

    AD2S1205芯片与TMS320F28335之间信号需要进行电平转换吗?

    AD2S1205芯片与TMS320F28335之间信号需要进行电平转换吗? AD2S1205芯片是5V供电,TMS320F28335芯片是3.3V供电,两个信号间通讯信号是否需要进行电平转换?
    发表于 12-13 08:56

    TMS320C6713管脚分类

    TMS320C6713
    发表于 11-16 16:33 41次下载

    基于TMS320C6678的八核DSP雷达信号分选电路

    电子发烧友网站提供《基于TMS320C6678的八核DSP雷达信号分选电路.pdf》资料免费下载
    发表于 11-06 10:28 0次下载
    基于<b class='flag-5'>TMS320</b>C6678的八核DSP雷达信号分选电路

    基于TMS320F28335的恒流型馈能式电子负载的设计

    电子发烧友网站提供《基于TMS320F28335的恒流型馈能式电子负载的设计.pdf》资料免费下载
    发表于 10-24 09:52 0次下载
    基于<b class='flag-5'>TMS320</b>F28335的恒流型馈能式电子负载的设计

    DSP原理及应用第3章 TMS320C54x的数据寻址方式

    电子发烧友网站提供《DSP原理及应用第3章 TMS320C54x的数据寻址方式.ppt》资料免费下载
    发表于 10-09 16:34 0次下载
    DSP原理及应用第3章 <b class='flag-5'>TMS320</b>C54x的数据寻址方式

    JLINK可以对TMS320F2812下载程序吗?

    Jlink可以对TMS320F2812下载程序吗
    发表于 10-09 08:54

    TMS320F2812一般用的是什么仿真烧录器?

    TMS320F2812一般用的是什么仿真烧录器
    发表于 10-09 08:26

    TMS320F28335与交流永磁伺服驱动器的接口方法分享

    独特的优势,使用高精度驱动器不但可以提高系统的整体水平,还能缩短系统的开发周期,节省成本。本文主要研究了一种连接TI的TMS320F28335 DSC芯片、交流伺服驱动器以及交流永磁伺服电机的连接电路,实现了对交流永磁伺服电机的位置控制。
    发表于 09-25 07:38

    tms320f2808数字信号处理器中文资料

    tms320f2808中文资料TMS320F2809 TMS320F2808 TMS320F2806TMS320F2802 TMS320F2
    发表于 08-23 16:33 0次下载

    TMS320F28034: 利用C2prog通过SCI给TMS320F28034烧录程序,出现错误提示:Bootloading... failed (invalid echo)!

    我用的芯片的TMS320F28034,用C2prog软件通过SCI给它下载程序,点击下载后,在第二步出现错误:Bootloading...failed (invalid echo)!如下图所示
    发表于 08-19 20:01