打印
[MCU]

发送错误计数器到了128就不变了

[复制链接]
400|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
supernan|  楼主 | 2020-7-5 18:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用TM4C123GH6PM芯片做有关CAN总线的应用开发,普通的收发功能都可以实现没问题,但考虑到系统可靠性的问题,想试试模拟出CAN总线上可能出现的故障模式。首先试的是CAN总线突然断开的问题,也就是TM4C单片机作为一个节点与总线突然断开了,我用了USB转CAN转换器,首先让单片机一直周期性地发送数据,我电脑通过转换器能一直接收到,然后我突然拔掉USB线。这时候通过CCS观察寄存器的值,CANSTS寄存器 是0x00000060 ,而CANERR寄存器是0x00000080.也就是说CAN模块处于被动错误状态 ,且是发送错误计数器到了128就不变了。

使用特权

评论回复

相关帖子

沙发
lium| | 2020-7-5 18:22 | 只看该作者

什么意思?不是很明白你说的什么,能再解释一下这个现象吗

使用特权

评论回复
板凳
chuxh| | 2020-7-24 18:20 | 只看该作者
CAN模块应该一直出错

使用特权

评论回复
地板
supernan|  楼主 | 2020-7-24 18:28 | 只看该作者
并且到busoff的状态啊,但计数器到了128就不再增加了

使用特权

评论回复
5
supernan|  楼主 | 2020-7-24 18:34 | 只看该作者
BOFF位也是0.而且LEC位并没有给出上一个错误的模式

使用特权

评论回复
6
houcs| | 2020-7-24 18:37 | 只看该作者
是否可以这样理解,usb断开后,can被动错误,发送计数器累加计数,计数到128后,can自动纠正错误,重新正常发送,哪怕你接收端是离线的。

使用特权

评论回复
7
supernan|  楼主 | 2020-7-24 18:42 | 只看该作者
我设置的发送can报文的周期是20ms,拔掉usb口之后,状态寄存器和错误计数寄存器瞬间变成了上述值。错误计数不应该是慢慢变化的吗,单片机为什么错误计数累加得这么快?

使用特权

评论回复
8
morrisk| | 2020-7-24 18:47 | 只看该作者
单片机为什么自动纠错?

使用特权

评论回复
9
supernan|  楼主 | 2020-7-24 18:51 | 只看该作者
按照can协议不应该一直累加直到busoff吗?

使用特权

评论回复
10
hanwe| | 2020-7-24 18:54 | 只看该作者
你这个提问太高大上,没搞过can,只能是爱莫能助了。

使用特权

评论回复
11
supernan|  楼主 | 2020-7-24 18:57 | 只看该作者

唉,还是没有什么结果,算了,多谢大家啦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

730

主题

10412

帖子

6

粉丝