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.

[参考译文] TMS320F28379D:加载程序时出现问题

Guru**** 2584245 points
Other Parts Discussed in Thread: TMS320F28379D, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1179012/tms320f28379d-issue-loading-program

器件型号:TMS320F28379D
主题中讨论的其他器件: C2000WARE

各位专家:

美好的一天! 我为我们的客户发布此帖子

尝试在 TMS320F28379D 的闪存 CPU2中加载程序时遇到问题。 他们几乎测试了所有内容、他们想知道某些器件/单元是否可能存在使其无法实现的错误。

我已经在同一 PCB 上使用相同的代码测试了4个器件。 另外两个器件可以加载程序、而另两个器件无法加载。 请注意、它们具有在四个器件上使用的相同代码。

为了使测试更加简单、他们使用闪存中的 C2000ware dual flash_led 的代码示例进行测试、但也发生了同样的情况、一个能够加载到闪存 CPU2中、而不是加载到另一个上。

附加的错误片段

提前感谢您。  

此致、

Jonathan

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

    您好、Jonathan、

    您能向我介绍一下 CCS 中执行的导致这些错误日志的步骤吗? 以便客户能够正常启动目标配置? 然后、他们能够无问题地将目标连接到 CPU1和 CPU2? 然后、它们能够  正常地将代码加载到 CPU1闪存中、但尝试将程序加载到 CPU2闪存会导致屏幕截图中出现错误? 我只是想确保在我研究可能导致此问题的原因之前了解详细信息。  

    此致、

    Ben Collier   

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

     您好 Ben、

    谢谢、这是客户的反馈

    答案是肯定的。 我可以测试目标连接没问题、我可以将 CPU1和 CPU2加载到 RAM 中、但不能加载到闪存中。 我可以在闪存 CPU1中加载、但无法在 CPU2中加载。 在加载程序期间观察弹出窗口的过程、我可以观察到 CPU2的闪存不仅可以加载、而且无法擦除闪存。

    此致、

    Jonathan

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

    您好、Jonathan、

    客户使用哪个版本的 CCS? 此外、如果客户使用片上闪存工具尝试擦除闪存、则会看到什么控制台输出?  

    启动目标配置并连接到两个 CPU 后,从 CCS 菜单顶部选择 Tools>On-Chip Flash。 确保在片上闪存工具的顶部选择 CPU2、然后向下滚动到"Erase Settings"。 选择"仅选定扇区"、然后尝试仅擦除"选择扇区 A"。 请告诉我这是否会导致相同的错误。

    此致、

    Ben Collier

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我使用的 CCS  版本:9.3.0.00012
    我按照建议的步骤操作、并弹出类似的错误。
    我已附上一些屏幕截图以显示控制台错误、并确保我遵循正确的步骤。
    我期待收到你的回复。
    此致、
    Jonathan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jonathan、

    我对我的答复拖延表示歉意。 我正在与这 一领域的知识更丰富的人进行联系。

    此致、

    Ben Collier  

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

    您好、Jonathan、

    通过将引导模式引脚设置为启动时的正确状态、将器件置于等待引导模式后、您是否可以重试? 即、将引脚拉高/拉低以进入等待引导模式。

    最棒的

    Kevin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Kevin:
    以下是客户对您的问题的反馈。
    我将引脚设置为退出引导模式(GPIO72=1且 GPIO84=0)、并尝试通过片上闪存擦除闪存、但遗憾的是、会弹出一个非常类似的错误。 我附上错误的屏幕截图。 此外、一旦出现错误、CCS 将突然关闭。  
    我们期待您的更新。  
    此致、
    Jonathan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jonathan、

    在尝试对 CPU2进行编程时、需要暂停 CPU1。 是否可以在擦除 CPU2之前先尝试擦除 CPU1以确保这一点? 请参阅以下从 https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/737150/ccs-tms320f28379d-unable-to-program-cpu2获取的流程

    a)连接到 CPU1和 CPU2。
    b)连接后、转至"工具->片上闪存"。 这将打开 C28内核的闪存设置。
    c)确保选择 CPU1、在片上闪存中找到 Erase 按钮并单击它。 看看这是否起作用。
    d)选择 CPU2、找到片上闪存中的 Erase 按钮并单击它。 看看这是否起作用。

    最棒的

    Kevin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Kevin:
    感谢你的等待。 这是我们客户的更新。
    我采取了这些步骤,但不幸的是没有奏效。
    我同时连接了 CPU1和 CPU2。
    成功擦除 CPU1闪存、但之后不擦除 CPU2。
    我只尝试擦除闪存 A、也尝试擦除 CPU2的整个闪存、但两者都不起作用。
    我附上2张屏幕截图。
    感谢您的支持。
    此致、
    Jonathan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jonathan、

    感谢您执行测试并提供屏幕截图。 我看到、一旦您开始擦除 CPU2的闪存、JTAG 就会断开连接。 我有其他一些建议、可以尝试检查您是否可以。

    首先、如果您可以检查是否可以从 CPU2闪存扇区读取数据。 您可以使用 CCS 中的存储器浏览器工具来执行此操作、连接到 CPU2并键入特定的闪存存储器地址(范围从0x0008 00000x000B FFFF)。

    我在下面发现了类似的 E2E 问题。 他们发现的根本问题是在刷写 CPU2时1.2V VDD 电源轨下降。

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/691861/tms320f28375d-core2-flash-problem?ReplyFilter=Answers&ReplySortBy=Answers&ReplySortOrder=Descending

    Vamsi 提供了一些很好的东西、可查看以下内容:

    a)发生故障时、您是否注意到 XRSn 引脚上有任何切换?

    b)闪存操作进行时、您是否确保电压轨(VDD 和 VDDIO)处于 DS 规格范围内?

    c)您能否按以下顺序尝试并查看其是否有用?

    (1)为等待引导配置引导模式 GPIO

    (2)对电路板进行下电上电

    (3)启动目标配置

    (4)连接两个内核

    (5)对 CPU1执行调试复位

    (6)单击"恢复"按钮在 CPU1上运行 BootROM (使器件进入已知状态)

    (7)在 CPU2上执行调试复位

    (8)单击"恢复"按钮在 CPU2上运行 BootROM (使器件进入已知状态)

    (9)如果 CPU1和 CPU2在点击"恢复"按钮后未自行停止、则停止它们

    (10)将代码加载到 CPU2

    (D)如果上述操作不起作用、生成调试服务器日志可能有助于进一步调试。  您可以通过"CCS 帮助菜单-> CCS 支持->选择调试服务器日志->单击属性-> 选择启用调试服务器日志+选择日志文件位置->单击确定"来生成日志。   

    请向我们发送调试服务器日志。

    (e)您是否还可以选择 CCS 中的片上闪存 GUI 底部提供的"Enable Verbose Output"选项(工具菜单->片上闪存)?  请向我们发送故障案例的控制台窗口输出。

    最棒的

    Kevin

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

    尊敬的 Kevin:

    美好的一天! 下面是客户的回答。

    很不错! 非常感谢您的服务和耐心。  
    它的发生与线程中的那个一样、1.2V 只有 μ μC 的负载、并且在加载 CPU1后擦除 FLASH2时、电压不稳定。  
    非常感谢。 我希望您  也向 Kevin Allen18致谢。
    此致、
    Jonathan