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.

[参考译文] TMS470MF06607:DCAN 错误处理

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/582653/tms470mf06607-dcan-error-handling

器件型号:TMS470MF06607

您好,

我使用是 TMS470MF06607微控制器。

我在该控制器中同时使用 CAN。 现在、我的代码也通过中断处理程序正常运行。

但我想知道如何清除我的错误。

例如: 现在我 正在连续发送或接收一些数据,在我删除接收器或发送器之间。  我的控制器一直在尝试发送或接收数据。 在 CTRL、ES、ERRCNT 等寄存器中发出一些错误标志的时间。  

 我还在代码中使用了看门狗计时器。 在代码复位之后,这些标志也不会被清除。  

那么、您能否给出一些建议和示例、说明如何清除我的软件中的这些错误。

此致

Arun Kumar.N

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    DCAN ES 寄存器中的大部分错误标志被读清零。 即、当您读取寄存器时、它们会被清除。 剩余的位是状态位、在条件被移除时被清零。 例如、如果总线关闭被激活、当器件成功退出总线关闭状态时、它将被清除。 可以从 TRM 读取有关总线关闭恢复的更多信息。

    如果复位是由一个 nRST 引脚的外部置位引起的、那么我不建议假定任何外设在没有适当的模块重新初始化包括一个模块级复位的情况下运行。 模块复位应清除所有现有错误、并允许在总线断开恢复完成后重新进入总线。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、

    建议最大 DCAN ES 寄存器被读取清除、但我不知道如何清除该错误。
    我要在软件方面执行更改。 我想对 CAN 错误通知函数进行一些更改。
    但我不确定它是否正确。
    外部 nRST 引脚不会发生复位。 因为只有看门狗计时器、我才进行该复位。 而我通过看门狗计时器执行的操作意味着该错误标志不会被清除。

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

    DCAN ES 寄存器不是"粘滞"寄存器、也不会通过任何系统级复位来保留、无论是否是硬上电复位的软复位。 如果寄存器在 nRST 置为有效后包含任何值、则它可能是一个剩余值、因为您在复位后尚未重新初始化 DCAN 模块以进行操作、或者由于在检测器上仍有一些错误。 请记住、状态寄存器反映总线和本地模块的状态。 网络的其他成员可以并且将在总线上发送错误帧、这将影响该寄存器。

    此外、要清楚的是、当您说您在控制器中使用看门狗时、您是否使用 Hercules 内部看门狗或连接到 nRST 的外部看门狗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、

    很抱歉耽误你的回答。
    实际上、我使用的是 Hercules 内部看门狗复位。 因此、如果我重新初始化 CAN 模块、则意味着该错误标志会被清除???

    此致
    Arun Kumar.N
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    除 CPU 复位之外的任何类型的复位都将导致器件软复位、该器件传播到所有外设。 在某些情况下、例如闪存包装程序、RAM 包装程序、ESM 等。有一些错误条件通过软复位被锁存、这样、如果存在可能影响器件运行(主要包括程序流)的不可纠正和/或严重错误、复位可被用作一个校正机械。 DCAN 不被视为模块类型之一、因此由器件内部看门狗置位的软复位也应复位 DCAN 模块、该模块随后需要像通过上电复位一样重新初始化。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、

    感谢您的宝贵建议。 现在我明白了。 因此看门狗定时器复位不会清除 CAN 错误标志。 如果我想清除、这意味着我想重新初始化 CAN 模块。

    谢谢主席先生。

    此致
    Arun Kumar.N
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    即使在 WD 复位时、也应清除 CAN 错误标志。 如果 CAN 总线上仍然存在错误、在复位后、状态标志可能会再次置位。 这不是 MCU DCAN 模块的结果、而是网络上的其他节点的结果、以防它们发送错误帧来关闭 CAN 总线并将问题通知其节点。

    如果您已经完成了任何复位、软复位或硬复位、则需要重新初始化包括 DCAN 在内的所有外设。