ZHCADG6A December   2023  – April 2024 TMS320F2800157 , TMS320F280039 , TMS320F280039-Q1 , TMS320F280039C , TMS320F280039C-Q1 , TMS320F28P659DK-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2编程基础知识
  6. 3ROM 引导加载程序和十六进制实用程序用法
  7. 4DCAN 闪存内核
    1. 4.1 实施
      1. 4.1.1 自定义闪存组和扇区擦除
      2. 4.1.2 应用程序加载
  8. 5MCAN 闪存内核
    1. 5.1 实施
      1. 5.1.1 自定义闪存组和扇区擦除
      2. 5.1.2 应用程序加载
  9. 6实现示例
    1. 6.1 器件设置
      1. 6.1.1 闪存内核
      2. 6.1.2 硬件
    2. 6.2 主机应用:dcan_flash_programmer
      1. 6.2.1 概述
      2. 6.2.2 使用 Visual Studio 编译和运行 dcan_flash_programmer
      3. 6.2.3 为 F28003x 运行 dcan_flash_programmer
      4. 6.2.4 使用 DCAN 引导加载程序下载工程
      5. 6.2.5 使用 CCS 编译工程
    3. 6.3 主机应用:can_flash_programmer [MCAN]
      1. 6.3.1 概述
      2. 6.3.2 使用 Visual Studio 编译和运行 can_flash_programmer
      3. 6.3.3 为 F28003x 运行 can_flash_programmer
      4. 6.3.4 使用 MCAN 引导加载程序下载工程
      5. 6.3.5 使用 CCS 编译工程
    4. 6.4 应用加载:CPU2 映像
      1. 6.4.1 组合两个映像 (.txt)
  10. 7疑难解答
    1. 7.1 常见问题
    2. 7.2 DCAN 引导
    3. 7.3 MCAN 引导
  11. 8参考资料
  12. 9修订历史记录

DCAN 引导

问题: 下载 DCAN 内核后,我收到 DCAN 总线错误。可以采取哪些步骤来解决此问题?

回答:确保传输的 DCAN 内核文件具有用于 DCAN 位时序设置的正确值。文本文件的字节 3 和 4 必须替换为根据位时序寄存器值 (CAN_CALC_BTRREG) 的最终结果计算出的十六进制值,顺序为最低有效字节后跟最高有效字节。

问题: 对于 F28P65x 或 F280015x 器件,在 DCAN 引导模式下将 DCAN 闪存内核下载到 RAM 后,无法下载应用程序映像,我该怎么办?

回答:确保在生成 DCAN 闪存内核工程时使用的时钟使用内部晶体振荡器,即 INTOSC2 (device.h)。上电时,器件引导 ROM 由片上 10MHz 振荡器 (INTOSC2) 提供时钟。该值需要设置为主内部时钟源,并且是复位时的默认时钟。

问题: 对于 F28P65x 器件,我可以在 DCAN 引导模式下将 DCAN 闪存内核下载到 RAM 后下载应用程序映像,但 CPU2 无法执行其应用程序。如何解决此问题?

回答:CPU1 的应用程序映像必须设置 CPU2 的所选闪存组 GSxRAM,并将 GPIO 控制权交给 CPU2。然后,CPU1 必须在 CPU2 执行其应用程序映像之前执行自身的应用程序映像,否则,它可能会进入存储器的非法 ISR 段。有关这些项的更多详细信息,请参阅器件特定的 TRM [7]。

问题:F28003x、F28P65x 和 F280015x 存在示例工程,我如何调整这些工程以用于 F20013x?

回答:实施您自己的 F280013x DCAN 闪存内核版本相当简单。调整现有 F280015x DCAN 闪存内核以用于 F280013x 器件时,所需的更改极小。下面列出了移植工程所需的主要更改:

  • 复制 C2000Ware 中的现有 .projectspec 文件 (C2000Ware_x_xx_xx_xx > driverlib > f280015x > examples > flash > CCS > f280015x_flash_eex5_dcan_flash_kernel.projectspec)
  • 更改工程名称
  • 将特定于 F280015x 的文件路径更改为 F280013x 的相应路径
    • 示例:<file action="copy" path="../../../../../libraries/flash_api/f280015x/lib/FAPI_F280015x_EABI_v2.00.10.lib" targetDirectory="" /> 现在应该变为 <file action="copy" path="../../../../../libraries/flash_api/f280013x/lib/FAPI_F280013x_EABI_v2.00.10.lib" targetDirectory="" />
  • 将新的 .projectspec 导入 CCS
  • 将对 F280015x 头文件的任何引用更改为对 F280013x 相应头文件的引用
    • 示例: FlashTech_F280015x_C28x.h > FlashTech_F280013x_C28x.h
  • 验证内核是否配置了正确的 GPIO 和引导模式