LKS08x Can 模块常用波特率配置
根据实际应用需求,修改 LKS08x Can 模块的 BTR0 和 BTR1 寄存器,实现波特率配置。
BTR0 设置传输基本时间单元参数 TQ:TQ = 2 * Tclk * (BTR0[5:0] + 1) LKS08x 时钟最快为 96M,对应的 Tclk 为 10.4ns,TQ 最大值为 1.3312us。
BTR1 设置波特率;同时,可调节 BIT 信息中各个部分的宽度(TSEG1、TSEG2 和 Sync.Seg), 找到理想采样点。
SEG1 段时间计算公式:Tseg1 = TQ*(BTR1[3:0] + 1) SEG2 段时间计算公式:Tseg2 = TQ*(BTR1[6:4] + 1)
波特率计算公式为:Can Baudrate = TQ * (1 + Tseg1 + Tseg2)
BTR0[7:6]是 SJW 位,其为容差范围的配置寄存器。在一定波特率下通讯的各个设备,允许多大的通讯时间误差存在。
总线下界容差 < 总线波特率 < 总线上限容差容差计算公式为:TQ * (SJW + 1)
BTR1[7]是 SAM 位,其位采样次数配置寄存器。0:一次;1:三次。根据实际使用情况配置即可,此位不参与波特率计算。
基于 LKS08x 芯片,常规波特率索引值如下:
Can 波特率 | BTR0 | BTR1 |
1Mbps | 0x05 | 0x14 |
800Kbps | 0x05 | 0x16 |
666Kbps | 0x85 | 0xB6 |