完善资料让更多小伙伴认识你,还能领取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 可以做我期望它做的事情。 我花了一点时间才弄清楚发生了什么,因为波特率太高了。 微控制器是从以前的混合设计中开发的。处理器是 16 位处理器,但 CAN 模块实际上具有 32 位寄存器,其中一对 16 位寄存器以“H”和“L”结尾。我怀疑某些寄存器的某些部分最终未被使用,但这没有被记录下来。 我想知道是否有人见过这样的东西,或者我错过了什么? |
|
相关推荐
1个回答
|
|
CAN时钟分频器在CANbus模块上不执行任何操作的原因是因为您只使用普通的CAN,而不是CAN-FD。在普通的CAN模式下,数据传输速率由CAN标称位时间配置寄存器中的BRP(波特率预分频器)控制。所以即使CANCLKCON中的CANCLKDIV被设置,它也不会对CAN总线的传输速率产生影响。
在您的情况下,您只需要使用C1NBTCFGH内的BRP来控制标称波特率,它可以执行您所期望的任务。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
852 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
592 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
705 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
926 浏览 2 评论
657 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12009 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 09:11 , Processed in 0.647440 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号