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 |
500Kbps | 0x05 | 0x1C | 400Kbps | 0x05 | 0xFA | 250Kbps | 0x0B | 0x1C | 200Kbps | 0x05 | 0xFA | 125Kbps | 0x17 | 0x1C | 100Kbps | 0x1D | 0x1C | 83.33Kbps | 0x17 | 0x6F | 80Kbps | 0x97 | 0xFF | 66.66Kbps | 0x1D | 0x6F | 50Kbps | 0x3B | 0x1C | 40Kbps | 0xAF | 0xFF
|
此处引自官网资源:https://linkosemi.wiki.zoho.com. ... #181578000000074004
|