找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3095|回复: 0
收起左侧

CAN波特率设置

[复制链接]
ID:274692 发表于 2018-1-11 10:34 | 显示全部楼层 |阅读模式
CAN时钟源的选择有两种,一种为总线时钟,一种为外接时钟
波特率计算公式:F(Baud) = F/(BRP* (1+TSEG2+TSEG1))
波特率设置相关寄存器
7
6
5
4
3
2
1
0
SJW1
SJW0
BRP5
BRP4
BRP3
BRP2
BRP1
BRP0
Table1 CANBTR0
SJW1
SJW0
Synchronization  Jump Width
0
0
1  Tq clock cycle
0
1
2  Tq clock cycle
1
0
3  Tq clock cycle
1
1
4 Tq clock cycle
Table2 SJW
BRP5
BRP4
BRP3
BRP2
BRP1
BRP0
Prescaler value
0
0
0
0
0
0
1
0
0
0
0
0
1
2
0
0
0
0
1
1
3
0
0
0
1
1
1
4
..
..
..
..
..
..
..
1
1
1
1
1
1
64
Table3 Baud Rate Prescaler
7
6
5
4
3
2
1
0
SAMP
TSEG22
TSEG21
TSEG20
TSEG13
TSEG12
TSEG11
TSEG10
Table4 CANBTR1
TSEG22
TSEG21
TSEG20
Time  Segment 2
0
0
0
1
0
0
1
2
..
..
..
...
1
1
0
7
1
1
1
8
Table5 TSEG2
TSEG13
TSEG12
TSEG11
TSEG10
Prescaler value
0
0
0
0
1
0
0
0
1
2
0
0
1
0
3
0
0
1
1
4
..
..
..
..
..
1
1
1
0
15
1
1
1
1
16
例程
1.        总线时钟40MHZ,设置CAN波特率为500KHZ
40MHZ/500KHZ=80
80 = BRP *(1+TSEG2+TSEG1) =10 * 8;
所以设置BRP =8,TSEG2=4,TSEG1=5. SJW=0x01对应寄存器值
CAN0BTR0=0x47;                                                                           
CAN0BTR1=0x43;
2.        总线时钟40MHZ,设置CAN波特率为250KHZ
40MHZ/250KHZ=16
80 = BRP *(1+TSEG2+TSEG1) =16 * 8;
所以设置BRP =8,TSEG2=4,TSEG1=5,SJW=0x01对应寄存器值
CAN0BTR0=0x4F;                                                                           
CAN0BTR1=0x43;

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表