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.

[参考译文] TMS320F280039:MCAN 无 TX 输出

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1319380/tms320f280039-mcan-no-tx-output

器件型号:TMS320F280039

尊敬的 Champs:

我是为我们的客户提出这个问题的。

 现在、客户发现使用 MCAN 时出现奇怪的现象。 与客户确认后、仍然无法找到问题的原因。 您能帮助分析一下吗?  以下是对该问题的说明:

仅在独立模式下才会出现问题。 当连接到仿真器并使用 CCS 进行调试时、一切都是正常的。  在引导至应用程序的过程中将发生 MCAN 通信失败问题。 如果您只运行引导或应用程序、则不会出现此问题。

当通信失败时、波形如下所示。 客户可以确认 Rx 的内容正确、但没有来自 Tx 的响应消息。 (粉色:CAN 总线的差分信号;绿色:C2000 RX 信号;黄色:C2000 TX 信号)

由于客户仅在独立模式下发现此问题、因此难以观察寄存器。  我让客户通过一些方法读取以下寄存器、但未发现任何问题:

MCAN_ECR[REC]为0、MCAN_ECR[TEC]为0、MCAN_PSR[LEC]为0、MCAN_CCCR[INIT] 为0。

此外、当发生该问题时、无法进入 MCAN 中断。  当检测到此问题时、如果我们清除 MCAN 中断位、则可以恢复 MCAN 通信。  虽然这可以暂时解决通信问题、但这不是客户想要的。 他们希望找到 MCAN 通信故障的原因、然后进行修复。  但通过检查一些 MCAN 寄存器、我没有发现任何问题。  这真的很难解释、您能帮助分析一下吗? 我是否需要检查其他一些寄存器以确定 MCAN 通信失败的原因?

此致、

朱莉娅

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

    尊敬的 Julia:

    您可以要求客户共享*。map 文件的一部分吗?  我想看看"codestart"条目中是什么。  .map 文件将位于*。out 文件所在的同一子目录中。  只是希望在启动期间快速检查代码分支的位置。

    谢谢。

    约瑟夫

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

    您好、 Joseph:

    请检查 codestart 器件:

    我很好奇此部分为什么会影响 MCAN 通信、在检查寄存器后看不到任何问题。

    此致、

    朱莉娅

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

    尊敬的 Julia:

    我只是想确保启动过程会从闪存调用分支代码、这表明确实如此。  在某些情况下、分支代码可能无法编译、从而导致启动问题。   

    接下来、让我们检查 MCAN 寄存器是否已正确初始化。  为此、您需要在未连接调试器的情况下运行该应用程序。  用户还必须在 CCS 中修改 CCXML 目标文件并删除 GEL 文件、以免在调试器连接时重置器件和初始化存储器。

    可以在 CCS 中使用顶部工具栏上的 Tools->GEL 文件删除 GEL 文件。  窗格底部将出现一个 GEL 窗口、用于显示 GEL 文件。  在 GEL 文件窗口中、右键点击 GEL 文件、然后选择删除。  一旦这个过程完成、连接仿真器/目标、然后检查 MCAN 寄存器和其它相关寄存器、甚至程序计数器(PC)来表示程序有可能被卡住的地方。

    希望这将提供有关问题可能是什么的线索。

    此致、

    约瑟夫

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

    您好、 Joseph:

    感谢您的建议! 我将让客户看看这个。 在这样做之前、我想向您确认以下哪一项是正确的方法?

    1.首先让代码以独立模式运行。 当发生 MCAN 通信问题时、是否执行您提到的步骤并连接到 CCS 以查看寄存器以及代码停止在何处?

    2.是否首先执行了您提到的步骤,然后在这些条件下运行代码?

    谢谢!

    此致、

    朱莉娅

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

    尊敬的 Julia:

    请让客户执行步骤#1。

    谢谢。

    约瑟夫