S32K144 CAN bus - Bus Off state can not be reached

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

S32K144 CAN bus - Bus Off state can not be reached

跳至解决方案
535 次查看
szblaci
Contributor III

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

 

标记 (3)
0 项奖励
1 解答
500 次查看
PetrS
NXP TechSupport
NXP TechSupport

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

在原帖中查看解决方案

0 项奖励
2 回复数
501 次查看
PetrS
NXP TechSupport
NXP TechSupport

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

0 项奖励
476 次查看
szblaci
Contributor III

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

 

0 项奖励