这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » CAN时钟分频器在CANbus模块上不执行任何操作的原因?

共2条 1/1 1 跳转至

CAN时钟分频器在CANbus模块上不执行任何操作的原因?

工程师
2024-04-22 09:57:20     打赏

我一直在使用 dsPIC33CH128MP506 进行一些 CANbus 通信。

它能够进行CAN-FD,并且有两个独立的波特率分频器,用于标称波特率和数据波特率。它们是:C1NBTCFGH
内的BRP(波特率预分频器)(CAN标称位时间配置寄存器高电平)

C1DBTCFGH内的BRP(波特率预分频器)(CAN数据位时间配置寄存器高电平)
两者的范围均为1 - 256。

CANCLKCON(CAN时钟控制寄存器)中还有CANCLKDIV(CAN时钟分频器选择位),其范围为1 - 128。

据我所知,CANCLKDIV 什么也没做。我只使用普通的 CAN,而不是 CAN-FD,C1NBTCFGH 内的 BRP 可以做我期望它做的事情。 我花了一点时间才弄清楚发生了什么,因为波特率太高了。




关键词: CAN     分频器     CANbus     微控制器    

助工
2024-04-22 09:57:37     打赏
2楼

CAN时钟分频器在CANbus模块上不执行任何操作的原因是因为您只使用普通的CAN,而不是CAN-FD。在普通的CAN模式下,数据传输速率由CAN标称位时间配置寄存器中的BRP(波特率预分频器)控制。所以即使CANCLKCON中的CANCLKDIV被设置,它也不会对CAN总线的传输速率产生影响。

在您的情况下,您只需要使用C1NBTCFGH内的BRP来控制标称波特率,它可以执行您所期望的任务。 


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]