5728芯片CAN模块寄存器的详细介绍
查阅了很多资料没有查阅到关于5728芯片CAN模块寄存器的介绍,希望通过本文能给做CAN驱动的后来者有一点参考意义,我也是刚接触CAN模块有些不足请各位多多指正。
由下图所示是CAN模块初始化流程图
首先要开始初始化,设置CAN位时间,然后配置message objects, 完成初始化。
1.开始初始化
首先要控制DCAN_CTL 寄存器,该寄存器是CAN模块的总控制器,很多配置通过配置DCAN_CTL 寄存器相应的位才能对相应的CAN配置寄存器继续配置,里面主要有对DMA,中断,配置改变使能,初始化模式等功能的设置功能。
在设置初始化模式前先设置一下SWR位对CAN模块进行重置。
在这里我们首先使用它的初始化模式 将该模式位设置为初始化模式
设置完初始化模式位后对CCE位进行设置只有设置了CCE位后才是对配置寄存器进行配置
配置完CCE位后通过读取INIT初始模块位来判断是否已经进入了初始化模式,接着进行下一步操作。
2. 配置CAN位时间
在告诉模块我们已经要进行初始化配置后我们首先配置CAN的位时间,而CAN的位时间由下面的DCAN_BTR寄存器进行配置。
DCAN_BTR寄存器主要对CAN模块的通信速率进行设置
CAN 位时间可编程在8到25个时间量子之间
CAN模块的时间量子可被编程在1到1024个CAN_CLK时间周期的范围
CAN时间分为四个段