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.

TCAN1145-Q1: TCAN1145-Q1因错误帧异常唤醒

Part Number: TCAN1145-Q1

因为整车恶劣的环境问题,我们的产品会发生因为can总线发生错误帧,而导致我们产品被异常唤醒,想咨询下,在保留特定帧唤醒功能的情况下,有什么方法可以关闭错误帧唤醒,只有特定的网管报文才能唤醒

  • 已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

  • 很遗憾,您无法禁用错误帧唤醒功能,因为这是必要功能。不过,您可以提高帧计数器阈值,使其需要多个 CAN 错误帧才能唤醒收发器。默认情况下,需要 32 个帧。但您可以将其增加到 256 个帧(写入 0xFF)。

  • 已经将阈值改成0xFF了,但实际情况是还是会达到最大阈值,所以芯片的设计是没办法禁用,达到最大阈值后只能被唤醒,软件处理了对吧?

  • 因此,当计数器超限时,INT_1 中的 FRAME_OVF 标志会被设置。当 FRAME_OVF 被设置时,它也会设置 INT_3 中的选择性唤醒错误标志 (SWERR)。这将禁用选择性唤醒。

    当选择性唤醒被禁用时,任何 CAN 帧都会唤醒收发器(包括符合 ISO 11898 CAN WUP 规范的错误帧)。这就是您所观察到的现象。

    如果因错误帧导致 FRAME_OVF 标志被设置,您可以配置软件,使收发器在重新启用选择性唤醒后返回睡眠模式。我建议配置为:一旦不再存在错误帧,就将收发器送回睡眠模式。这可以通过读取 FRAME_CNTx 寄存器来实现。在发送了足够数量的有效 CAN 帧后,该寄存器读数应恢复为 00h。

    请注意,在启用“选择性唤醒”之前,您需要清除所有中断寄存器(INT_1、INT_2、INT_3 和 INT_CANBUS)。