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.

[参考译文] MSPM0G3507:可以复位

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1391561/mspm0g3507-can-reset

器件型号:MSPM0G3507
Thread 中讨论的其他器件: ISO1050

工具与软件:

我希望你做得好。 我有一个关于 MCAN 外设复位的问题。 我将两个 MSPM0G3507器件连接到同一 CAN 总线、当我使用/RST 引脚对其中任何一个器件进行复位时、另一个器件将停止接收 CAN 消息、而被重新接收的器件将开始接收 CAN 消息。 使两个器件都正常工作的唯一方法是实际断开其中一个器件与 CAN 的连接、执行复位、然后将其连接回 CAN。 我尝试使用 DL_MCAN_RESET ()在一段时间后执行可以重置,但设备不会接收消息。 我还尝试了运行 SYSCFG_DL_MCAN0_init ();但没有成功。 在寄存器中、似乎 Rx 设置了 MCAN_RXF0S.FIFO 0消息丢失、这表示消息丢失、但我无法复位外设以再次开始接收消息。 您能帮助解决所描述的问题吗?  

Ciao  

Hanno (代表我的客户)  

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

    您的客户是否有 CAN 分析器?  希望发生在 CAN 线上吗?

    该问题可能发生在 CAN 转换器而不是 CAN 控制器上。

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

    您好!

    我认为问题不是收发器、因为 MSPM0的软复位可以解决该问题。 CAN 网络由 Xilinx Zynq 组成、它将 CAN 消息发送到两个从器件(MSPM0G3507)。 这三种 收发器都 是 TExaS ISO1050。 在 对 Zynq 进行编程时、CAN 分析仪在 CAN 线路上显示错误被动、并且之后、MSPM0都停止接收消息。 查看寄存器后、我得到了"Protocol Error in Arbitration Phase"。 如何复位 CAN 外设以使其再次开始接收?

    感谢您发送编修

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

    好的、因为我不是 CAN 的家人。 我需要一些时间咨询我的同事、向您提供反馈。

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

    让您尝试此代码、然后重新启动 CAN COMM

    DL_MCAN_RESET (MCAN0_INST);

    DL_GPIO_enablePower (GPIOA);

     SYSCFG_DL_MCAN0_init ();

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

    您好、我发现了这个问题。 问题是、我只在收到 CAN 消息时清除了中断、而不是在中断引发错误时清除了中断。 现在、它适用于大多数我只注意到消息未被接收的部分、因此我将添加建议的代码并返回给您。 感谢你的帮助。

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

    这真是个好消息!