5728芯片CAN模块寄存器的详细介绍

查阅了很多资料没有查阅到关于5728芯片CAN模块寄存器的介绍,希望通过本文能给做CAN驱动的后来者有一点参考意义,我也是刚接触CAN模块有些不足请各位多多指正。

由下图所示是CAN模块初始化流程图

首先要开始初始化,设置CAN位时间,然后配置message objects, 完成初始化。

5728芯片CAN模块寄存器的详细介绍

1.开始初始化

首先要控制DCAN_CTL 寄存器,该寄存器是CAN模块的总控制器,很多配置通过配置DCAN_CTL 寄存器相应的位才能对相应的CAN配置寄存器继续配置,里面主要有对DMA,中断,配置改变使能,初始化模式等功能的设置功能。

5728芯片CAN模块寄存器的详细介绍

 在设置初始化模式前先设置一下SWR位对CAN模块进行重置。5728芯片CAN模块寄存器的详细介绍

在这里我们首先使用它的初始化模式 将该模式位设置为初始化模式

5728芯片CAN模块寄存器的详细介绍

 设置完初始化模式位后对CCE位进行设置只有设置了CCE位后才是对配置寄存器进行配置

5728芯片CAN模块寄存器的详细介绍

配置完CCE位后通过读取INIT初始模块位来判断是否已经进入了初始化模式,接着进行下一步操作。

2. 配置CAN位时间

在告诉模块我们已经要进行初始化配置后我们首先配置CAN的位时间,而CAN的位时间由下面的DCAN_BTR寄存器进行配置。

DCAN_BTR寄存器主要对CAN模块的通信速率进行设置

CAN 位时间可编程在8到25个时间量子之间

CAN模块的时间量子可被编程在1到1024个CAN_CLK时间周期的范围

5728芯片CAN模块寄存器的详细介绍

 CAN时间分为四个段