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.

[参考译文] RM46L852:用于恢复的 DCAN 节点初始化

Guru**** 2392905 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/992334/rm46l852-dcan-node-initialization-for-recovery

器件型号:RM46L852

尊敬的香榭丽舍

是否有任何方法来初始化 DCAN 的特定节点、以便在该节点出现问题时恢复该节点?

我的客户尝试通过 从 caninit()函数中提取节点初始化 API 来实现节点初始化 API,但未恢复。

为了测试它们的实现、它们通过将 CAN_H 与 CAN_L 相连来生成问题、并找到了 can2GetConfigValue 函数的寄存器值

0x21403 0x000fd 0x0070a 0x00080 0x00000、 0x00000 0x00000 0x00000 0x00000 0x4000f 0x40009

在这种情况下,它们 从 canInit()函数中提取 CAN2节点初始化部分,并运行该部分以恢复 CAN2,但它似乎不起作用,寄存器值仍如下所示。

0x21402 0x00005 0x0070A 0x00080 0x00000、0x00000 0x00000 0x00000 0x00000 0x4000f 0x40009

我的客户正在尝试仅通过初始化已发出的节点来找到恢复 CAN 的方法。

请检查此问题、并告诉我是否有仅恢复特定节点的 API。

谢谢、此致、

SI

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

    您好!

    DCAN 是一种差分协议。 显性(0)和隐性(1)取决于 CANH 和 CANL 线路上电压之间的差异。  当您将 CANH 和 CANL 线路短接时、将不会有任何电压差、并且该电压差会低于隐性位的电压范围。 换言之、 短接 两条线将被视为连续传输隐性位。  当发送6个或更多连续隐性位时、视为错误!  当此错误计数超过255时、DCAN 控制器进入 BUS_OFF 状态。

    默认情况下、DCAN 进入总线关闭状态后、CPU 可以通过复位 Init 位来启动总线关闭恢复序列。 如果未完成此操作、模块将保持在脱离总线状态

    DCAN 提供一个自动总线开启功能、此功能由 CAN 控制寄存器中的 ABO 位启用。 如果置位、DCAN 将自动启动总线关闭-恢复序列。