ZHCUD82 August   2025 F28E120SB , F28E120SC , TMS320F2802-Q1 , TMS320F28020 , TMS320F280200 , TMS320F28021 , TMS320F28022 , TMS320F28022-Q1 , TMS320F280220 , TMS320F28023 , TMS320F28023-Q1 , TMS320F280230 , TMS320F28026 , TMS320F28026-Q1 , TMS320F28026F , TMS320F28027 , TMS320F28027-Q1 , TMS320F280270 , TMS320F28027F , TMS320F28027F-Q1 , TMS320F28030 , TMS320F28030-Q1 , TMS320F28031 , TMS320F28031-Q1 , TMS320F28032 , TMS320F28032-Q1 , TMS320F28033 , TMS320F28033-Q1 , TMS320F28034 , TMS320F28034-Q1 , TMS320F28035 , TMS320F28035-EP , TMS320F28035-Q1

 

  1.   1
  2.   TMS320F2802x/TMS320F2803x 至 TMS320F28E12x 的迁移概述
  3.   商标
  4. 简介
    1. 1.1 缩写
  5. 中央处理单元 (CPU)
  6. 开发工具
    1. 3.1 驱动程序库(Driverlib)
    2. 3.2 在 IQ_Math 和原生浮点之间迁移
    3. 3.3 嵌入式应用程序二进制接口(EABI)支持
  7. 封装和引脚分配
  8. 工作频率和电源管理
  9. 电源时序
  10. 存储器映射
    1. 7.1 随机存取存储器(RAM)
    2. 7.2 闪存和 OTP
      1. 7.2.1 扇区大小和数量
      2. 7.2.2 闪存参数
      3. 7.2.3 闪存入口点
      4. 7.2.4 双代码安全模块(DCSM)和密码位置
      5. 7.2.5 OTP
      6. 7.2.6 闪存编程
    3. 7.3 引导 ROM
      1. 7.3.1 引导 ROM 保留的 RAM
      2. 7.3.2 引导模式选择
      3. 7.3.3 引导加载程序
  11. 架构增强
    1. 8.1 时钟源和域
    2. 8.2 双时钟比较器 (DCC) 模块
    3. 8.3 看门狗计时器
    4. 8.4 外设中断扩展 (PIE)
    5. 8.5 锁定保护寄存器
    6. 8.6 通用输入/输出(GPIO)
    7. 8.7 外部中断
    8. 8.8 纵横制(X-BAR)
  12. 外设
    1. 9.1 新外设
      1. 9.1.1 直接存储器存取 (DMA)
      2. 9.1.2 模拟子系统互连
      3. 9.1.3 比较器子系统 (CMPSS)
      4. 9.1.4 可编程增益放大器 (PGA)
    2. 9.2 控制外设
      1. 9.2.1 增强型脉宽调制器 (MCPWM)
      2. 9.2.2 增强型捕获模块 (eCAP)
      3. 9.2.3 增强型正交编码脉冲模块(eQEP)
    3. 9.3 模拟外设
      1. 9.3.1 模数转换器 (ADC)
    4. 9.4 通信外设
      1. 9.4.1 SPI
      2. 9.4.2 SCI
      3. 9.4.3 UART
      4. 9.4.4 I2C
  13. 10仿真 – JTAG 端口
  14. 11器件勘误表
  15. 12器件比较概要
  16. 13参考资料

在 IQ_Math 和原生浮点之间迁移

必须采取以下步骤才能将以 IQmath 格式编写的项目转换为原生浮点格式:

  1. 在 IQmath 头文件中选择 FLOAT_MATH。此头文件会将所有 IQmath 函数调用转换为等效的浮点格式。
  2. 将浮点数写入器件寄存器时,将浮点数转换为整数。同样,从寄存器读取值时,需要将该值转换为浮点格式。在两种情况下,都可以通过将数字乘以换算系数来实现目标。例如,要将浮点数转换为 IQ15,请乘以 32768.0,如下所示:
    #if MATH_TYPE == IQ_MATH
       PwmReg = (int16)_IQtoIQ15(Var1);
    #else // MATH_TYPE is FLOAT_MATH
       PwmReg = (int16)(32768.0L*Var1);
    #endif

    要将 IQ15 值转换为浮点值,请乘以 1/32768.0(即 0.000030518)。

  3. 执行以下操作以利用片上浮点单元:
    1. 将 Code Composer Studio 与 C28x 代码生成工具版本 19.6.0 或更高版本搭配使用。
    2. 设置编译器以使其能够生成原生 C28x 浮点代码。为此,请使用 –v28 --float_support=fpu32 编译器开关。在 Code Composer Studio 中,float_support 开关位于 Compiler Options → Processor Options 下。
    3. 对原生 32 位浮点格式使用正确的运行时支持库。建议包含 libc.a,而不是直接包含 RTS 库。请注意,libc.a 是一个索引,它会根据项目属性自动选择正确的 .lib。
    4. 考虑使用 C28x FPU Fast RTS Library (C2000Ware → libraries → math → FPUfastRTS) 通过 sin、cos、div、sqrt 和 atan 等数学函数获得性能提升。可在正常运行时支持库之前链接 Fast RTS Library。