打印
[CAN-bus/DeviceNet]

求助!希望老师能给一个详细的回答!

[复制链接]
2383|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cao_chang|  楼主 | 2007-1-5 15:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
尊敬的老师您们好!
    我在学习ARM_CAN中遇到了这样一个问题!希望老师能给我一个答复!谢谢老师!
 就是CAN总线的波特率的设置问题
CANstarter-ii的指南中的CAN常见问题解答我也看过,但还是不明白。
就是在实际的应用中,SAM  ,TSEG2,TSEG1,SJW ,BRP等这些值的大小到底是怎么确定的,我按照书中提供的范围进行改动,运行后,就会出现报错情况。不知道这些数据到底是怎么确定下来的,如下面的这段程序,这些数据到底是怎样定下来的呢?希望老师能给我一个具体的解释!谢谢老师!
我的邮箱是ccy_7128@163.com


//当VPB时钟为4*11059200Hz时,常用波特率与总线时序器对照表,如果VPB时钟不等,请自己计算出总线时序器的值
//BPS = (SAM << 23)|(TSEG2 << 20)|(TSEG1 << 16)|(SJW << 14)| BRP
#define    BPS_5K            (1 << 23)|(1 << 20)|(6 << 16)|(0 << 14)| 879
#define    BPS_10K            (1 << 23)|(1 << 20)|(6 << 16)|(0 << 14)| 439
#define    BPS_20K            (1 << 23)|(1 << 20)|(6 << 16)|(0 << 14)| 219
#define    BPS_40K            (1 << 23)|(1 << 20)|(6 << 16)|(0 << 14)| 109
#define    BPS_50K            (1 << 23)|(1 << 20)|(6 << 16)|(0 << 14)| 87
#define    BPS_80K            (1 << 23)|(1 << 20)|(4 << 16)|(0 << 14)| 68
#define    BPS_100K        (1 << 23)|(1 << 20)|(6 << 16)|(0 << 14)| 43
#define    BPS_125K        (0 << 23)|(1 << 20)|(4 << 16)|(0 << 14)| 43
#define    BPS_200K        (0 << 23)|(1 << 20)|(6 << 16)|(0 << 14)| 21
#define    BPS_250K        (0 << 23)|(1 << 20)|(4 << 16)|(0 << 14)| 21
#define BPS_400K        (0 << 23)|(1 << 20)|(6 << 16)|(0 << 14)| 10
#define BPS_500K        (0 << 23)|(1 << 20)|(4 << 16)|(0 << 14)| 10
#define BPS_666K        (0 << 23)|(1 << 20)|(2 << 16)|(0 << 14)| 10
#define BPS_800K        (0 << 23)|(1 << 20)|(1 << 16)|(0 << 14)| 10
#define    BPS_1000K        (0 << 23)|(1 << 20)|(1 << 16)|(0 << 14)| 8

相关帖子

沙发
zlgCAN| | 2007-1-6 08:55 | 只看该作者

请对照参考周立功网站《确定SJA1000 CAN控制器的位定时参数》

和《CAN2.0规范》中关于位定时的内容。

使用特权

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

本版积分规则

7

主题

9

帖子

0

粉丝