ZHCSN95A August 2022 – December 2022 DRV8452
PRODUCTION DATA
使用 SPI 接口工作时,DRV8452 支持失速检测。
步进电机的绕组电流、反电动势和电机的机械扭矩负载之间有着独特的关系,如图 7-43 所示。对于空载电机,反电动势与绕组电流之间呈 90° 异相。对于给定的绕组电流,当电机负载接近电机的最大扭矩能力时,反电动势将与绕组电流同相。通过检测电机电流的上升和下降电流象限之间的反电动势相移,DRV8452 可检测到电机过载失速情况或线路末端运动。
失速检测算法在以下情况下启用:
该器件编程为使用 SPI 接口运行 (MODE = 1)
衰减模式编程为智能调优纹波控制 (DECAY = 111b)
EN_STL 为 1b
不存在故障条件(UVLO、OCP、OL、OTSD 等)。
该算法可通过监控 PWM 关断时间来比较上升和下降电流象限之间的反电动势,并生成一个称为扭矩计数的参数,该参数由 TRQ_COUNT 寄存器表示。进行比较时,TRQ_COUNT 值在很大程度上与电机电流、环境温度和电源电压无关。即使驱动器在全步进模式下运行,也可以检测电机失速。
TRQ_COUNT 的计算结果是最近四个电气半个周期的运行平均值。TRQ_COUNT 寄存器每个电气半个周期更新一次。更新后的 TRQ_COUNT 与 STALL_TH 进行比较,如果检测到失速情况,则会在电气半个周期电流过零时报告并锁存失速故障。
对于轻载电机,TRQ_COUNT 将为非零值。当电机接近失速状态时,TRQ_COUNT 将接近零并可用于检测失速状态。
如果任何时候 TRQ_COUNT 降至失速阈值(由 STALL_TH 寄存器表示)以下,该器件将检测到失速。
STALL、STL 和 FAULT 位将在 SPI 寄存器中被锁存为 1b。
STL_REP 位控制失速的报告方式。
如果 STL_REP 位为 1b,当检测到失速时,nFAULT 引脚将被驱动为低电平。
如果 STEL_REP 为 0b,则即使检测到失速,nFAULT 引脚也将保持高电平。
在失速情况下,电机轴不会旋转。当失速条件消失并且电机转速从零升至其目标速度时,电机会呈斜坡趋势增加到目标转速。当通过 CLR_FLT 位或 nSLEEP 复位脉冲发出清除故障命令后,nFAULT 将被释放并且故障寄存器将被清除。
电机线圈阻抗较高可能会导致 TRQ_COUNT 低。TRQ_SCALE 位允许按比例调高 TRQ_COUNT 值,以便于进一步处理。
如果最初计算的 TRQ_COUNT 值小于 500,并且 TRQ_SCALE 位为 1b,则 TRQ_COUNT 输出寄存器将乘以 8。
如果 TRQ_SCALE 位为 0b,TRQ_COUNT 会保留算法最初计算的值。
失速阈值可通过两种方式设置 –
用户可以通过观察 TRQ_COUNT 输出在所有运行条件下的行为来写入 STALL_TH 位。
该算法可以使用自动失速学习过程来学习失速阈值,如下所述:
开始学习之前,请确保电机已达到其目标速度。请勿在电机转速加快或减慢时学习失速阈值。
通过将 STL_LRN 位设置为 1b 开始学习。
空载运行电机。
等待 32 个电气周期,让驱动器了解稳态计数。
让电机失速。
等待 16 个电气周期,让驱动器了解失速计数。
如果学习成功,STL_LRN_OK 位会变为 1b。
失速阈值计算为稳定计数和失速计数的平均值,并存储在 STALL_TH 寄存器中。
下面展示了有关如何设置失速阈值的流程图。
有时,由于电机运行或失速时扭矩计数不稳定,自动失速学习过程可能无法成功进行。例如,当电机具有较高的线圈电阻或以非常高或低的速度运行时,扭矩计数可能会随时间变化很大,并且稳定计数与失速计数之间的差异可能很小。在这种情况下,建议不要使用自动失速学习方法。用户应仔细研究整个工作条件范围内的稳定计数和扭矩计数,并将阈值设为介于最小稳定计数和最大失速计数之间的中间值。
在一种速度下获得的失速阈值可能不能充分适合其他速度。建议每当电机转速变化百分比大于 10% 时,均重新获得失速阈值。
失速检测算法取决于修改 PWM 关断时间的反电动势。反电动势与电机转速成正比。为了使失速检测可靠工作,电机速度应足够高,以便能够生成具有足够振幅的反电动势。电机线圈电阻越高,实现可靠失速检测所需的最低速度就越大。
当器件通过切换 EN_OUT 位或 ENABLE 引脚从禁用模式(H 桥高阻态)进入激活模式时;或者当器件通过发出 CLR_FLT 从故障中恢复时,失速检测故障也可能会被标记。这是因为 TRQ_CNT 达到高于 STL_TH 的值所花费的时间。由于失速故障,nFAULT 可能会保持低电平(如果 STL_REP = 1b),并且需要另一个 CLR_FLT 来释放失速故障和 nFAULT 引脚。这可通过以下方式来表示:
启用活动模式后启用失速检测(仅在写入 EN_OUT = 1b 并使 ENABLE = 逻辑高电平后,才能写入 EN_STALL = 1b)
仅在电桥处于激活模式或已发出 CLR_FLT 命令以清除故障条件后才启动 STEP 脉冲。
如果由于低电源电压、高线圈电阻或电机高速而导致无法进行电流调节,失速检测可能无法可靠地工作,因为 TRQ_COUNT 可能不稳定并可能跳至高值。可以通过查看线圈电流波形来检查和确认这一点。如果线圈电流具有标准正弦波形,并且正弦波的峰值达到所需的满量程电流,则失速检测将可靠地工作。如果由于高速或低电源电压而导致电流波形为三角形,则失速检测算法可能无法可靠地运行。
如果 EN_STL = 1b 并且还启用了自动扭矩,则当检测到电机失速时,线圈电流会变为 ATQ_TRQ_MAX。
如果 EN_STL = 0b 并且启用了自动扭矩,则当电机失速时,线圈电流会变为 ATQ_TRQ_MIN。