新闻中心

EEPW首页>嵌入式系统>设计应用> 高级外设CAN之波特率计算

高级外设CAN之波特率计算

作者: 时间:2016-11-27 来源:网络 收藏
在做技术支持的时候,经常接到这样的客户电话,“在使用开发板上的CAN通信时,VPB时钟为和光盘例程里的不一样,CAN波特率怎么设置?我们希望用到的CAN波特率有5K、10K、50K、500K、1000K等”。CAN波特率设置不正确将导致CAN无法通信,于是,就波特率计算的方法我写了这篇文章,以后再有客户问这类问题,便可以直接把这篇文章发给客户。

CAN波特率的计算公式如下:

本文引用地址://m.amcfsurvey.com/article/201611/322217.htm

其中tcan是CAN系统时钟的一个周期,tbit是一个CAN位周期。

以VPB时钟Fpclk=24MHz,选择采样点位置在85%左右为佳,即使TESG1/(TESG1+TESG2)在85%左右,2

BPS_1000K0x140002
BPS_800K0x160002
BPS_500K0x1C0002
BPS_250K0x1C0005
BPS_125K0x1C000B
BPS_100K0x1C000E
BPS_50K0x1C001D
BPS_20K0x1C004A
BPS_10K0x1C0095

现在以500Kbps为例,首先得到(3 + TESG1 + TESG2) *(BRP+1)= 48, 满足TESG1 /(TESG1 + TESG2)在85%左右,2

第一组采样点在88%左右,第二组采样点在84%左右,所以我们取第二组,得到TESG1=11,TESG2=2,BRP=2,代入得到CANnBTR寄存器值为0x1C0002。
对于另一个常用的Fpclk=11.0592MHz,同样可以得出相应CANnBTR寄存器值,在此给出部分值,您可以根据自己的需要计算对应的值。
500k0x170001
250k0x170003
125k0x170007
100k0x170009
50k0x1700013
20k0x170031
10k0x170064
5k0x1700c8



评论


技术专区

关闭