看了很多资料,都迷迷糊糊的。
整理了一下,附件是在网上找的3篇文章里面的计算方法,和周立功的波特率计算软件。 https://static.assets-stash.eet-china.com/album/old-resources/2008/10/30/5dbafbd8-0822-4972-857a-e4821d5db296.rar
CAN总线有两个定时器。
定时寄存器0的位
7 6 5 4 3 2 1 0
SJW.1 SJW.0 BRP.5 BRP.4 BRP.3 BRP.2 BRP.1 BRP.0
定时寄存器1的位
7 6 5 4 3 2 1 0
SAM TSEG2.2 TSEG2.1 TSEG2.0 TSEG1.3 TSEG1.2 TSEG1.1 TSEG1.0
CAN系统时钟公式
tscl=2*tclk*(32*BRP.5+16*BRP.4+8*BRP.3+4*BRP.2+2*BRP.1+BRP.0+1)
其中tclk=1/晶振频率
同步跳转宽度 tSJW="tscl"*(2*SJW.1+SJW.0+1)
位周期T=tSYNCSEG+tTSEG1+tTSEG2
tTSEG1=tscl*(8*TSEG1.3+4*TSEG1.2+2*TSEG1.1+TSEG1.0+1)
tTSEG2=tscl*(4*TSEG2.2+2*TSEG2.1+TSEG2.0+1)
比如定时器0为0x31 定时器1为0x1c,那么波特率为10K
周立功有篇文章就是讲这个的,这个和整个系统的优化有很大的关系的。
用户377235 2013-10-13 11:04
用户1544101 2012-9-4 16:08
用户409995 2012-5-1 13:49
用户330599 2011-5-2 23:33
jizzll_617398179 2008-12-6 15:36
用户1411772 2008-11-27 15:10
jizzll_617398179 2008-10-30 11:27