只是想知道是否有人可以在 CAN 短接总线 H 和 L 长时间(2到10分钟)时点亮任何灯、那么校正短路不会自动恢复。 如果我们短接一段较短的时间、它将恢复。 经进一步调查、CAN0至 IP -d -s 链路显示 CAN0显示错误被动、不会进入总线关闭状态并自动恢复。
通过以下方式将其配置为自动恢复:
IP 链路设置 CAN0 UP 类型 CAN 比特率500000重新启动 ms 1000
这绝对是我每秒都会得到的结果:
C_CAN_platform 481cc000.can CAN0:设置 BTR=1c02 BRPE=0000
它最终会停止打印、然后我会得到:
发送失败:没有可用的缓冲区空间
ip -d -s 链接显示 CAN0
CAN0: MTU 16 qdisc pfifo_fast 状态向上 qlen 128
链接/CAN
CAN 状态错误被动(错误计数器 TX 248 Rx 0)重新启动 ms 1000
比特率50000采样点0.875
TQ 125 prop-g 6 phase–seg1 7 phase–seg2 SJW 1.
c_can:tseg1 2..16 tseg2 1..8 SJW 1..4 BRP 1.1024 BRP-inc 1.
时钟24000000
重新启动总线错误 arbit-lost error-warn error-pass bus-off
2707 0 2709 2709 2707
RX:字节数据包错误丢失溢出 mcast
91897 11554 0 0 0 0
TX:字节数据包错误丢失了载波整理
1524 198 0 2707 0 0
据此、BERR TX 为248、所以它进入总线关闭并重新启动(248-127次)。 但在本例中、它会卡在(248 - 127次)。
在命令行上、IP 链路 CAN0 UP 将重新启动总线。
是否有人看到类似的问题? 我已经研究了插座层、现在正在研究 DCAN 层。 有人会问您在哪里? 还是在器件级别?