CAN波特率计算工具
本帖最后由 hoop 于 2022-3-19 14:16 编辑最近偶得一个CAN波特率计算工具,分享给有需要的朋友
注意:工具好像在某些Win7系统上运行不起来,我也没找到原因。且工具非本人开发,因此不具备维护及后续支持能力哦。不过可以一起分享探讨使用心得。
如下在403A上的使用示例
1)选择CAN Bit Rate
2)设定波特率及可容忍的偏差
本例设置1000K且不允许偏差
3)设定时钟源及采样点
Frequencies:403A的HCLK=240M,PCLK=120M,图中的Frequencies为CAN时钟,其由120M的PCLK分频获得,因此可选择60/40/30/24/20这些选项;
Nominal sample piont:通常1000K波特率时采样点设定在75%;
Nominal bit duration:由实际项目需求来做限定,本例不做实际筛选,设定在8~25之间。
4)获取计算结果
如下图工具将会计算出各种符合要求的配置
5)选用计算出来的配置值
结合1≤BRP≤0x400,1≤TSEG1≤16,1≤TSEG2≤8,1≤SJW≤4,可以筛选出最终符合要求的选项
本例实际最终选用图示中的BRP=5(因为PCLK到Frequencies有一个2分频,因此实际最终BRP为5*2),TSEG1=8,TSEG2=3,SJW=3
故应用到代码中为
/* can baudrate, set baudrate = pclk/(baudrate_div *(3 + bts1_size + bts2_size)) */
can_baudrate_struct.baudrate_div = 10;
can_baudrate_struct.rsaw_size = CAN_RSAW_3TQ;
can_baudrate_struct.bts1_size = CAN_BTS1_8TQ;
can_baudrate_struct.bts2_size = CAN_BTS2_3TQ;
can_baudrate_set(CAN1, &can_baudrate_struct);
这个工具对于配置CAN参数很实用,感谢分享。 我也没找到原因 看起来不错的样子 can位时间,sync,bps1和bps2的长度关系有哪些限制? sync固定为1,BS1要大于BS2,采样点位于BS1末尾,整体波特率设定遵循采样点位于:
75%位置(当波特率>800K时)
80%位置(当500K<波特率≤800k时)
87.5%位置(当波特率≤500K时) 在电脑上就运行不起来
我用的win7 64位系统
还没有找到原因吗?还是发现啥?
lajfda001 发表于 2021-12-13 15:22
还没有找到原因吗?还是发现啥?
抱歉,之前跟开发人员确认过,说是个别win7系统插件不足。他也不愿意维护处理。
如果你的电脑用不了的话,就去网上下载一个其他类似工具吧。搜索“CAN波特率计算工具”还是有一大堆软件的。 我用ATF103下载程序,can通信失败,不知道啥原因,stm32f103就没事 qianye1994 发表于 2021-12-17 09:04
我用ATF103下载程序,can通信失败,不知道啥原因,stm32f103就没事
ATF103是?建议你先对比时钟是否有差异 hoop 发表于 2021-12-18 13:49
ATF103是?建议你先对比时钟是否有差异
写错了,是AT32F403A 这个,挺好啊
页:
[1]