ZHCSRX7 june   2023 BQ79616

PRODUCTION DATA  

  1.   1
  2. 特性
  3. 应用
  4. 说明
  5. 修订历史记录
  6. 说明(续)
  7. 引脚配置和功能
  8. 规格
    1. 7.1 绝对最大额定值
    2. 7.2 ESD 等级
    3. 7.3 建议运行条件
    4. 7.4 热性能信息
    5. 7.5 电气特性
    6. 7.6 时序要求
    7. 7.7 典型特性
  9. 详细说明
    1. 8.1 概述
    2. 8.2 功能方框图
    3. 8.3 特性说明
      1. 8.3.1 电源
        1. 8.3.1.1 AVAO_REF 和 AVDD_REF
        2. 8.3.1.2 LDOIN
        3. 8.3.1.3 AVDD
        4. 8.3.1.4 DVDD
        5. 8.3.1.5 CVDD 和 NEG5V
        6. 8.3.1.6 TSREF
      2. 8.3.2 测量系统
        1. 8.3.2.1 主 ADC
          1. 8.3.2.1.1 电池电压测量
            1. 8.3.2.1.1.1 模拟前端
            2. 8.3.2.1.1.2 VC 通道测量
            3. 8.3.2.1.1.3 后 ADC 数字 LPF
            4. 8.3.2.1.1.4 BBP 和 BBN 测量
          2. 8.3.2.1.2 温度测量
            1. 8.3.2.1.2.1 DieTemp1 测量
            2. 8.3.2.1.2.2 GPIO 和 TSREF 测量
          3. 8.3.2.1.3 主 ADC 运行控制
            1. 8.3.2.1.3.1 运行模式和状态
        2. 8.3.2.2 AUX ADC
          1. 8.3.2.2.1 AUX 电芯电压测量
            1. 8.3.2.2.1.1 AUX 模拟前端
            2. 8.3.2.2.1.2 CB 和 BB 通道测量
          2. 8.3.2.2.2 AUX 温度测量
            1. 8.3.2.2.2.1 DieTemp2 测量
            2. 8.3.2.2.2.2 AUX GPIO 测量
          3. 8.3.2.2.3 其他测量
          4. 8.3.2.2.4 AUX ADC 操作控制
        3. 8.3.2.3 主 ADC 测量与 AUX ADC 测量之间的同步
      3. 8.3.3 Cell Balancing
        1. 8.3.3.1 设置电芯均衡
          1. 8.3.3.1.1 步骤 1:确定均衡通道
          2. 8.3.3.1.2 步骤 2:选择均衡控制方法
          3. 8.3.3.1.3 步骤 3a:均衡热管理
          4. 8.3.3.1.4 步骤 3b:在达到电芯电压阈值时停止的选项
          5. 8.3.3.1.5 步骤 3c:在发生故障时停止的选项
        2. 8.3.3.2 SLEEP 模式下的电芯均衡
        3. 8.3.3.3 暂停和停止电芯均衡
          1. 8.3.3.3.1 电芯均衡暂停
          2. 8.3.3.3.2 电芯均衡停止
          3. 8.3.3.3.3 剩余 CB 时间
        4. 8.3.3.4 模块均衡
          1. 8.3.3.4.1 启动模块均衡
          2. 8.3.3.4.2 停止模块均衡
      4. 8.3.4 集成硬件保护器
        1. 8.3.4.1 OVUV 保护器
          1. 8.3.4.1.1 OVUV 运行模式
          2. 8.3.4.1.2 OVUV 控制和状态
            1. 8.3.4.1.2.1 OVUV 控制
            2. 8.3.4.1.2.2 OVUV 状态
        2. 8.3.4.2 OTUT 保护器
          1. 8.3.4.2.1 OTUT 运行模式
          2. 8.3.4.2.2 OTUT 控制和状态
            1. 8.3.4.2.2.1 OTUT 控制
            2. 8.3.4.2.2.2 OTUT 状态
      5. 8.3.5 GPIO 配置
      6. 8.3.6 通信、OTP、诊断控制
        1. 8.3.6.1 通信
          1. 8.3.6.1.1 串行接口
            1. 8.3.6.1.1.1 UART 物理层
              1. 8.3.6.1.1.1.1 UART 发送器
              2. 8.3.6.1.1.1.2 UART 接收器
              3. 8.3.6.1.1.1.3 COMM CLEAR
            2. 8.3.6.1.1.2 命令和响应协议
              1. 8.3.6.1.1.2.1 事务帧结构
                1. 8.3.6.1.1.2.1.1 帧初始化字节
                2. 8.3.6.1.1.2.1.2 器件地址字节
                3. 8.3.6.1.1.2.1.3 寄存器地址字节
                4. 8.3.6.1.1.2.1.4 数据字节
                5. 8.3.6.1.1.2.1.5 CRC 字节
                6. 8.3.6.1.1.2.1.6 计算帧 CRC 值
                7. 8.3.6.1.1.2.1.7 验证帧 CRC
              2. 8.3.6.1.1.2.2 事务帧示例
                1. 8.3.6.1.1.2.2.1 单器件读取/写入
                2. 8.3.6.1.1.2.2.2 堆栈读取/写入
                3. 8.3.6.1.1.2.2.3 广播读取/写入
                4. 8.3.6.1.1.2.2.4 广播写入反向
          2. 8.3.6.1.2 菊花链接口
            1. 8.3.6.1.2.1 菊花链发送器和接收器功能
            2. 8.3.6.1.2.2 菊花链协议
          3. 8.3.6.1.3 开始通信
            1. 8.3.6.1.3.1 识别基底和堆栈
            2. 8.3.6.1.3.2 自动寻址
              1. 8.3.6.1.3.2.1 设置器件地址
              2. 8.3.6.1.3.2.2 设置 COMM_CTRL[STACK_DEV] 和 [TOP_STACK]
              3. 8.3.6.1.3.2.3 将器件地址存储到 OTP
            3. 8.3.6.1.3.3 同步菊花链 DLL
            4. 8.3.6.1.3.4 环形通信
          4. 8.3.6.1.4 通信超时
            1. 8.3.6.1.4.1 短通信超时
            2. 8.3.6.1.4.2 长通信超时
          5. 8.3.6.1.5 通信调试模式
          6. 8.3.6.1.6 多点配置
          7. 8.3.6.1.7 SPI 控制器
          8. 8.3.6.1.8 SPI 环回
        2. 8.3.6.2 故障处理
          1. 8.3.6.2.1 故障状态层次结构
            1. 8.3.6.2.1.1 调试寄存器
          2. 8.3.6.2.2 故障屏蔽和复位
            1. 8.3.6.2.2.1 故障屏蔽
            2. 8.3.6.2.2.2 故障复位
          3. 8.3.6.2.3 故障信令
            1. 8.3.6.2.3.1 ACTIVE 模式下的故障状态传输
            2. 8.3.6.2.3.2 SLEEP 模式下的故障状态传输
            3. 8.3.6.2.3.3 检测信号和故障音调
        3. 8.3.6.3 非易失性内存
          1. 8.3.6.3.1 OTP 页面状态
          2. 8.3.6.3.2 OTP 编程
        4. 8.3.6.4 诊断控制/状态
          1. 8.3.6.4.1 电源检查
            1. 8.3.6.4.1.1 电源诊断检查
            2. 8.3.6.4.1.2 电源 BIST
          2. 8.3.6.4.2 热关断和警告检查
            1. 8.3.6.4.2.1 热关断
            2. 8.3.6.4.2.2 热警告
          3. 8.3.6.4.3 振荡器看门狗
          4. 8.3.6.4.4 OTP 错误检查
            1. 8.3.6.4.4.1 OTP CRC 测试和故障
            2. 8.3.6.4.4.2 OTP 裕度读取
            3. 8.3.6.4.4.3 错误检查和纠正 (ECC) OTP
          5. 8.3.6.4.5 集成硬件保护器检查
            1. 8.3.6.4.5.1 奇偶效验检查
            2. 8.3.6.4.5.2 OVUV 和 OTUT DAC 检查
            3. 8.3.6.4.5.3 OVUV 保护器 BIST
            4. 8.3.6.4.5.4 OTUT 保护器 BIST
          6. 8.3.6.4.6 通过 ADC 比较进行诊断
            1. 8.3.6.4.6.1 电芯电压测量检查
            2. 8.3.6.4.6.2 温度测量检查
            3. 8.3.6.4.6.3 电芯均衡 FET 检查
            4. 8.3.6.4.6.4 VC 和 CB 开路检查
      7. 8.3.7 汇流条支持
        1. 8.3.7.1 BBP/BBN 引脚上的汇流条
          1. 8.3.7.1.1 典型连接
          2. 8.3.7.1.2 汇流条测量
          3. 8.3.7.1.3 电芯均衡处理
          4. 8.3.7.1.4 电芯电压诊断控制
        2. 8.3.7.2 单独的 VC 通道上的汇流条
          1. 8.3.7.2.1 典型连接
          2. 8.3.7.2.2 汇流条测量
          3. 8.3.7.2.3 电芯均衡处理
          4. 8.3.7.2.4 电芯电压诊断控制
    4. 8.4 器件功能模式
      1. 8.4.1 电源模式
        1. 8.4.1.1 SHUTDOWN 模式
          1. 8.4.1.1.1 退出 SHUTDOWN 模式
          2. 8.4.1.1.2 进入 SHUTDOWN 模式
        2. 8.4.1.2 SLEEP 模式
          1. 8.4.1.2.1 退出 SLEEP 模式
          2. 8.4.1.2.2 进入 SLEEP 模式
        3. 8.4.1.3 ACTIVE 模式
          1. 8.4.1.3.1 退出 ACTIVE 模式
          2. 8.4.1.3.2 从 SHUTDOWN 模式进入 ACTIVE 模式
          3. 8.4.1.3.3 从 SLEEP 模式进入 ACTIVE 模式
      2. 8.4.2 器件复位
      3. 8.4.3 ping 和音调
        1. 8.4.3.1 Ping
        2. 8.4.3.2 音调
        3. 8.4.3.3 ping 和音调传播
    5. 8.5 寄存器映射
      1. 8.5.1 OTP 影子寄存器汇总
      2. 8.5.2 读取/写入寄存器汇总
      3. 8.5.3 只读寄存器汇总
      4. 8.5.4 寄存器字段说明
        1. 8.5.4.1  器件寻址设置
          1. 8.5.4.1.1 DIR0_ADDR_OTP
          2. 8.5.4.1.2 DIR1_ADDR_OTP
          3. 8.5.4.1.3 CUST_MISC1 至 CUST_MISC8
          4. 8.5.4.1.4 DIR0_ADDR
          5. 8.5.4.1.5 DIR1_ADDR
        2. 8.5.4.2  器件 ID 和暂存区
          1. 8.5.4.2.1 PARTID
          2. 8.5.4.2.2 DEV_REVID
          3. 8.5.4.2.3 DIE_ID1 至 DIE_ID9
        3. 8.5.4.3  通用配置和控制
          1. 8.5.4.3.1  DEV_CONF
          2. 8.5.4.3.2  ACTIVE_CELL
          3. 8.5.4.3.3  BBVC_POSN1
          4. 8.5.4.3.4  BBVC_POSN2
          5. 8.5.4.3.5  PWR_TRANSIT_CONF
          6. 8.5.4.3.6  COMM_TIMEOUT_CONF
          7. 8.5.4.3.7  TX_HOLD_OFF
          8. 8.5.4.3.8  STACK_RESPONSE
          9. 8.5.4.3.9  BBP_LOC
          10. 8.5.4.3.10 COMM_CTRL
          11. 8.5.4.3.11 CONTROL1
          12. 8.5.4.3.12 CONTROL2
          13. 8.5.4.3.13 CUST_CRC_HI
          14. 8.5.4.3.14 CUST_CRC_LO
          15. 8.5.4.3.15 CUST_CRC_RSLT_HI
          16. 8.5.4.3.16 CUST_CRC_RSLT_LO
        4. 8.5.4.4  运行状态
          1. 8.5.4.4.1 DIAG_STAT
          2. 8.5.4.4.2 ADC_STAT1
          3. 8.5.4.4.3 ADC_STAT2
          4. 8.5.4.4.4 GPIO_STAT
          5. 8.5.4.4.5 BAL_STAT
          6. 8.5.4.4.6 DEV_STAT
        5. 8.5.4.5  ADC 配置和控制
          1. 8.5.4.5.1 ADC_CONF1
          2. 8.5.4.5.2 ADC_CONF2
          3. 8.5.4.5.3 MAIN_ADC_CAL1
          4. 8.5.4.5.4 MAIN_ADC_CAL2
          5. 8.5.4.5.5 AUX_ADC_CAL1
          6. 8.5.4.5.6 AUX_ADC_CAL2
          7. 8.5.4.5.7 ADC_CTRL1
          8. 8.5.4.5.8 ADC_CTRL2
          9. 8.5.4.5.9 ADC_CTRL3
        6. 8.5.4.6  ADC 测量结果
          1. 8.5.4.6.1  VCELL16_HI/LO
          2. 8.5.4.6.2  VCELL15_HI/LO
          3. 8.5.4.6.3  VCELL14_HI/LO
          4. 8.5.4.6.4  VCELL13_HI/LO
          5. 8.5.4.6.5  VCELL12_HI/LO
          6. 8.5.4.6.6  VCELL11_HI/LO
          7. 8.5.4.6.7  VCELL10_HI/LO
          8. 8.5.4.6.8  VCELL9_HI/LO
          9. 8.5.4.6.9  VCELL8_HI/LO
          10. 8.5.4.6.10 VCELL7_HI/LO
          11. 8.5.4.6.11 VCELL6_HI/LO
          12. 8.5.4.6.12 VCELL5_HI/LO
          13. 8.5.4.6.13 VCELL4_HI/LO
          14. 8.5.4.6.14 VCELL3_HI/LO
          15. 8.5.4.6.15 VCELL2_HI/LO
          16. 8.5.4.6.16 VCELL1_HI/LO
          17. 8.5.4.6.17 BUSBAR_HI/LO
          18. 8.5.4.6.18 TSREF_HI/LO
          19. 8.5.4.6.19 GPIO1_HI/LO
          20. 8.5.4.6.20 GPIO2_HI/LO
          21. 8.5.4.6.21 GPIO3_HI/LO
          22. 8.5.4.6.22 GPIO4_HI/LO
          23. 8.5.4.6.23 GPIO5_HI/LO
          24. 8.5.4.6.24 GPIO6_HI/LO
          25. 8.5.4.6.25 GPIO7_HI/LO
          26. 8.5.4.6.26 GPIO8_HI/LO
          27. 8.5.4.6.27 DIETEMP1_HI/LO
          28. 8.5.4.6.28 DIETEMP2_HI/LO
          29. 8.5.4.6.29 AUX_CELL_HI/LO
          30. 8.5.4.6.30 AUX_GPIO_HI/LO
          31. 8.5.4.6.31 AUX_BAT_HI/LO
          32. 8.5.4.6.32 AUX_REFL_HI/LO
          33. 8.5.4.6.33 AUX_VBG2_HI/LO
          34. 8.5.4.6.34 AUX_AVAO_REF_HI/LO
          35. 8.5.4.6.35 AUX_AVDD_REF_HI/LO
          36. 8.5.4.6.36 AUX_OV_DAC_HI/LO
          37. 8.5.4.6.37 AUX_UV_DAC_HI/LO
          38. 8.5.4.6.38 AUX_OT_OTCB_DAC_HI/LO
          39. 8.5.4.6.39 AUX_UT_DAC_HI/LO
          40. 8.5.4.6.40 AUX_VCBDONE_DAC_HI/LO
          41. 8.5.4.6.41 AUX_VCM_HI/LO
          42. 8.5.4.6.42 REFOVDAC_HI/LO
          43. 8.5.4.6.43 DIAG_MAIN_HI/LO
          44. 8.5.4.6.44 DIAG_AUX_HI/LO
        7. 8.5.4.7  均衡配置、控制和状态
          1. 8.5.4.7.1  CB_CELL16_CTRL 至 CB_CELL1_CTRL
          2. 8.5.4.7.2  VMB_DONE_THRESH
          3. 8.5.4.7.3  MB_TIMER_CTRL
          4. 8.5.4.7.4  VCB_DONE_THRESH
          5. 8.5.4.7.5  OTCB_THRESH
          6. 8.5.4.7.6  BAL_CTRL1
          7. 8.5.4.7.7  BAL_CTRL2
          8. 8.5.4.7.8  BAL_CTRL3
          9. 8.5.4.7.9  CB_COMPLETE1
          10. 8.5.4.7.10 CB_COMPLETE2
          11. 8.5.4.7.11 BAL_TIME
        8. 8.5.4.8  保护器配置和控制
          1. 8.5.4.8.1 OV_THRESH
          2. 8.5.4.8.2 UV_THRESH
          3. 8.5.4.8.3 UV_DISABLE1
          4. 8.5.4.8.4 UV_DISABLE2
          5. 8.5.4.8.5 OTUT_THRESH
          6. 8.5.4.8.6 OVUV_CTRL
          7. 8.5.4.8.7 OTUT_CTRL
        9. 8.5.4.9  GPIO 配置
          1. 8.5.4.9.1 GPIO_CONF1
          2. 8.5.4.9.2 GPIO_CONF2
          3. 8.5.4.9.3 GPIO_CONF3
          4. 8.5.4.9.4 GPIO_CONF4
        10. 8.5.4.10 SPI 控制器
          1. 8.5.4.10.1 SPI_CONF
          2. 8.5.4.10.2 SPI_EXE
          3. 8.5.4.10.3 SPI_TX3、SPI_TX2 和 SPI_TX1
          4. 8.5.4.10.4 SPI_RX3、SPI_RX2 和 SPI_RX1
        11. 8.5.4.11 诊断控制
          1. 8.5.4.11.1  DIAG_OTP_CTRL
          2. 8.5.4.11.2  DIAG_COMM_CTRL
          3. 8.5.4.11.3  DIAG_PWR_CTRL
          4. 8.5.4.11.4  DIAG_CBFET_CTRL1
          5. 8.5.4.11.5  DIAG_CBFET_CTRL2
          6. 8.5.4.11.6  DIAG_COMP_CTRL1
          7. 8.5.4.11.7  DIAG_COMP_CTRL2
          8. 8.5.4.11.8  DIAG_COMP_CTRL3
          9. 8.5.4.11.9  DIAG_COMP_CTRL4
          10. 8.5.4.11.10 DIAG_PROT_CTRL
        12. 8.5.4.12 故障配置和复位
          1. 8.5.4.12.1 FAULT_MSK1
          2. 8.5.4.12.2 FAULT_MSK2
          3. 8.5.4.12.3 FAULT_RST1
          4. 8.5.4.12.4 FAULT_RST2
        13. 8.5.4.13 故障状态
          1. 8.5.4.13.1  FAULT_SUMMARY
          2. 8.5.4.13.2  FAULT_COMM1
          3. 8.5.4.13.3  FAULT_COMM2
          4. 8.5.4.13.4  FAULT_COMM3
          5. 8.5.4.13.5  FAULT_OTP
          6. 8.5.4.13.6  FAULT_SYS
          7. 8.5.4.13.7  FAULT_PROT1
          8. 8.5.4.13.8  FAULT_PROT2
          9. 8.5.4.13.9  FAULT_OV1
          10. 8.5.4.13.10 FAULT_OV2
          11. 8.5.4.13.11 FAULT_UV1
          12. 8.5.4.13.12 FAULT_UV2
          13. 8.5.4.13.13 FAULT_OT
          14. 8.5.4.13.14 FAULT_UT
          15. 8.5.4.13.15 FAULT_COMP_GPIO
          16. 8.5.4.13.16 FAULT_COMP_VCCB1
          17. 8.5.4.13.17 FAULT_COMP_VCCB2
          18. 8.5.4.13.18 FAULT_COMP_VCOW1
          19. 8.5.4.13.19 FAULT_COMP_VCOW2
          20. 8.5.4.13.20 FAULT_COMP_CBOW1
          21. 8.5.4.13.21 FAULT_COMP_CBOW2
          22. 8.5.4.13.22 FAULT_COMP_CBFET1
          23. 8.5.4.13.23 FAULT_COMP_CBFET2
          24. 8.5.4.13.24 FAULT_COMP_MISC
          25. 8.5.4.13.25 FAULT_PWR1
          26. 8.5.4.13.26 FAULT_PWR2
          27. 8.5.4.13.27 FAULT_PWR3
        14. 8.5.4.14 调试控制和状态
          1. 8.5.4.14.1  DEBUG_CTRL_UNLOCK
          2. 8.5.4.14.2  DEBUG_COMM_CTRL1
          3. 8.5.4.14.3  DEBUG_COMM_CTRL2
          4. 8.5.4.14.4  DEBUG_COMM_STAT
          5. 8.5.4.14.5  DEBUG_UART_RC
          6. 8.5.4.14.6  DEBUG_UART_RR_TR
          7. 8.5.4.14.7  DEBUG_COMH_BIT
          8. 8.5.4.14.8  DEBUG_COMH_RC
          9. 8.5.4.14.9  DEBUG_COMH_RR_TR
          10. 8.5.4.14.10 DEBUG_COML_BIT
          11. 8.5.4.14.11 DEBUG_COML_RC
          12. 8.5.4.14.12 DEBUG_COML_RR_TR
          13. 8.5.4.14.13 DEBUG_UART_DISCARD
          14. 8.5.4.14.14 DEBUG_COMH_DISCARD
          15. 8.5.4.14.15 DEBUG_COML_DISCARD
          16. 8.5.4.14.16 DEBUG_UART_VALID_HI/LO
          17. 8.5.4.14.17 DEBUG_COMH_VALID_HI/LO
          18. 8.5.4.14.18 DEBUG_COML_VALID_HI/LO
          19. 8.5.4.14.19 DEBUG_OTP_SEC_BLK
          20. 8.5.4.14.20 DEBUG_OTP_DED_BLK
        15. 8.5.4.15 OTP 编程控制和状态
          1. 8.5.4.15.1 OTP_PROG_UNLOCK1A 至 OTP_PROG_UNLOCK1D
          2. 8.5.4.15.2 OTP_PROG_UNLOCK2A 至 OTP_PROG_UNLOCK2D
          3. 8.5.4.15.3 OTP_PROG_CTRL
          4. 8.5.4.15.4 OTP_ECC_TEST
          5. 8.5.4.15.5 OTP_ECC_DATAIN1 至 OTP_ECC_DATAIN9
          6. 8.5.4.15.6 OTP_ECC_DATAOUT1 至 OTP_ECC_DATAOUT9
          7. 8.5.4.15.7 OTP_PROG_STAT
          8. 8.5.4.15.8 OTP_CUST1_STAT
          9. 8.5.4.15.9 OTP_CUST2_STAT
  10. 应用和实施
    1. 9.1 应用信息
    2. 9.2 典型应用
      1. 9.2.1 基底器件应用电路
        1. 9.2.1.1 设计要求
        2. 9.2.1.2 详细设计过程
          1. 9.2.1.2.1 电芯检测和均衡输入
          2. 9.2.1.2.2 BAT 和外部 NPN
          3. 9.2.1.2.3 电源、基准输入
          4. 9.2.1.2.4 适用于热敏电阻输入的 GPIO
          5. 9.2.1.2.5 内部均衡电流
          6. 9.2.1.2.6 UART、NFAULT
          7. 9.2.1.2.7 菊花链隔离
            1. 9.2.1.2.7.1 同一 PCB 上连接的器件
            2. 9.2.1.2.7.2 不同 PCB 上连接的器件
        3. 9.2.1.3 应用曲线
      2. 9.2.2 菊花链器件应用电路
        1. 9.2.2.1 设计要求
        2. 9.2.2.2 详细设计过程
  11. 10电源相关建议
  12. 11布局
    1. 11.1 布局指南
      1. 11.1.1 接地平面
      2. 11.1.2 电源和基准的旁路电容器
      3. 11.1.3 电芯电压检测
      4. 11.1.4 菊花链通信
    2. 11.2 布局示例
  13. 12器件和文档支持
    1. 12.1 器件支持
      1. 12.1.1 第三方产品免责声明
    2. 12.2 接收文档更新通知
    3. 12.3 支持资源
    4. 12.4 商标
    5. 12.5 静电放电警告
    6. 12.6 术语表
  14. 13机械、封装和可订购信息

封装选项

机械数据 (封装 | 引脚)
散热焊盘机械数据 (封装 | 引脚)
订购信息
错误检查和纠正 (ECC) OTP

ECC:

所选寄存器的寄存器值(0x0000 至 0x002F)永久存储在 OTP 中。所有寄存器还作为易失性存储位置存在于相同的地址处,称为影子寄存器。易失性寄存器用于读取、写入及器件控制。有关 OTP 中包含的寄存器列表,请参阅节 8.5.1

在唤醒期间,器件首先使用节 8.5.1中列出的硬件默认值加载所有影子寄存器。然后,器件有条件地使用来自 OTP 错误检查和纠正 (ECC) 评估结果的 OTP 内容加载寄存器。OTP 以 64 位块的形式加载到影子寄存器中;每个块都存储有自己的错误检查和纠正 (ECC) 值。ECC 检测 OTP 存储数据中的 single-bit(单错校正)或 double-bit(双错检测)更改。每个块的 ECC 单独计算。

系统会纠正 single-bit 错误,但只检测 double-bit 错误,不会纠正。ECC 良好的块被加载。具有 single-bit 错误的块被纠正,并且会设置 FAULT_OTP[SEC_DET] 位以标记已纠正的错误事件。此外,会使用已纠错的块的位置来更新 DEBUG_OTP_SEC_BLK 寄存器。这使得主机能够跟踪可能损坏的存储器。该块在纠正 single-bit 错误后加载到影子寄存器中。由于评估是逐块进行的,因此多个块有可能具有单一可纠正错误,但仍能正确加载。只要每个块仅限于一个错误,就可以存在多位错误并被全部纠正。

具有糟糕 ECC 比较的块(一个块中有两位错误)不会被加载,并且会设置 FAULT_OTP[DED_DET] 位以标记失败的位错误事件。此外,会使用发生双重错误的块来更新 DEBUG_OTP_DED_BLK 寄存器。硬件默认值保留在寄存器中。这允许正确加载某些块(无失败或 single-bit 校正值),而某些块则不加载。当 FAULT_OTP[SEC_DET]FAULT_OTP[DED_DET] 位被设置且器件复位未清除该条件时,器件已损坏且不得使用。

ECC 引擎使用行业标准 72,64 SEC DEC ECC 实现。OTP 由 (72, 64) 汉明码保护,提供单错校正、双错检测 (SECDED)。对于 OTP 中存储的每 64 位数据,还存储额外的 8 位奇偶校验信息。奇偶校验位被指定为 p0、p1、p2、p4、p8、p16、p32 和 p64。位 p0 覆盖整个编码的 72 位 ECC 块。其余七个奇偶校验位根据以下规则分配:

  • 奇偶校验位 p1 覆盖奇数位位置,即位位置的最低有效位等于 1 的位位置(1、3、5 等),包括 p1 位本身(位 1)。
  • 奇偶校验位 p2 涵盖位位置的第二个最低有效位等于 1 的位位置(2、3、6、7、10、11 等),包括 p2 位本身(位 2)。
  • p4、p8、p16、p32 和 p64 继续采用这种模式。表 8-28 指定了完整的编码。

表 8-28 (72, 64) 奇偶校验编码
位位置717069686766656463626160595857565554
编码位d63d62d61d60d59d58d57p64d56d55d54d53d52d51d50d49d48d47
奇偶校验位覆盖情况p0xxxxxxxxxxxxxxxxxx
p1xxxxxxxxx
p2xxxxxxxxxx
p4xxxxxxxxxx
p8xxxxxxxx
p16xxxxxxxxxx
p32xxxxxxxxxx
p64xxxxxxxx
位位置535251504948474645444342414039383736
编码位d46d45d44d43d42d41d40d39d38d37d36d35d34d33d32d31d30d29
奇偶校验位覆盖情况p0xxxxxxxxxxxxxxxxxx
p1xxxxxxxxx
p2xxxxxxxx
p4xxxxxxxxxx
p8xxxxxxxx
p16xxxxxx
p32xxxxxxxxxxxxxxxxxx
p64
位位置353433323130292827262524232221201918
编码位d28d27d26p32d25d24d23d22d21d20d19d18d17d16d15d14d13d12
奇偶校验位覆盖情况p0xxxxxxxxxxxxxxxxxx
p1xxxxxxxxx
p2xxxxxxxxxx
p4xxxxxxxx
p8xxxxxxxx
p16xxxxxxxxxxxxxx
p32xxxx
p64
位位置17161514131211109876543210
编码位d11p16d10d9d8d7d6d5d4p8d36d2d1p4d0p2p1p0
奇偶校验位覆盖情况p0xxxxxxxxxxxxxxxxxx
p1xxxxxxxxx
p2xxxxxxxx
p4xxxxxxxx
p8xxxxxxxx
p16xx
p32
p64
表 8-29 编码器和解码器数据输入和输出定位
编码器
数据输入编码位数据输出位位置
OTP_ECC_DATAIN 1d0 至 d7OTP_ECC_DATAOUT 10 至 7
OTP_ECC_DATAIN 2d8 至 d15OTP_ECC_ DATAOUT 28 至 15
OTP_ECC_DATAIN 3d16 至 d23OTP_ECC_ DATAOUT 316 至 23
OTP_ECC_DATAIN 4d24 至 d31OTP_ECC_ DATAOUT 424 至 31
OTP_ECC_DATAIN 5d32 至 d39OTP_ECC_ DATAOUT 532 至 39
OTP_ECC_DATAIN 6d40 至 d47OTP_ECC_ DATAOUT 640 至 47
OTP_ECC_DATAIN 7d48 至 d55OTP_ECC_ DATAOUT 748 至 55
OTP_ECC_DATAIN 8d56 至 d63OTP_ECC_ DATAOUT 856 至 63
OTP_ECC_ DATAOUT 964 至 71
解码器
数据输入位位置数据输入编码位
OTP_ECC_DATAIN 10 至 7OTP_ECC_DATAOUT 1d0 至 d7
OTP_ECC_DATAIN 28 至 15OTP_ECC_ DATAOUT 2d8 至 d15
OTP_ECC_DATAIN 316 至 23OTP_ECC_ DATAOUT 3d16 至 d23
OTP_ECC_DATAIN 424 至 31OTP_ECC_ DATAOUT 4d24 至 d31
OTP_ECC_DATAIN 532 至 39OTP_ECC_ DATAOUT 5d32 至 d39
OTP_ECC_DATAIN 640 至 47OTP_ECC_ DATAOUT 6d40 至 d47
OTP_ECC_DATAIN 748 至 55OTP_ECC_ DATAOUT 7d48 至 d55
OTP_ECC_DATAIN 856 至 63OTP_ECC_ DATAOUT 8d56 至 d63
OTP_ECC_DATAIN 964 至 71

ECC 诊断测试:该器件提供了一个诊断工具来测试 ECC 功能。有两种模式可用于运行诊断。第一种是自动模式 (OTP_ECC_TEST[MANUAL_AUTO] = 0),该模式使用内部数据来运行测试。在自动模式下,OTP_ECC_TEST[DED_SEC] 位选择要执行的测试类型,OTP_ECC_TEST[ENC_DEC] 位决定要测试编码器还是解码器功能。ECC 测试结果在 OTP_ECC_DATAOUT* 寄存器中提供,具有 1μs 的延迟。每个测试的测试步骤和预期结果如下所示。

自动解码步骤:

  1. 将 ECC 测试设置为自动 OTP_ECC_TEST[MANUAL_AUTO] = 0
  2. 设置解码器设置 OTP_ECC_TEST[ENC_DEC] = 0
  3. 使用 OTP_ECC_TEST[DED_SEC] 将解码器设置为单编码或双编码设置(1 表示 DED,0 表示 SEC)
  4. 通过 FAULT_RST2[RST_OTP_DATA] = 1 清除所有 SEC/DED 故障
  5. 启用 ECC 测试 OTP_ECC_TEST[ENABLE] = 1
  6. 读取 FAULT_OTP[SEC_DET] 标志(对于 SEC)或 FAULT_OTP[DED_DET] 标志(对于 DED)
  7. OTP_ECC_DATAOUT1OTP_ECC_DATAOUT8 进行块读取,以验证解码器测试结果,如表 8-30 所示
  8. 禁用 ECC 测试 OTP_ECC_TEST[ENABLE] = 0

自动编码步骤:

  1. 将 ECC 测试设置为自动 OTP_ECC_TEST[MANUAL_AUTO] = 0
  2. 使用 OTP_ECC_TEST[ENC_DEC] = 1 设置编码器设置
  3. 使用 OTP_ECC_TEST[ENABLE] = 1 启用 ECC 测试
  4. OTP_ECC_DATAOUT1OTP_ECC_DATAOUT9 进行块读取,以验证编码器测试结果,如表 8-30 所示
  5. 禁用 ECC 测试 OTP_ECC_TEST[ENABLE] = 0

表 8-30 解码器和编码器测试验证
[DED_SEC][ENC_DEC][SEC_DET][DED_DET]OTP_DATAOUT*
0(SEC 测试)0(解码器测试)100x18C3 FF8A 68A9 8069
0(SEC 测试)1(编码器测试)不适用不适用0xCD 3968 C140 2EA5 ED6D
1(DED 测试)0(解码器测试)010x0000 0000 0000 0000
1(DED 测试)1(编码器测试)不适用不适用0xCD 3968 C140 2EA5 ED6D