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.

[参考译文] MSPM0G3107:CAN 通信锁定

Guru**** 2394305 points
Other Parts Discussed in Thread: MSPM0G3107

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1452346/mspm0g3107-can-communication-locked

器件型号:MSPM0G3107

工具与软件:

大家好、团队成员:

我的一个客户使用 MSPM0G3107进行 CAN 通信、发现 CAN 没有响应、并在一段时间后锁定、通信将在 POR 后恢复。

客户使用 Jlink 进行调试、但 MCU 不会进入 CAN 中断、同时 主程序和其他中断正常工作。 客户使用示例代码如下、中断设置为默认程序、但主过程没有进入默认程序、您能帮助分析这个问题吗? 谢谢。  

开关(DL_MCAN_getPendingInterrupt (MCAN0_INST)){
案例 DL_MCAN_IIDX_LINE1:
/*检查 CAN 封装的 TX/RX 期间触发的 MCAN 中断*/
m_gInterruptLine1Status |= DL_MCAN_getIntrStatus (MCAN0_INST);
DL_MCAN_clearIntrStatus (MCAN0_INST、m_gInterruptLine1Status、
DL_MCAN_INTR_SRC_MCAN_LINE_1);
m_bCanServiceInt = true;
休息;
默认值:
USER_MCAN0_init (UserData.Speed);
NVIC_EnableIRQ (MCAN0_INST_INT_IRQN);
DL_MCAN_clearIntrStatus (MCAN0_INST、m_gInterruptLine1Status、
DL_MCAN_INTR_SRC_MCA

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

    尊敬的 Shengyue:

    让我仔细检查一下、您面临的是哪种情况:

    • CAN 通信永远不会成功。 在本例中、很多方面都会产生影响、例如波特率、ID、硬件。  
    • 接通电源后、CAN 通信正常、但一段时间后、通信失败、无法进入中断。 在这种情况下、您能否说明客户正在使用什么可以转让器件、并且最好有 CAN 总线波形。

    此致、

    Pengfei

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

    我面临的情况是:接通电源后 CAN 通信正常、但经过一段时间后、通信失败、无法进入中断。 在这种情况下、您能否说明客户正在使用什么可以转让器件、并且最好有 CAN 总线波形。

    在我的设计中、我使用的 CAN 传输器件是 TCAN1042。  电路通常在很长一段时间(例如12小时)内正常工作、然后不回答 CAN 的任何命令。 我认为这是因为 CAN 中断 代码未完成。 因此我发布了 问题中的中断编码。 谢谢。

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

    尊敬的 Fangli:

    明白了。 实际上有许多中断类型"DL_MCAN_IIDX_LINE1"、我假设它是一个接收中断新消息中断。  

    根据您的描述、我认为 CAN 通信软件没有问题、通常 MCU 可以响应其他中断。 因此、请检查 CAN 总线中的波形、以查看消息是否已成功传输到 MCU。

    顺便说一下、您可以检查 MCAN_IR 寄存器中的 CAN 中断类型。

    此致、

    Pengfei