ZHCSN95A August 2022 – December 2022 DRV8452
PRODUCTION DATA
使用 SPI 接口工作時,DRV8452 支持失速檢測。
步進電機的繞組電流、反電動勢和電機的機械扭矩負載之間有著獨特的關系,如圖 7-43 所示。對于空載電機,反電動勢與繞組電流之間呈 90° 異相。對于給定的繞組電流,當電機負載接近電機的最大扭矩能力時,反電動勢將與繞組電流同相。通過檢測電機電流的上升和下降電流象限之間的反電動勢相移,DRV8452 可檢測到電機過載失速情況或線路末端運動。
圖 7-43 通過監控電機反電動勢進行失速檢測失速檢測算法在以下情況下啟用:
該器件編程為使用 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。