lpc2000系列单片机CAN总线的应用中需要注意的几个问题
1、发送相关问题
a)模式用必须用SRR
b)发送时必须只用一个缓冲区
2、波特率相关问题
a)CAN规范中一个bit分四段Sync_Seg,Prop_Seg,Phase_Seg1,Phase_Seg2
b)Sync_Seg固定为1
c)LPC2000中的TSEG1=Prop_Seg+Phase_Seg1,TSEG2=Phase_Seg2
d)SJW应该等于Phase_Seg1但不能超过4
e)Fvpb就是pclk
f)Prop_Seg主要给传输延迟补偿,应尽可能长
g)Phase_Seg1和Phase_Seg2要么相等,要么Phase_Seg1+1=Phase_Seg2
h)Phase_Seg2也应该考虑长一点,至少要保证cpu能在这段时间里处理完要处理的工作。
i)如果想要获得较高的波特率,pclk要足够高,倘若用pclk 11059200则波特率大概不会超过60kbps,所以要想获得较高的波特率必须倍频。
j)波特率高时sam=0,波特率低时sam=1
k)tja1050有波特率下限,最好工作在60k以上,15~60k也是可以工作的但有可能出错。tja1040的下限是40k。该下限由
TransmitData(TXD)dominanttime-outfunction和can规范本身决定。