我一直在使用 dsPIC33CH128MP506 进行一些 CANbus
通信。
它能够进行CAN-FD,并且有两个独立的波特率分频器,用于标称波特率和数据波特率。它们是:C1NBTCFGH
内的BRP(波特率预分频器)(CAN标称位时间配置寄存器高电平)
和
C1DBTCFGH内的BRP(波特率预分频器)(CAN数据位时间配置寄存器高电平)
两者的范围均为1 - 256。
CANCLKCON(CAN时钟控制寄存器)中还有CANCLKDIV(CAN时钟分频器选择位),其范围为1 - 128。
据我所知,CANCLKDIV 什么也没做。我只使用普通的 CAN,而不是 CAN-FD,C1NBTCFGH 内的 BRP 可以做我期望它做的事情。 我花了一点时间才弄清楚发生了什么,因为波特率太高了。
微控制器是从以前的混合设计中开发的。处理器是 16 位处理器,但 CAN 模块实际上具有 32 位寄存器,其中一对 16 位寄存器以“H”和“L”结尾。我怀疑某些寄存器的某些部分最终未被使用,但这没有被记录下来。
我想知道是否有人见过这样的东西,或者我错过了什么?