打印

stm32f103倍频后如何设置CAN的波特率

[复制链接]
4503|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hai198771|  楼主 | 2010-9-15 18:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁能给讲解一下,如何在stm32f103下设置CAN的波特率?就是 下面这几个值如何设置。
CAN_InitStructure.CAN_SJW=CAN_SJW_1tq; ?
  CAN_InitStructure.CAN_BS1=CAN_BS1_8tq; ?  
  CAN_InitStructure.CAN_BS2=CAN_BS2_7tq; ?
  CAN_InitStructure.CAN_Prescaler=1;

如果有资料可以发到我邮箱里hai198771@163.com
非常感谢!
沙发
buermentu| | 2013-7-31 11:15 | 只看该作者
这个是别人的,我用的是32f303 已经调通。你参考一下,当时我就参考他的。


这是我在网上找到的资料,不敢私藏,拿来共享一下。首先,这个分频系数CAN_Prescaler肯定是没问题的,我试过了。但是其他几个参数我按照这里面的改,可仍然无法通讯。而且那个分频系数也是试了好几次才成功,不知道为什么。希望高手能来解决。

CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;

CAN_InitStructure.CAN_BS1=CAN_BS1_8tq;
CAN_InitStructure.CAN_BS2=CAN_BS2_7tq;
CAN_InitStructure.CAN_Prescaler=1;

每一位的Tq数目 = 1 (固定SYNC_SEG) +  8 (BS1) + 7 (BS2) = 16

如果CAN时钟是 8 MHz : (8M / 1 ) / 16 = 500K

其中:
1 为分频系数
16 为每一位的Tq数目

为了设置为 100K, 把分频系数改为5即可, BS1 BS2 不变

每一位的Tq数目 = 1 (固定) +  8 (BS1) + 7 (BS2) = 16
如果CAN时钟是 8 MHz : (8M / 5 ) / 16 = 100K

如果想得到 1M 的波特率, CAN时钟仍然是 8 MHz的情况下, 分频系数不变

应该改变 BS1 BS2

CAN_InitStructure.CAN_BS1=CAN_BS1_5tq;
CAN_InitStructure.CAN_BS2=CAN_BS2_2tq;

每一位的Tq数目 = 1 (固定) +  5 (BS1) + 2 (BS2) = 8
如果CAN时钟是 8 MHz : (8M / 1 ) / 8 = 1000K




另外尽可能的把采样点设置为 CiA 推荐的值:

75%     when 波特率 > 800K
80%     when 波特率 > 500K
87.5%   when 波特率 <= 500K

所以对于 100K 的波特率(假定使用 8MHz 时钟)
可以修改该BS1 BS2 为:

CAN_InitStructure.CAN_Prescaler=5;
CAN_InitStructure.CAN_BS1=CAN_BS1_13tq;
CAN_InitStructure.CAN_BS2=CAN_BS2_2tq;

(1+13) / (1+13+2) = 87.5%

所以对于 500K 的波特率(假定使用 8MHz 时钟)
可以修改该BS1 BS2 为:

CAN_InitStructure.CAN_Prescaler=1;
CAN_InitStructure.CAN_BS1=CAN_BS1_13tq;
CAN_InitStructure.CAN_BS2=CAN_BS2_2tq;

(1+13) / (1+13+2) = 87.5%

所以对于 1000K 的波特率(假定使用 8MHz 时钟)
可以修改该BS1 BS2 为:

CAN_InitStructure.CAN_Prescaler=1;
CAN_InitStructure.CAN_BS1=CAN_BS1_5tq;
CAN_InitStructure.CAN_BS2=CAN_BS2_2tq;

(1+5) / (1+5+2) = 75%

个人见解, 仅供参考。

使用特权

评论回复
板凳
gonggu8181| | 2013-8-1 07:37 | 只看该作者
谢谢分享

使用特权

评论回复
地板
worldsing| | 2013-8-1 08:51 | 只看该作者
2楼正解

使用特权

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

本版积分规则

0

主题

4

帖子

1

粉丝