S32K314 BUSOFF

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 
234件の閲覧回数
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 件の賞賛
返信
1 解決策
161件の閲覧回数
Senlent
NXP TechSupport
NXP TechSupport

Hi@rujunzhou

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

Senlent_0-1761787766511.png

 

元の投稿で解決策を見る

5 返答(返信)
195件の閲覧回数
Senlent
NXP TechSupport
NXP TechSupport

Hi@rujunzhou

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

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

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

Hi,

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

0 件の賞賛
返信
162件の閲覧回数
Senlent
NXP TechSupport
NXP TechSupport

Hi@rujunzhou

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

Senlent_0-1761787766511.png

 

155件の閲覧回数
rujunzhou
Contributor III
好的,感谢
0 件の賞賛
返信