打印
[技术问答]

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

[复制链接]
1150|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 | 只看该作者
参考一下官方的例子。

使用特权

评论回复
5
gejigeji521| | 2019-4-30 10:02 | 只看该作者
可以实测一下。

使用特权

评论回复
6
BigLeo8| | 2019-4-30 14:27 | 只看该作者

使用特权

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

使用特权

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

本版积分规则

8

主题

49

帖子

1

粉丝