S32K314 BUSOFF

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

S32K314 BUSOFF

Jump to solution
2,881 Views
rujunzhou
Contributor III

你好:

     我们在测试S32K314 BUSOFF的功能时,遇到一个问题。我们代码默认busoff 自恢复功能。然后为了实现手动快慢恢复效果,设置了一个函数,作为busoff 恢复调用。函数先设置模式 CAN_CS_Started。然后初始化邮箱内的数据内容为inactive,数据设置为0x08080000.这样的话,如果需要100ms busoff 恢复,那么在100ms任务中调用此函数,此函数会判断是否进入busoff,如果进入busoff状态,就会调用刚才的函数。

    但是在测试过程中发现,当调用busoff的周期,较小于一定的CAN报文发送周期,会出现CAN报文直接停发。查看CAN_State_Error_Count,处于TX_passive 状态,不会再进入busoff。请问为什么CAN报文会停发?

0 Kudos
Reply
1 Solution
2,808 Views
Senlent
NXP TechSupport
NXP TechSupport

Hi@rujunzhou

没有示例代码,关闭或者使能Bus-Off Auto Recovery就只和这以为寄存器有关,你直接写寄存器即可。

Senlent_0-1761787766511.png

 

View solution in original post

5 Replies
2,842 Views
Senlent
NXP TechSupport
NXP TechSupport

Hi@rujunzhou

1.我无法通过你的描述来定位问题的原因,你至少要提供基本的测试例程我们才能帮你分析原因。

2.快慢回复我不建议你这样去做,你应该关闭自动恢复,检查到bus-off event的时候,再开启自动回复,在t1时间内如果没有bus-off event事件产生则恢复成功,如若没有,再关闭自动恢复,等待若干时间再尝试打开自动恢复。

2,735 Views
rujunzhou
Contributor III
现在对第一个问题再描述一下,CAN在什么情况下,会停发报文,需要重新上下电才会恢复。目前已知CAN没处于busoff状态。出现这种情况是概率性的,我是用CANH对地短路出现的。此时收发器的输入即MCU的tx引脚一直处于高电平。
0 Kudos
Reply
2,824 Views
rujunzhou
Contributor III

Hi,

    请问你那有s32k3 busoff 恢复的相关代码供参考吗?

0 Kudos
Reply
2,809 Views
Senlent
NXP TechSupport
NXP TechSupport

Hi@rujunzhou

没有示例代码,关闭或者使能Bus-Off Auto Recovery就只和这以为寄存器有关,你直接写寄存器即可。

Senlent_0-1761787766511.png

 

2,802 Views
rujunzhou
Contributor III
好的,感谢
0 Kudos
Reply