器件型号: TMS320F28P650DK
尊敬的 TI E2E 支持:
在过去几周中、我一直在尝试使用 P65x 上的 DCAN 内核来使用 DFU。 我已使用 PCAN 和以下文档通过 CAN 成功刷写了内核和自定义应用程序。
- 应用手册 C2000 微控制器的 CAN 闪存编程
- C2000
软件控制的固件更新流程
我构建并测试了示例闪存内核 dcan_flash_kernel_c28x_dual_ex5、并修改了应用程序、以在后处理构建步骤中输出特定的 sci-8 格式.txt 文件。 在运行闪存内核示例工程时、我能够使用 0x7FC0 的 BTR 更新到我的应用程序。 在调试模式下运行示例程序时没有问题。
此时、我相信我的内核和应用程序已经成功构建。 我现在尝试使用类似于 (2) 的过程转到远程固件更新、在我的应用中、我切换 GPIO 来为 BOOT 引脚上的电容器充电、并触发复位以使器件进入 CAN 引导加载程序以进行更新。 不幸的是,在这一点,即使我发送内核/应用程序没有任何反应。 我已经验证了以下每一项
- BMSP OTP 编程为-> 0x5AFF4854 (GPIO 84 索引 0 GPIO72 索引 1)、用于引导表
- BOOTDEF OTP 编程为-> 0x00066203(引导顺序为闪存 ALT 0、CAN ALT 3(与我的 CAN 引脚匹配)、SPIA ALT 0(未来开发)
- 我的应用会根据收到的消息触发相应的引脚、复位器件并将其导入引导加载程序
我相信这是一个错误的时机问题。 在继续调试之前、我有几个后续问题、我找不到的答案。
- ROM 引导加载程序是否需要任何特定的时序要求? 我在 P65 TRM 的第 1074 页上看到、ROM 引导加载程序以 100kbps 的速率加载内核、但如果我错了、内核将以硬编码的速率加载到 RAM 中、无论我在中更改了 bitTimingReg 值(见下文)、一旦内核编译完毕、它就会重新同步到我的应用程序加载过程中指定的该 BTR 的值的位时序。 请参见下图。
- 我附加了构建闪存内核的前几个字节。 修改了 BTR、以匹配我在 dcan 示例工程第一张图片中置于 DCAN 引导中的内容。 如果 ROM 引导加载程序需要匹配时序(TRM 的第 1074 页)、我的 DCAN 内核中的前几个字节是否需要与 ROM 的这个 BTR 匹配?


感谢您的帮助。 如果您需要更多信息、请告诉我。