问:如何根椐CAN波特率计算公式计算相关参数(dsPIC30F系列)
答:
1.时间份额Tq = (2×(BRP+1))/ Fcan
式中:Fcan 为Fcy 或4Fcy取决于CAN控制寄存器C1CTRL中的CANCKS 位的设置。
2.时间份额的频率FTq = 1/Tq。
3.标称位时间 N×Tq,式中N =8~25,该值随通讯速率不同而不同
4.波特率 Fbaud = 1 /(N×Tq)
5.波特率预分频比 BRP =( Tq × Fcan)/2 – 1
假如系统的指令周期时钟FCY = 30 000 000,设CANCKS = 1,令Fcan = FCY,波特率设为 Fbaud = 1 000 000。
那么在最大速率下,波特率预分频比 BRP = 0,则 Tq = (2×(BRP+1))/ Fcan = 2 / 30M,
FTq = 1/Tq = 15M,根椐波特率公式Fbaud = 1 /(N×Tq)可算出 N = 15。知道了N,就可进行相应的寄存器设置了,如:
C1CFG1bits.SJW=00; -->1Tq
C1CFG2 = 0x03F5; -->SEG1PH=6Tq, SEG2PH=3Tq, PRSEG=5Tq