共2条
1/1 1 跳转至页
,SJA1000,16MHz 在SJA1000电路中使用16MHz的晶振,
问
如何设置实际总线的通讯波特率?
SJA1000独立CAN控制器的CAN通讯波特率由寄存器BTR0、BTR1、晶振等参数共同决定。
计算一个在指定晶振频率下的SJA1000节点通讯波特率,实际上是计算SJA1000寄存器BTR0、BTR1的设置值,但手续非常繁琐,工作量很大,需要涉及计算CAN系统时钟周期(SYNC_SEG、TSEG1、TSEG2、SJW和NBT)。这是由CAN2.0基本规范所决定,主要是为了使在不同工作方式、通讯距离的CAN节点之间能够正常、可靠通讯。同时,计算得出的CAN通讯波特率也仅是针对一个具体数值范围内的通讯波特率;这意味着,标称通讯速率为100Kbps的CAN节点,一般可以与通讯速率为90Kbps-110Kbps的CAN节点正常通讯。
因此,我们建议直接采用国际CiA协会推荐的通讯波特率设置值。相关的设置值可以参考ZLGCAN产品的附录3内容;下表列出了部分CiA推荐的BTR0、BTR1设置值。
表 SJA1000标准波特率
Baudrate
( Kbps ) 晶振频率 = 16MHz 晶振频率 = 12MHz
BTR0 BTR1 BTR0 BTR1
10 31 1C 65 1C
20 18 1C 52 1C
50 09 1C 47 1C
100 04 1C 43 1C
125 03 1C 42 1C
250 01 1C 41 1C
500 00 1C 40 1C
800 00 16 40 16
1000 00 14 40 14
有关这一方面的理论资料,可以参考《确定SJA1000 CAN控制器的位定时参数》等相关文档;《单片机与嵌入式系统应用》等杂志也有相关的论文《CAN总线位定时参数的确定》等资料刊载。
答 1: 在LPC2294电路中使用11.0592 MHz的晶振在LPC2294电路中使用11.0592 MHz的晶振,
如何设置实际总线的通讯波特率?
答 2: re2*11.0592MHz的波特率
#define BPS_5K 0x1c0113UL
#define BPS_10K 0x1c0089UL
#define BPS_20K 0x1c0044UL
#define BPS_50K 0x1c001bUL
#define BPS_100K 0x1c000dUL
#define BPS_125K 0x1c000aUL
#define BPS_250K 0x1b0005UL
#define BPS_500K 0x1b0002UL
#define BPS_800K 0x1a0001UL
#define BPS_1000K 0x170001UL
SJA1000独立CAN控制器的CAN通讯波特率由寄存器BTR0、BTR1、晶振等参数共同决定。
计算一个在指定晶振频率下的SJA1000节点通讯波特率,实际上是计算SJA1000寄存器BTR0、BTR1的设置值,但手续非常繁琐,工作量很大,需要涉及计算CAN系统时钟周期(SYNC_SEG、TSEG1、TSEG2、SJW和NBT)。这是由CAN2.0基本规范所决定,主要是为了使在不同工作方式、通讯距离的CAN节点之间能够正常、可靠通讯。同时,计算得出的CAN通讯波特率也仅是针对一个具体数值范围内的通讯波特率;这意味着,标称通讯速率为100Kbps的CAN节点,一般可以与通讯速率为90Kbps-110Kbps的CAN节点正常通讯。
因此,我们建议直接采用国际CiA协会推荐的通讯波特率设置值。相关的设置值可以参考ZLGCAN产品的附录3内容;下表列出了部分CiA推荐的BTR0、BTR1设置值。
表 SJA1000标准波特率
Baudrate
( Kbps ) 晶振频率 = 16MHz 晶振频率 = 12MHz
BTR0 BTR1 BTR0 BTR1
10 31 1C 65 1C
20 18 1C 52 1C
50 09 1C 47 1C
100 04 1C 43 1C
125 03 1C 42 1C
250 01 1C 41 1C
500 00 1C 40 1C
800 00 16 40 16
1000 00 14 40 14
有关这一方面的理论资料,可以参考《确定SJA1000 CAN控制器的位定时参数》等相关文档;《单片机与嵌入式系统应用》等杂志也有相关的论文《CAN总线位定时参数的确定》等资料刊载。
答 1: 在LPC2294电路中使用11.0592 MHz的晶振在LPC2294电路中使用11.0592 MHz的晶振,
如何设置实际总线的通讯波特率?
答 2: re2*11.0592MHz的波特率
#define BPS_5K 0x1c0113UL
#define BPS_10K 0x1c0089UL
#define BPS_20K 0x1c0044UL
#define BPS_50K 0x1c001bUL
#define BPS_100K 0x1c000dUL
#define BPS_125K 0x1c000aUL
#define BPS_250K 0x1b0005UL
#define BPS_500K 0x1b0002UL
#define BPS_800K 0x1a0001UL
#define BPS_1000K 0x170001UL
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |