Hi!
I am using S32K144 MCU for a CAN application. Basically it is working fine but the the bus off state is not activated.
The application is sending some CAN frames to the bus when I disconnet one of the CAN lines. The Transmit Error Counter (ECR[TXERRCNT]) is increased by 8 till 128. The FLTCONF in the ESR1 register is set to 01 (error passive state) This is correct. But after this the counter remians 128 and does not count furher (over 255 to reach the bus off state).
Do you have any idea what can be the problem?
Thanks in advance!
regards
Laszlo
Solved! Go to Solution.
Hi,
this is behavior as per CAN standard, when transmitting node is the only one on the bus and so does not get ACK from other nodes, that is the situation you got probably. For ACK error detected, if node is in error passive state, the TXERRCNT is not incremented. During startup, if node is in error active state, TXERRCNT is incrementing for ACK error detected and stops at value 128.
You should get Bus Off when transmitting message and detecting bit error, try one of next shorts; CANH-CANL, CANH-GND, CANL-Vbat
BR, Petr
Hi,
this is behavior as per CAN standard, when transmitting node is the only one on the bus and so does not get ACK from other nodes, that is the situation you got probably. For ACK error detected, if node is in error passive state, the TXERRCNT is not incremented. During startup, if node is in error active state, TXERRCNT is incrementing for ACK error detected and stops at value 128.
You should get Bus Off when transmitting message and detecting bit error, try one of next shorts; CANH-CANL, CANH-GND, CANL-Vbat
BR, Petr
Hello Petr,
Sorry for the late replay. You are right , this is a CAN issue not MCU. I chekced again the CAN specification and I found what you have mentioned. In error passive mode the counter is not increased in case of ACK error.
Thanks a lot!
best regards
Laszlo