ZHDA058A January   2020  – February 2026 DRV8434S , DRV8889-Q1

PRODUCTION DATA  

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
  5. 2步进电机的反电动势
  6. 3现有失速检测方案
    1. 3.1 在电流过零期间测量反电动势
    2. 3.2 固定关断时间方法
    3. 3.3 PWM 周期计数方法
  7. 4TI 集成的失速检测算法
    1. 4.1 失速检测方案的详细信息
      1. 4.1.1 TRQ_COUNT 和 STL_TH 位分辨率
      2. 4.1.2 放大扭矩计数和失速阈值
    2. 4.2 失速检测结构的详细信息
      1. 4.2.1 SPI 接口器件
      2. 4.2.2 硬件接口器件
        1. 4.2.2.1 STL_MODE 和 TRQ_CNT/STL_TH 引脚
        2. 4.2.2.2 STL_REP 引脚
    3. 4.3 失速检测配置的详细信息
      1. 4.3.1 SPI 接口器件
        1. 4.3.1.1 如何在 SPI 器件中设置失速阈值
          1. 4.3.1.1.1 用户定义的失速阈值
          2. 4.3.1.1.2 驱动器定义的失速阈值
      2. 4.3.2 硬件接口器件
        1. 4.3.2.1 如何在硬件器件中设置失速阈值
          1. 4.3.2.1.1 用户定义的失速阈值
          2. 4.3.2.1.2 驱动器定义的失速阈值
    4. 4.4 失速检测功能的实验结果
      1. 4.4.1 正常和失速条件下的电机波形
      2. 4.4.2 TRQ_COUNT/STALL_TH 分辨率分析
      3. 4.4.3 运行条件下的扭矩计数变化
        1. 4.4.3.1 随电机转速和运动方向的变化
        2. 4.4.3.2 低电机转速造成的限制
        3. 4.4.3.3 高电机转速造成的限制
        4. 4.4.3.4 随电源电压的变化
        5. 4.4.3.5 随微步进设置的变化
        6. 4.4.3.6 随输出压摆率的变化
        7. 4.4.3.7 随环境温度的变化
        8. 4.4.3.8 随满量程电流设置的变化
          1. 4.4.3.8.1 高线圈电阻导致的限制
        9. 4.4.3.9 固定运行条件下的稳态计数变化
  8. 5评估示例
    1. 5.1 汽车前照灯调平和旋转
    2. 5.2 汽车抬头显示 (HUD)
    3. 5.3 HVAC 阀门控制
  9. 6总结
  10. 7参考资料
  11. 8修订历史记录

SPI 接口器件

DRV8889-Q1DRV8434SDRV8452DRV8461DRV8462 通过 SPI 接口提供失速检测功能。这些器件的失速参数设置大致可分为两组。DRV8434SDRV8452DRV8461DRV8462 具有相同的参数,而 DRV8889-Q1 具有不同的设置。为了提供全面的覆盖范围,本节将重点介绍 DRV8889-Q1DRV8434S,分别代表这两个类别。

要详细了解这些器件评估模块 (EVM) 的硬件实现,请参阅相应的用户指南:DRV8889-Q1 评估模块用户指南DRV8434S-Q1 评估模块用户指南。此外,DRV8889-Q1 EVM GUI 用户指南DRV8434S EVM GUI 用户指南提供了关于通过 EVM 使用图形用户界面 (GUI) 软件的分步说明。

表 4-8表 4-8分别概述了 DRV8889-Q1DRV8434S 器件的寄存器映射,详细介绍了每个器件的寄存器配置。从下面的寄存器映射中可以看出,DRV8434S(和类似器件)有两个额外的寄存器,用于支持 STALL_TH 和 TRQ_COUNT 的位分辨率和可扩展性增加。

表 4-3 DRV8889-Q1 寄存器映射
寄存器名称76543210访问
类型
地址
FAULT 状态FAULTSPI_ERRORUVLOCPUVOCPSTLTFOLR0x00
DIAG 状态 1OCP_LS2_BOCP_HS2_BOCP_LS1_BOCP_HS1_BOCP_LS2_AOCP_HS2_AOCP_LS1_AOCP_HS1_AR0x01
DIAG 状态 2UTWOTWOTSSTL_LRN_OKSTALLRSVDOL_BOL_AR0x02
CTRL1TRQ_DAC [3:0]RSVDSLEW_RATE [1:0]RW0x03
CTRL2DIS_OUTRSVDTOFF [1:0]DECAY [2:0]RW0x04
CTRL3DIRSTEPSPI_DIRSPI_STEPMICROSTEP_MODE [3:0]RW0x05
CTRL4CLR_FLTLOCK [2:0]EN_OLOCP_MODEOTSD_MODETW_REPRW0x06
CTRL5RSVDSTL_LRNEN_STLSTL_REPRSVDRW0x07
CTRL6STALL_TH [7:0]RW0x08
CTRL7TRQ_COUNT [7:0]R0x09

表 4-4 DRV8434S 寄存器映射
寄存器名称76543210访问
类型
地址
FAULT 状态FAULTSPI_ERRORUVLOCPUVOCPSTLTFOLR0x00
DIAG 状态 1OCP_LS2_BOCP_HS2_BOCP_LS1_BOCP_HS1_BOCP_LS2_AOCP_HS2_AOCP_LS1_AOCP_HS1_AR0x01
DIAG 状态 2UTWOTWOTSSTL_LRN_OKSTALLRSVDOL_BOL_AR0x02
CTRL1TRQ_DAC [3:0]RSVDSLEW_RATE [1:0]RW0x03
CTRL2DIS_OUTRSVDTOFF [1:0]DECAY [2:0]RW0x04
CTRL3DIRSTEPSPI_DIRSPI_STEPMICROSTEP_MODE [3:0]RW0x05
CTRL4CLR_FLTLOCK [2:0]EN_OLOCP_MODEOTSD_MODETW_REPRW0x06
CTRL5RSVDSTL_LRNEN_STLSTL_REPRSVDRW0x07
CTRL6STALL_TH [7:0]RW0x08
CTRL7RC_RIPPLE[1:0]EN_SSCTRQ_SCALESATLL_TH [11:8]
CTRL8TRQ_COUNT [7:0]R0x09
CTRL9REV_ID [3:0]TRQ_COUNT [11:8]

将器件设置为进行失速检测相当简单,只需几个位来控制与失速检测算法相关的关键参数。表 4-8表 4-8 中突出显示了与失速检测相关的位。

  • EN_STL:默认情况下,器件上电后会禁用失速检测。EN_STL 必须设置为 01b 才能启用失速检测。
  • DECAY [2:0]:必须将衰减模式设置为智能调优纹波控制,因此必须确保将其设置为 111b。将衰减模式设置为任何其他值将禁用失速检测。
  • STL_LRN:该位默认为 00b。必须将其设置为 01b 才能启用自动失速学习过程。当失速学习过程完成后,该位会自动返回到 00b。
  • STL_LRN_OK:在成功学习失速阈值结束时变为 01b。
  • TRQ_COUNT [7:0]:这 8 位保留 TRQ_CNT 的值,以指示负载扭矩。该值与电机负载成反比,在电机空载时最高,在电机失速时接近零。这样可以评估电机的负载状态。此外,具有 12 位分辨率的驱动器可提供扩展范围,在另一个寄存器中提供额外的 TRQ_COUNT [11:8] 位,以实现更精确的扭矩监控。
  • STALL_TH [7:0]:这 8 位用于在失速学习过程中手动编程或学习所需的失速阈值水平。每当扭矩计数降至低于此阈值时,器件将检测到失速。此外,在配备 12 位失速阈值的器件中,另一个寄存器中还提供 4 位 (STALL_TH [11:8]),从而提供扩展的配置选项。
  • STL_REP:此位控制失速检测的报告。要启用对 nFAULT 引脚的失速检测故障报告,STL_REP 位必须为 01b。如果满足此条件,检测到失速时 nFAULT 引脚将被驱动为低电平,从而提供明确的故障指示。
  • TRQ_SCALE:在配备扩展功能的器件中,该位可以配置为“1”,以将较低的 TRQ_COUNT 和 STALL_TH 值放大 8 倍。具体而言,如果算法计算的初始 TRQ_COUNT 值小于 500,建议将 TRQ_SCALE 位设置为 01b 以提高检测准确度。

当检测到失速时,STALL、STL 和 FAULT 位被锁存为高电平,并且 nFAULT 引脚被拉至低电平(如果 STL_REP 设置为 01b)。在这种失速状态下,电机轴进入停止状态,但如果电机继续接收 STEP 信号,仍可能表现出振动。当失速情况解决后,电机将恢复旋转。当通过设置 CLR_FLT 位或应用 nSLEEP 复位脉冲发出清除故障命令后,nFAULT 信号将被释放并且故障寄存器将被清除。有关 SPI 器件中失速检测相关故障情况的全面汇总,请参阅表 4-5

表 4-5 故障条件汇总
FAULT

条件

配置

H 桥

电荷泵分度器逻辑

恢复

失速检测 (STALL)电机失速/卡住STL_REP = 00b运行中运行中运行中运行中CLR_FLT/nSLEEP
STL_REP = 01b运行中运行中运行中运行中