ZHCSQH8A September   2025  – October 2025 TCAN5102-Q1

ADVANCE INFORMATION  

  1.   1
  2. 特性
  3. 应用
  4. 说明
  5. 引脚配置和功能
  6. 规格
    1. 5.1 绝对最大额定值
    2. 5.2 ESD 等级
    3. 5.3 建议运行条件
    4. 5.4 热性能信息
    5. 5.5 电源特性
    6. 5.6 电气特性
    7. 5.7 时序要求
    8. 5.8 开关特性
    9. 5.9 I2C 总线时序要求
  7. 参数测量信息
  8. 详细说明
    1. 7.1 概述
    2. 7.2 功能方框图
    3. 7.3 特性说明
      1. 7.3.1  VDD
      2. 7.3.2  PROG 引脚
      3. 7.3.3  DIGFLTR 引脚
      4. 7.3.4  GPIOx 和引脚多路复用特殊功能
        1. 7.3.4.1 GPIO 同步
      5. 7.3.5  EEPROM
      6. 7.3.6  SPI 控制器
      7. 7.3.7  UART 控制器
      8. 7.3.8  I2C 控制器
        1. 7.3.8.1 I2C 总线卡滞恢复
      9. 7.3.9  PWM 控制器
      10. 7.3.10 CAN 收发器控制引脚
      11. 7.3.11 欠压锁定与未供电器件
    4. 7.4 器件功能模式
      1. 7.4.1 初始化模式
      2. 7.4.2 睡眠模式
      3. 7.4.3 正常模式
    5. 7.5 编程
      1. 7.5.1 通过 SPI 外设模式进行器件编程
      2. 7.5.2 CAN FD Light 协议
        1. 7.5.2.1 CAN 帧格式
      3. 7.5.3 消息 RAM (MRAM) 和 IP 使能
      4. 7.5.4 SPI 控制器
        1. 7.5.4.1 SPI 引脚
          1. 7.5.4.1.1 SPI 时钟 (SCLK)
          2. 7.5.4.1.2 外设输入控制器输出 (PICO)
          3. 7.5.4.1.3 外设输出控制器输入 (POCI)
          4. 7.5.4.1.4 片选 (CS 或 nCS)
        2. 7.5.4.2 SPI 时钟发生器
        3. 7.5.4.3 SPI 控制协议
          1. 7.5.4.3.1 SPI 写入示例 1
          2. 7.5.4.3.2 SPI 读取示例 1
      5. 7.5.5 UART 控制器
        1. 7.5.5.1 UART 波特率生成和分数分频值
        2. 7.5.5.2 UART 控制协议
          1. 7.5.5.2.1 UART 写入示例 1
          2. 7.5.5.2.2 UART 读取示例 1
      6. 7.5.6 I2C 控制器
        1. 7.5.6.1 I2C 波特率生成
        2. 7.5.6.2 I2C 总线卡滞恢复
        3. 7.5.6.3 I2C 控制协议
          1. 7.5.6.3.1 I2C 写入示例 1
          2. 7.5.6.3.2 I2C 读取示例 1
      7. 7.5.7 PWM 和梯形 PWM 斜坡曲线
        1. 7.5.7.1 梯形斜坡控制
          1. 7.5.7.1.1 占空比斜坡控制
          2. 7.5.7.1.2 开关频率斜坡控制
          3. 7.5.7.1.3 关断斜坡
        2. 7.5.7.2 PWM 时钟发生器
        3. 7.5.7.3 PWM 占空比
        4. 7.5.7.4 斜坡斜率和标度因子
          1. 7.5.7.4.1 占空比斜坡斜率
          2. 7.5.7.4.2 开关频率斜坡斜率
        5. 7.5.7.5 自动减速和停止条件
          1. 7.5.7.5.1 具有脉冲计数功能的自动减速关断斜坡
          2. 7.5.7.5.2 通过 GPIO 输入实现自动减速/关断斜坡
        6. 7.5.7.6 占空比斜坡示例
        7. 7.5.7.7 频率斜坡示例
        8. 7.5.7.8 静态开启示例
    6. 7.6 寄存器映射
      1. 7.6.1 器件寄存器
        1. 7.6.1.1  DEV_ID[y] 寄存器(偏移 = 0h + formula)[复位 = 0032303135414354h]
        2. 7.6.1.2  DEV_ID_REV 寄存器(偏移 = 8h)[复位 = 10h]
        3. 7.6.1.3  DEV_CMD 寄存器(偏移 = 9h)[复位 = 00h]
        4. 7.6.1.4  DEV_CFG_EN 寄存器(偏移 = Ah)[复位 = 00h]
        5. 7.6.1.5  DEV_CFG_BR 寄存器(偏移 = Bh)[复位 = 10h]
        6. 7.6.1.6  DEV_CFG_ID_0 寄存器(偏移 = Ch)[复位 = 00h]
        7. 7.6.1.7  DEV_CFG_ID_1 寄存器(偏移 = Dh)[复位 = 00h]
        8. 7.6.1.8  DEV_CFG_ID_BCST_0 寄存器(偏移 = Eh)[复位 = 00h]
        9. 7.6.1.9  DEV_CFG_ID_BCST_1 寄存器(偏移 = Fh)[复位 = 00h]
        10. 7.6.1.10 DEV_CFG_ID_BCST_MASK_0 寄存器(偏移 = 10h)[复位 = 00h]
        11. 7.6.1.11 DEV_CFG_ID_BCST_MASK_1 寄存器(偏移 = 11h)[复位 = 00h]
        12. 7.6.1.12 DEV_CFG_NVM_PROG_CODE 寄存器(偏移 = 12h)[复位 = 00h]
        13. 7.6.1.13 DEV_CFG_NVM_PROG 寄存器(偏移 = 13h)[复位 = 00h]
        14. 7.6.1.14 INT_CFG 寄存器(偏移 = 1Dh)[复位 = 00h]
        15. 7.6.1.15 DEV_IE_0 寄存器(偏移 = 1Eh)[复位 = 00h]
        16. 7.6.1.16 DEV_IE_1 寄存器(偏移 = 1Fh)[复位 = 00h]
        17. 7.6.1.17 MRAM_IP_CFG 寄存器(偏移 = 20h)[复位 = 00h]
        18. 7.6.1.18 IO_CFG_0 寄存器(偏移 = 21h)[复位 = 00h]
        19. 7.6.1.19 IO_CFG_1 寄存器(偏移 = 22h)[复位 = 00h]
        20. 7.6.1.20 IO_OE_0 寄存器(偏移 = 23h)[复位 = 00h]
        21. 7.6.1.21 IO_OE_1 寄存器(偏移 = 24h)[复位 = 00h]
        22. 7.6.1.22 IO_OD_0 寄存器(偏移 = 25h)[复位 = 00h]
        23. 7.6.1.23 IO_OD_1 寄存器(偏移 = 26h)[复位 = 00h]
        24. 7.6.1.24 IO_RE_0 寄存器(偏移 = 27h)[复位 = 00h]
        25. 7.6.1.25 IO_RE_1 寄存器(偏移 = 28h)[复位 = 00h]
        26. 7.6.1.26 IO_PU_0 寄存器(偏移 = 29h)[复位 = 00h]
        27. 7.6.1.27 IO_PU_1 寄存器(偏移 = 2Ah)[复位 = 00h]
        28. 7.6.1.28 IO_POL_0 寄存器(偏移 = 2Bh)[复位 = 00h]
        29. 7.6.1.29 IO_POL_1 寄存器(偏移 = 2Ch)[复位 = 00h]
        30. 7.6.1.30 IO_OUTPUT_0 寄存器(偏移 = 2Dh)[复位 = 00h]
        31. 7.6.1.31 IO_OUTPUT_1 寄存器(偏移 = 2Eh)[复位 = 00h]
        32. 7.6.1.32 IO_INPUT_0 寄存器(偏移 = 2Fh)[复位 = 00h]
        33. 7.6.1.33 IO_INPUT_1 寄存器(偏移 = 30h)[复位 = 00h]
        34. 7.6.1.34 IR_STATUS 寄存器(偏移 = 31h)[复位 = 00h]
        35. 7.6.1.35 DEV_IR 寄存器(偏移 = 32h)[复位 = 00h]
        36. 7.6.1.36 SPI_IR 寄存器(偏移 = 33h)[复位 = 00h]
        37. 7.6.1.37 UART_IR 寄存器(偏移 = 34h)[复位 = 00h]
        38. 7.6.1.38 I2C_IR 寄存器(偏移 = 35h)[复位 = 00h]
        39. 7.6.1.39 PWM0_IR 寄存器(偏移 = 36h)[复位 = 00h]
        40. 7.6.1.40 PWM1_IR 寄存器(偏移 = 37h)[复位 = 00h]
      2. 7.6.2 SPI 寄存器
        1. 7.6.2.1  SPI_CREL 寄存器(偏移 = 1000h)[复位 = 87h]
        2. 7.6.2.2  SPI_SCRATCH 寄存器(偏移 = 1001h)[复位 = 00h]
        3. 7.6.2.3  SPI_CTRL 寄存器(偏移 = 1002h)[复位 = 00h]
        4. 7.6.2.4  SPI_CFG_0 寄存器(偏移 = 1003h)[复位 = 00h]
        5. 7.6.2.5  SPI_CFG_1 寄存器(偏移 = 1004h)[复位 = 00h]
        6. 7.6.2.6  SPI_DR_0 寄存器(偏移 = 1005h)[复位 = 00h]
        7. 7.6.2.7  SPI_DR_1 寄存器(偏移 = 1006h)[复位 = 00h]
        8. 7.6.2.8  SPI_DR_2 寄存器(偏移 = 1007h)[复位 = 00h]
        9. 7.6.2.9  SPI_DR_3 寄存器(偏移 = 1008h)[复位 = 00h]
        10. 7.6.2.10 SPI_CHAN_EN 寄存器(偏移 = 1009h)[复位 = 00h]
        11. 7.6.2.11 SPI_CS_POL 寄存器(偏移 = 100Ah)[复位 = 00h]
        12. 7.6.2.12 SPI_FIFO_CTRL 寄存器(偏移 = 100Bh)[复位 = 0h]
        13. 7.6.2.13 SPI_IE_0 寄存器(偏移 = 100Ch)[复位 = 00h]
        14. 7.6.2.14 SPI_IE_1 寄存器(偏移 = 100Dh)[复位 = 00h]
        15. 7.6.2.15 SPI_IR 寄存器(偏移 = 100Eh)[复位 = 00h]
        16. 7.6.2.16 SPI_FS 寄存器(偏移 = 100Fh)[复位 = 80h]
        17. 7.6.2.17 SPI_TX_FIFO 寄存器(偏移 =1010h)[复位 = 0000h]
        18. 7.6.2.18 SPI_RX_FIFO 寄存器(偏移 = 1010h)[复位 = 0000h]
        19. 7.6.2.19 SPI_RXFS 寄存器(偏移 = 1011h)[复位 = 00h]
        20. 7.6.2.20 SPI_TXFS 寄存器(偏移 = 1012h)[复位 = 00h]
        21. 7.6.2.21 SPI_TXES 寄存器(偏移 = 1013h)[复位 = 00h]
      3. 7.6.3 SPI 数据 FIFO
        1. 7.6.3.1 SPI 发送 FIFO(地址 = h1010)
        2. 7.6.3.2 SPI 接收 FIFO(地址 = h1010)
      4. 7.6.4 UART 寄存器
        1. 7.6.4.1  UART_CREL 寄存器(偏移 = 2000h)[复位 = 10h]
        2. 7.6.4.2  UART_SCRATCH 寄存器(偏移 = 2001h)[复位 = 00h]
        3. 7.6.4.3  UART_CTRL 寄存器(偏移 = 2002h)[复位 = 04h]
        4. 7.6.4.4  UART_BR_LSB 寄存器(偏移 = 2003h)[复位 = 00h]
        5. 7.6.4.5  UART_BR_MSB 寄存器(偏移 = 2004h)[复位 = 00h]
        6. 7.6.4.6  UART_BR_FRAC 寄存器(偏移 = 2005h)[复位 = 00h]
        7. 7.6.4.7  UART_FIFO_CTRL 寄存器(偏移 = 2006h)[复位 = 01h]
        8. 7.6.4.8  UART_IE_0 寄存器(偏移 = 2007h)[复位 = 00h]
        9. 7.6.4.9  UART_IE_1 寄存器(偏移 = 2008h)[复位 = 00h]
        10. 7.6.4.10 UART_IR 寄存器(偏移 = 2009h)[复位 = 00h]
        11. 7.6.4.11 UART_STATUS 寄存器(偏移 = 200Ah)[复位 = 60h]
        12. 7.6.4.12 UART_RXFS 寄存器(偏移 = 200Bh)[复位 = 00h]
        13. 7.6.4.13 UART_TXFS 寄存器(偏移 = 200Ch)[复位 = 00h]
        14. 7.6.4.14 UART_RX_FIFO 寄存器(偏移 = 2010h)[复位 = 00h]
        15. 7.6.4.15 UART_TX_FIFO 寄存器(偏移 = 2010h)[复位 = 00h]
        16. 7.6.4.16 UART_RX_ERR_STATUS 寄存器(偏移 = 2011h)[复位 = 00h]
      5. 7.6.5 UART 数据 FIFO
        1. 7.6.5.1 UART 发送 FIFO(地址 = h2010)
        2. 7.6.5.2 UART 接收 FIFO(地址 = h2010)
        3. 7.6.5.3 UART 接收错误状态(地址 = h2011)
      6. 7.6.6 I2C 寄存器
        1. 7.6.6.1  I2C_CREL 寄存器(偏移 = 3000h)[复位 = 10h]
        2. 7.6.6.2  I2C_SCRATCH 寄存器(偏移 = 3001h)[复位 = 00h]
        3. 7.6.6.3  I2C_CTRL 寄存器(偏移 = 3002h)[复位 = 18h]
        4. 7.6.6.4  I2C_BR 寄存器(偏移 = 3003h)[复位 = 18h]
        5. 7.6.6.5  I2C_FIFO_CTRL 寄存器(偏移 = 3004h)[复位 = 00h]
        6. 7.6.6.6  I2C_IE_0 寄存器(偏移 = 3005h)[复位 = 00h]
        7. 7.6.6.7  I2C_IE_1 寄存器(偏移 = 3006h)[复位 = 00h]
        8. 7.6.6.8  I2C_IR 寄存器(偏移 = 3007h)[复位 = 00h]
        9. 7.6.6.9  I2C_STATUS 寄存器(偏移 = 3008h)[复位 = XXh]
        10. 7.6.6.10 I2C_FS 寄存器(偏移 = 3009h)[复位 = 00h]
        11. 7.6.6.11 I2C_RXFS 寄存器(偏移 = 300Ah)[复位 = 00h]
        12. 7.6.6.12 I2C_TXFS 寄存器(偏移 = 300Bh)[复位 = 00h]
        13. 7.6.6.13 I2C_TXES 寄存器(偏移 = 300Ch)[复位 = 00h]
      7. 7.6.7 I2C 数据 FIFO
        1. 7.6.7.1 I2C 发送 FIFO(地址 = h3010)
        2. 7.6.7.2 I2C 接收 FIFO(地址 = h3010)
      8. 7.6.8 PWM0 寄存器
        1. 7.6.8.1  PWM1_ACTION 寄存器(偏移 = 4000h)[复位 = 00h]
        2. 7.6.8.2  PWM0_CTRL 寄存器(偏移 = 4000h)[复位 = 11h]
        3. 7.6.8.3  PWM0_IE0 寄存器(偏移 = 4001h)[复位 = 00h]
        4. 7.6.8.4  PWM0_IE1 寄存器(偏移 = 4002h)[复位 = 00h]
        5. 7.6.8.5  PWM0_IR 寄存器(偏移 = 4003h)[复位 = 00h]
        6. 7.6.8.6  PWM0_STATUS 寄存器(偏移 = 4004h)[复位 = 00h]
        7. 7.6.8.7  PWM0_CUR_PULSE[y] 寄存器(偏移 = 4005h + 公式)[复位 = 00000000h]
        8. 7.6.8.8  PWM0_CUR_VAL_MSB 寄存器(偏移 = 4009h)[复位 = 00h]
        9. 7.6.8.9  PWM0_CUR_VAL_LSB 寄存器(偏移 = 400Ah)[复位 = 00h]
        10. 7.6.8.10 PWM0_CONST_MSB 寄存器(偏移 = 400Bh)[复位 = 00h]
        11. 7.6.8.11 PWM0_CONST_LSB 寄存器(偏移 = 400Ch)[复位 = 00h]
        12. 7.6.8.12 PWM0_STOP_VAL_FRAC_F 寄存器(偏移 = 400Dh)[复位 = 00h]
        13. 7.6.8.13 PWM0_STOP_VAL_MSB 寄存器(偏移 = 400Eh)[复位 = 00h]
        14. 7.6.8.14 PWM0_STOP_VAL_LSB 寄存器(偏移 = 400Fh)[复位 = 00h]
        15. 7.6.8.15 PWM0_STOP_SL_MSB 寄存器(偏移 = 4010h)[复位 = 00h]
        16. 7.6.8.16 PWM0_STOP_SL_MID 寄存器(偏移 = 4011h)[复位 = 00h]
        17. 7.6.8.17 PWM0_STOP_SL_LSB 寄存器(偏移 = 4012h)[复位 = 00h]
        18. 7.6.8.18 PWM0_START_VAL_FRAC_F 寄存器(偏移 = 4013h)[复位 = 00h]
        19. 7.6.8.19 PWM0_START_VAL_MSB 寄存器(偏移 = 4014h)[复位 = 00h]
        20. 7.6.8.20 PWM0_START_VAL_LSB 寄存器(偏移 = 4015h)[复位 = 00h]
        21. 7.6.8.21 PWM0_START_SL_MSB 寄存器(偏移 = 4016h)[复位 = 00h]
        22. 7.6.8.22 PWM0_START_SL_MID 寄存器(偏移 = 4017h)[复位 = 00h]
        23. 7.6.8.23 PWM0_START_SL_LSB 寄存器(偏移 = 4018h)[复位 = 00h]
        24. 7.6.8.24 PWM0_END_VAL_CONST_FRAC_F 寄存器(偏移 = 4019h)[复位 = 00h]
        25. 7.6.8.25 PWM0_END_VAL_MSB 寄存器(偏移 = 401Ah)[复位 = 00h]
        26. 7.6.8.26 PWM0_END_VAL_LSB 寄存器(偏移 = 401Bh)[复位 = 00h]
        27. 7.6.8.27 PWM0_PULSE_STOP_RAMP[y] 寄存器(偏移 = 401Ch + 公式)[复位 = 00000000h]
        28. 7.6.8.28 PWM0_PULSE_MAX[y] 寄存器(偏移 = 4020h + 公式)[复位 = 00000000h]
        29. 7.6.8.29 PWM0_ACTION 寄存器(偏移 = 4024h)[复位 = 00h]
        30. 7.6.8.30 PWM0_IAS_CTRL 寄存器(偏移 = 4030h)[复位 = 00h]
      9. 7.6.9 PWM1 寄存器
        1. 7.6.9.1  PWM1_CTRL 寄存器(偏移 = 4100h)[复位 = 11h]
        2. 7.6.9.2  PWM1_IE0 寄存器(偏移 = 4101h)[复位 = 00h]
        3. 7.6.9.3  PWM1_IE1 寄存器(偏移 = 4102h)[复位 = 00h]
        4. 7.6.9.4  PWM1_IR 寄存器(偏移 = 4103h)[复位 = 00h]
        5. 7.6.9.5  PWM1_STATUS 寄存器(偏移 = 4104h)[复位 = 00h]
        6. 7.6.9.6  PWM1_CUR_PULSE[y] 寄存器(偏移 = 4105h + 公式)[复位 = 00000000h]
        7. 7.6.9.7  PWM1_CUR_VAL_MSB 寄存器(偏移 = 4109h)[复位 = 00h]
        8. 7.6.9.8  PWM1_CUR_VAL_LSB 寄存器(偏移 = 410Ah)[复位 = 00h]
        9. 7.6.9.9  PWM1_CONST_MSB 寄存器(偏移 = 410Bh)[复位 = 00h]
        10. 7.6.9.10 PWM1_CONST_LSB 寄存器(偏移 = 410Ch)[复位 = 00h]
        11. 7.6.9.11 PWM1_STOP_VAL_FRAC_F 寄存器(偏移 = 410Dh)[复位 = 00h]
        12. 7.6.9.12 PWM1_STOP_VAL_MSB 寄存器(偏移 = 410Eh)[复位 = 00h]
        13. 7.6.9.13 PWM1_STOP_VAL_LSB 寄存器(偏移 = 410Fh)[复位 = 00h]
        14. 7.6.9.14 PWM1_STOP_SL_MSB 寄存器(偏移 = 4110h)[复位 = 00h]
        15. 7.6.9.15 PWM1_STOP_SL_MID 寄存器(偏移 = 4111h)[复位 = 00h]
        16. 7.6.9.16 PWM1_STOP_SL_LSB 寄存器(偏移 = 4112h)[复位 = 00h]
        17. 7.6.9.17 PWM1_START_VAL_FRAC_F 寄存器(偏移 = 4113h)[复位 = 00h]
        18. 7.6.9.18 PWM1_START_VAL_MSB 寄存器(偏移 = 4114h)[复位 = 00h]
        19. 7.6.9.19 PWM1_START_VAL_LSB 寄存器(偏移 = 4115h)[复位 = 00h]
        20. 7.6.9.20 PWM1_START_SL_MSB 寄存器(偏移 = 4116h)[复位 = 00h]
        21. 7.6.9.21 PWM1_START_SL_MID 寄存器(偏移 = 4117h)[复位 = 00h]
        22. 7.6.9.22 PWM1_START_SL_LSB 寄存器(偏移 = 4118h)[复位 = 00h]
        23. 7.6.9.23 PWM1_END_VAL_CONST_FRAC_F 寄存器(偏移 = 4119h)[复位 = 00h]
        24. 7.6.9.24 PWM1_END_VAL_MSB 寄存器(偏移 = 411Ah)[复位 = 00h]
        25. 7.6.9.25 PWM1_END_VAL_LSB 寄存器(偏移 = 411Bh)[复位 = 00h]
        26. 7.6.9.26 PWM1_PULSE_STOP_RAMP[y] 寄存器(偏移 = 411Ch + 公式)[复位 = 00000000h]
        27. 7.6.9.27 PWM1_PULSE_MAX[y] 寄存器(偏移 = 4120h + 公式)[复位 = 00000000h]
        28. 7.6.9.28 PWM1_ACTION 寄存器(偏移 = 4124h)[复位 = 00h]
        29. 7.6.9.29 PWM1_IAS_CTRL 寄存器(偏移 = 4130h)[复位 = 00h]
  9. 应用和实施
    1. 8.1 应用信息
    2. 8.2 典型应用
      1. 8.2.1 设计要求
      2. 8.2.2 详细设计过程
    3. 8.3 电源相关建议
    4. 8.4 布局
      1. 8.4.1 布局指南
      2. 8.4.2 布局示例
  10. 器件和文档支持
    1. 9.1 文档支持
      1. 9.1.1 相关文档
    2. 9.2 接收文档更新通知
    3. 9.3 支持资源
    4. 9.4 商标
    5. 9.5 静电放电警告
    6. 9.6 术语表
  11. 10修订历史记录
  12. 11机械、封装和可订购信息
    1. 11.1 机械数据

封装选项

请参考 PDF 数据表获取器件具体的封装图。

机械数据 (封装 | 引脚)
  • DGQ|20
散热焊盘机械数据 (封装 | 引脚)
订购信息

UART 波特率生成和分数分频值

TCAN5102-Q1 的 UART 模块配备了一个可编程波特率发生器,其核心功能是将基准时钟按 1 至 (216 − 1) 范围内的分频值进行分频,且分频精度可达 1/64 的小数分辨率。波特率发生器的输出频率为波特率的 16 倍。波特率发生器的输入时钟固定为 40MHz。分频值的计算公式如下:

方程式 2. Divisor = (40E6 / (Desired baud rate × 16 ))

若要计算需写入寄存器的具体数值,则需借助以下函数:

  • TRUNC(X):对 X 取整,仅返回实数的整数部分。例如:TRUNC(3.14) = 3
  • ROUND(X):将 X 舍入到最接近的整数。例如:ROUND(3.1) = 3 和 ROUND(3.6) = 4
  • >>:右移位操作。例如:0x1000 >> 8 = 0x0010。或者 0b0001 0000 0000 0000 >> 8 = 0b0000 0000 0001 0000
  • &:按位与函数,用于屏蔽位。例如:0x1234 & 0x00FF = 0x0034 以及 0x8765 & 0xFF00 = 0x8700

一旦找到所需的分频值,就可以通过以下方式计算寄存器值:

方程式 3. UART_BR_MSB = TRUNC(Divisor) >> 8
方程式 4. UART_BR_LSB = TRUNC(Divisor) & 0xFF
方程式 5. UART_BR_FRAC = ROUND( [Divisor - TRUNC(Divisor) ] × 64)
表 7-16 使用 16 倍波特率分频值的波特率(40MHz 时钟)
所需波特率 用于生成 16 倍时钟的分频值 可获得的最接近的分频值 UART_BR_MSB 值
(十六进制)
UART_BR_LSB 值
(十六进制)
UART_BR_FRAC 值
(十六进制)
期望值与实际值之间的误差差异百分比 (%)
400 6250.0000 6250 0x18 0x6A 0x00 0
2400 1041.6667 1041 43/64 0x04 0x11 0x2B 0
4800 520.8333 520 53/64 0x02 0x08 0x35 0.001
9600 260.4167 260 27/64 0x01 0x04 0x1B 0.002
10000 250.0000 250 0x00 0xFA 0x00 0
19200 130.2083 130 13/64 0x00 0x82 0x0D 0.004
25000 100.0000 100 0x00 0x64 0x00 0
28800 86.8056 86 52/64 0x00 0x56 0x34 0.008
38400 65.1042 65 7/64 0x00 0x41 0x07 0.008
50000 50.0000 50 0x00 0x32 0x00 0
57600 43.4028 43 26/64 0x00 0x2B 0x1A 0.008
75000 33.3333 33 21/64 0x00 0x21 0x15 0.016
100000 25.0000 25 0x00 0x19 0x00 0
115200 21.7014 21 45/64 0x00 0x15 0x2D 0.008
128000 19.5313 19 34/64 0x00 0x13 0x22 0
153600 16.2760 16 18/64 0x00 0x10 0x12 0.032
200000 12.5000 12 32/64 0x00 0x0C 0x20 0
225000 11.1111 11 7/64 0x00 0x0B 0x07 0.016
230400 10.8507 10 54/64 0x00 0x0A 0x36 0.064
250000 10.0000 10 0x00 0x0A 0x00 0
256000 9.7656 9 49/64 0x00 0x09 0x31 0
300000 8.3333 8 21/64 0x00 0x08 0x15 0.063
400000 6.2500 6 16/64 0x00 0x06 0x10 0
460800 5.4253 5 27/64 0x00 0x05 0x1B 0.064
500000 5.0000 5 0x00 0x05 0x00 0
750000 3.3333 3 21/64 0x00 0x03 0x15 0.156
921600 2.7127 2 46/64 0x00 0x02 0x2E 0.224
1000000 2.5000 2 32/64 0x00 0x02 0x20 0