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

[复制链接]
2701|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 | 显示全部楼层
库里面的例子呀
 楼主| 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

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部