硬汉嵌入式论坛

 找回密码
 立即注册
查看: 261|回复: 3
收起左侧

[CAN/FDCAN] H743中FDCAN相关错误寄存器ECR和状态寄存器PSR

[复制链接]

57

主题

88

回帖

259

积分

高级会员

积分
259
发表于 2024-2-2 14:19:58 | 显示全部楼层 |阅读模式
请教:

当CAN总线发生错误时,ECR和PSR相关位会发生变化,在ECR中,读该寄存器会复位CEL域,但其它的域怎么样才能复位呢;PSR的状态位能复位不?

谢谢!
回复

使用道具 举报

8

主题

157

回帖

181

积分

初级会员

积分
181
发表于 2024-2-2 14:37:40 | 显示全部楼层
在FDCAN(Flexible Data-Rate Controller Area Network)中,当CAN总线发生错误时,ECR(Error Counter Register)和PSR(Protocol Status Register)相关的位会发生变化。

ECR寄存器复位CEL域:读取ECR寄存器会自动复位CEL(Error Logging)域。CEL域包含错误计数器的低8位,用于记录CAN总线上的错误次数。通过读取ECR寄存器可以获取这些错误计数器的值,并将CEL域复位为0。但是,其他域如TEC(Transmit Error Counter)和REC(Receive Error Counter)不能直接复位,需要进行特定操作才能重置它们的值。

PSR寄存器状态位复位:PSR寄存器包含了一些状态位,用于指示CAN总线的状态和错误情况。这些状态位包括错误状态、仲裁丢失、接收溢出等。当CAN总线发生错误时,这些状态位会更新。但是,这些状态位通常不会自动复位,需要手动进行复位操作来清除它们的值。

具体的复位操作取决于使用的FDCAN控制器和相应的软件库。一般而言,通过写入特定的值或调用相应的函数来清除PSR寄存器中的状态位。请参考相关的FDCAN文档和软件库手册,以了解如何正确地复位PSR寄存器中的状态位。

需要注意,对于TEC和REC计数器,通常有硬件机制或软件功能可以在达到一定阈值时自动进行重置。这样可以及时处理错误情况并恢复CAN总线的正常运行。具体的阈值和重置机制也会根据不同的FDCAN控制器而有所不同。
回复

使用道具 举报

57

主题

88

回帖

259

积分

高级会员

积分
259
 楼主| 发表于 2024-2-2 15:07:53 | 显示全部楼层
yunqi 发表于 2024-2-2 14:37
在FDCAN(Flexible Data-Rate Controller Area Network)中,当CAN总线发生错误时,ECR(Error Counter Reg ...

最后一句中 “需要注意,对于TEC和REC计数器,通常有硬件机制或软件功能可以在达到一定阈值时自动进行重置。这样可以及时处理错误情况并恢复CAN总线的正常运行。具体的阈值和重置机制也会根据不同的FDCAN控制器而有所不同。”

不知道H743的ECR中的TEC和REC重置机制哪里有提到?

谢谢!
回复

使用道具 举报

8

主题

157

回帖

181

积分

初级会员

积分
181
发表于 2024-2-3 09:35:24 | 显示全部楼层
twodiamond 发表于 2024-2-2 15:07
最后一句中 “需要注意,对于TEC和REC计数器,通常有硬件机制或软件功能可以在达到一定阈值时自动进行重 ...

你可试试RCC复位CAN。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 07:12 , Processed in 0.200115 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表