打印

请教CAN波特率最优设置问题

[复制链接]
2237|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
seawwh|  楼主 | 2010-11-29 18:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初学STM32 CAN,发现同一个波特率(1M)可以有不同的设置办法:
  哪一个是最优的设置呢?

const struct {
  u8   SJW;
  u8   BS1;
  u8   BS2;
  u8   PreScale;
} CAN_InitTab[6]= {  //CLK=36MHz
  
  CAN_SJW_1tq, CAN_BS1_3tq  , CAN_BS2_2tq,   6,        // 1M    36/6/6 =1M    (1+3 )/(1+3+2 )=0.66
  CAN_SJW_1tq, CAN_BS1_5tq  , CAN_BS2_3tq,   4,        // 1M    36/4/9 =1M    (1+5 )/(1+5+3 )=0.66
  CAN_SJW_1tq, CAN_BS1_6tq  , CAN_BS2_2tq,   4,        // 1M    36/4/9 =1M    (1+6 )/(1+6+2 )=0.77
  CAN_SJW_1tq, CAN_BS1_8tq  , CAN_BS2_3tq,   3,        // 1M    36/3/12=1M    (1+ 8)/(1+8+3 )=0.75
  CAN_SJW_1tq, CAN_BS1_12tq , CAN_BS2_5tq,   2,        // 1M    36/2/18=1M    (1+12)/(1+12+5)=0.72
  CAN_SJW_1tq, CAN_BS1_13tq , CAN_BS2_4tq,   2,        // 1M    36/2/18=1M    (1+13)/(1+13+4)=0.77
}
沙发
airwill| | 2010-11-29 21:17 | 只看该作者
不认为哪一个设定一定是最好, 这涉及到采样和噪声干扰方面的细节, 我采用样例程序中推荐的参数来设置.

使用特权

评论回复
板凳
seawwh|  楼主 | 2010-11-29 23:15 | 只看该作者
请问2楼,何处可以找到ST官方的配置参数?  thx!

使用特权

评论回复
地板
airwill| | 2010-11-30 14:21 | 只看该作者
库里面的例子呀

使用特权

评论回复
5
seawwh|  楼主 | 2010-12-2 22:06 | 只看该作者
在ST提供的CAN库函数version V3.3.0中1M速率的参数配置为:
  CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;
  CAN_InitStructure.CAN_BS1 = CAN_BS1_3tq;
  CAN_InitStructure.CAN_BS2 = CAN_BS2_5tq;
  CAN_InitStructure.CAN_Prescaler = 4;
但是在本论坛的帖子:<求教:关于STM32的CAN的波特率设置>
https://bbs.21ic.com/viewthread.php?tid=109304&highlight=CAN
中 starm有如下的表述:

另外尽可能的把采样点设置为 CiA 推荐的值:
75%     when 波特率 > 800K
80%     when 波特率 > 500K
87.5%   when 波特率 <= 500K

计算一下ST的采样点=(1+3)/(1+3+5)=44%  显然和starm的提法不太和谐.
哪一个更合适呢?

使用特权

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

本版积分规则

145

主题

368

帖子

0

粉丝