[技术问答]

官方 M480 CAN 总线的位时间计算是不是有问题

[复制链接]
841|6
手机看帖
扫描二维码
随时随地手机跟帖
gydgds963|  楼主 | 2019-4-29 19:34 | 显示全部楼层 |阅读模式
r:\1.png

上图CAN总线波特率设置为1000000时,得到的配置.

HCLK=192MHz, PCLK0=96MHz
CAN总线时间片的倒数=PCLK0/(BRP+1)=96MHz/(5+1)=16MHz

1位时间等于16个时间片tq.

2+11+4=17 ... 1MHz波特率多了1个tq. 不是1MHz.

使用特权

评论回复
gydgds963|  楼主 | 2019-4-29 19:36 | 显示全部楼层
图不知道怎么发, CAN_BTIME 和 CAN_BRPE 寄存器值为:


BRP=5
SJW=1
TSeg1=0X0A
TsEG2=0X03

ERPE=0

使用特权

评论回复
xuanhuanzi| | 2019-4-29 22:43 | 显示全部楼层
直接可以截图,然后粘贴。

使用特权

评论回复
643757107| | 2019-4-29 23:33 | 显示全部楼层
参考一下官方的例子。

使用特权

评论回复
gejigeji521| | 2019-4-30 10:02 | 显示全部楼层
可以实测一下。

使用特权

评论回复
BigLeo8| | 2019-4-30 14:27 | 显示全部楼层

使用特权

评论回复
gydgds963|  楼主 | 2019-4-30 14:42 | 显示全部楼层
新唐给的库文件 can.c 里 CAN_SetBaudRate() 函数, 最后面的处理应该是有问题. 官方的库文件, 还是等新唐自己更新修改吧.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

46

帖子

1

粉丝