Hi,
I have some questions about can bus-off.
1、The customer specification requires normal communication when CAN_H and Battery are short-circuited.
2、The test shows that when configured as CAN FD, a bus-off occurs when CAN_H and Battery are shorted, and when configured as Classic CAN, Communicate normally when CAN_H and Battery shorted.
The test environment is that both the VSPY3 and the MCU send messages cyclically, Transceiver:TCAN1043, CAN FD baudrate : 500Kbps+2Mbps.
3、Test CAN FD, configure MCU not to send telegrams, VSPY3 cycle to send CAN FD telegrams, at this time CAN_H and Battery short circuit, MCU will not generate bus-off, VSPY3 no TX error count.
4、Test CAN FD, configure MCU cycle to send telegrams, VSPY3 does not send telegrams, at this time CAN_H and Battery short circuit, the MCU will generate bus-off, VSPY3 can not receive the telegrams sent by the MCU, because the MCU entered the bus-off state, must be recovery operation (set to manual recovery).
Are there some other settings that need to be taken into account when configuring for CAN FD mode?
Hi,
bus-off happens only during transmission if node detect bit errors. Bus-off does not happen during frame reception.
With shorts between CAN_H and Battery a transmission can work; there will be disturbed voltage levels on the bus and bit timing violation is possible.
So you can measure CANH/CANL/TXD/RXD signals with scope to see real behavior. Consider your CAN bit timing setting if transmitted bits on TXD can be properly sampled back on RXD also for higher rate due to disturbed bus signal.
BR, Petr
Hi, Petr
As shown in the following figure,
0x340082 is the value of ESR1 during normal transmission and reception,
0x84308636 is the value of ESR1 when busoff happen(shorts between CAN_H and Battery).
Emmmm,,
As shown in the following figure,
It is the waveform of CANH and CANL before and after the short connection between the CANH and the battery,
and the waveform of the CAN TX and RX before and after the short connection between the CANH and the battery.
Is it because the CANH and CAHL waveforms are distorted, causing TX and RX to be inconsistent, and then the MCU enters the busoff state?
Hi,
waveforms do not look normal at all, I think. Thus detecting errors can be expected. And you wrote 0x340082 is the value of ESR1 during normal transmission and reception. So even for your normal condition, module detect errors, but it is not clear which one as flags bit are cleared in your log.
Do you have nodes properly terminated?
BR, Petr