This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F280039C:在主板上电后、程序不能运行-闪存问题

Guru**** 2961530 points

Other Parts Discussed in Thread: C2000WARE, TMS320F280039C, BOOSTXL-BUCKCONV, POWERSUITE, SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1369286/tms320f280039c-program-doesn-t-run-after-power-recycle-of-the-board---flash-issue

器件型号:TMS320F280039C
主题中讨论的其他器件: BOOSTXL-BUCKCONV、C2000WARE、 powerSUITE、 SysConfig、 Strike

工具与软件:

您好!

我将使用 F28004x TIDM 直流/直流降压示例、并将其迁移到 F280039C 控制卡板、如下图所示、对使用120MHz SYSCLK 频率进行了一些修改、并更改了 ADC 配置以读取 Vin、Vout、Iout -所有这些都运行良好(编译和运行)。 但我无法将程序刷写到电路板中、尽管2个引导模式 GPIO 引脚被设置为闪存引导模式- 1. 反汇编视图还显示主程序和 GPIO 引脚位于闪存地址中、我将使用 f28004x_codestartbranch.asm 和 f28004x_flash_lnk.cmd 文件、因为它们是默认文件、并且在编译期间不会出现任何问题(因为 F28003x 和 F28004x 具有相同的 Bank0和 Bank1内存映射和扇区大小)。 但是、一旦电源连接断开并再次打开电路板、该程序就不会运行。 构建配置在释放模式中被设定为激活状态、并且没有其它构建配置选项可用。 请求帮助以了解刷写代码库的方法。

#define DEVICE_setCLOCK_CFG (SYSCTL_OSCSRC_OSC2 | SYSCTL_IMULT (48)|\
SYSCTL_REFDIV (1)| SYSCTL_ODIV (4)|\
SYSCTL_SYSDIV (1)| SYSCTL_PLL_ENABLE |\
SYSCTL_DCC_BASE_0)

//
//基于上述 device_setclock_CFG 的120MHz SYSCLK 频率。 更新了
//如果使用了不同的时钟配置、请执行以下代码!
//
#define DEVICE_SYSCLK_FREQ ((DEVICE_OSCSRC_FREQ * 48)/(1 * 4 * 1))

谢谢!
Geetha Priya

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Geetha:

    您当前正在测试什么构建配置? 对于开环配置、dac/占空比在初始化时设置为0、因此、当您从闪存引导时、它们将不会控制输出上的任何电压。 此外、您是否正在验证该项目是否通过其他方式运行? 由于这是不同的硬件、应重新配置心跳 LED 以匹配 controlCARD 的 LED 引脚。

    此致、

    Peter

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Peter:

    我将使用目标配置文件- TMS320F280039C.ccxml、并在发布模式下将构建配置设置为有效状态。 对于实验1中的开环配置、在编译工程并运行工程之前、我已经将 BUCK_dutySetRef_pu 中的占空比值初始化为0.32。 是的、我也在通过 LED 心跳进行验证、并且根据 F283009C 控制卡引脚映射将 LED GPIO 更改为31、而且在程序在板上运行时可以工作、但在电源循环后停止。

    谢谢!
    Geetha Priya

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Geetha:

    感谢您的确认。 您能展示一下在项目中定义了哪些预定义符号吗? 您需要确保 包含_flash、因为 device.c 文件会查找预定义的内容以正确初始化闪存模块

    此致、

    Peter

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Peter:

    是的、_FLASH 包含在预定义符号部分中。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Geetha:

    请允许我与我们的快速专家确认是否有任何其他条件需要满足。 我还将尝试运行 BOOSTXL-BUCKCONV 硬件来对我进行验证

    此致、

    Peter

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Peter:

    闪存专家是否有任何更新、或者您是否能够在 F280039C 电路板上运行和验证刷写。

    此致、
    Geetha Priya

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Geetha:

    我与我们的 Flash 专家进行了交谈、他给出了一些要检查的要点

    1.建议使用 F280039C 器件的相应 codestart 和链接器命令文件、可在 C2000Ware 文件夹、

    2.建议从 F280039C 工程的通用示例工程开始、并通过对简单的闪烁 LED 示例进行编程来验证从闪存启动是否按预期运行。

    3.之后、建议将更新后的降压转换器参考设计代码拉入新工程中、然后测试该工程的编译和调试过程


    此致、

    Peter

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Peter:

    1.是的、我已尝试  在 powerSUITE 解决方案中使用 F28003x 的双有源电桥示例中的 f28003x_codestartbranch.asm 和 f28003x_flash_lnk.cmd、而在 buck 示例中替换了、仍然无法使用闪存。

    是的、LED 会闪烁、双有源电桥和其他特定于 F280039C 的示例在下电上电后也会刷新并正常工作。

    3.但是、无法将 BUCK SysConfig 拉入新项目、因为它基于 powerSUITE 并引发如下所示的错误。 我尝试遵循此迁移教程 https://www.ti.com/video/6309991000112 ,但无法解决此错误。

    您可以帮助将此与任何其他变通办法进行排序吗?

    谢谢!
    Geetha Priya

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Geetha:

    移植非 PowerSUITE 版本的代码要容易得多、因为对 SysConfig 的设置生成没有依赖性、您能否改为尝试将其复制到新工程中?

    此致、

    Peter

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Peter:

    若要将非 powerSUITE 版本复制到新工程中、应使用哪个 driverlib、因为我希望在 F280039C 上实现它、而原始示例使用 driverlib_eabil.lib 并包含引用 F28004x driverlib 的文件、我看到了编译错误。  我尝试了更改 driverlib、flash_lnk.cmd、codestart、所有这些文件都与 f28003x 有关(还尝试从使用 F280039C 的双有源电桥示例中复制这些文件)、但缺少 f28004x 中使用的 driverlib 中的一些.h 文件。  请您更加明确地说明将要进行哪些迁移更改。  

    谢谢!
    Geetha Priya

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Geetha:

    我想我们不是采取同样的做法。 与其将链接器命令文件、driverlib 库、codestart 等从项目复制到非 PowerSUITE 版本、我认为最简单的方法是将文件从非 powerSUITE 项目复制到已为 F28003x 配置的闪烁 LED 模板项目中。 该项目已经包含适用于 F28003x 的适当器件和库文件、您可以测试从闪存启动是否正常工作。 在对其进行测试之后、您可以从 nonpowerSUITE 项目中复制.c 和.h 源文件。 完成此操作后、您可以尝试通过更改 settings.h 文件中的引脚配置等进行移植、但我不希望您会遇到闪存或 driverlib 兼容性的任何问题。 请随时提供您从侧面看到的任何错误的屏幕截图

    此致、

    Peter

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Peter:

    我曾尝试刷写双有源电桥 (非 powerSUITE 版本 F28003x 示例)、但在进行下电上电后仍然有效。 没有尝试将文件复制到 LED 闪烁、因为它没有项目中的器件文件。 因此、我选择了双有源电桥示例。 尝试将文件从降压非 powerSUITE 项目复制到双有源电桥非 powerSUITE 项目。 但编译时看到以下错误:

    此工程中的包含文件如下

    请告诉我如何解决上述编译错误。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [已删除]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将 DCL 库文件夹从 BUCK 示例替换为 DAB 示例-这解决了第一个错误。 但是、以下错误会出现 、因为它们未在 F28003x driverlib 的 xbar.h、hw_memap.h 和 asysctl.h 中定义。

    所有的.h 文件都显示在图标上,不确定它们在编译过程中是否被正确调用,如下所示。  

    您能帮助说明如何解决这个问题吗?  

    这些是使用的头文件、这里是否要进行任何更改?

    谢谢!
    Geetha Priya

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Geetha:

    F28003x 器件只有4个 CMPSS 模块、因此您找不到 CMPSS6外设。 这就是为什么在 cmpss.h 文件中未定义它的原因。 您应该将 CMPSS6替换为另一个未使用的 CMPSS 模块  

    此致、

    Peter

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Peter:

    非常感谢您的帮助、借助上述方法、我成功刷写了带有直流/直流降压项目的 F280039C 电路板。

    此致、
    Geetha Priya