意法半導體新推出的步進電機控制芯片L6470在一顆芯片上集成了功率級和一個數字控制內核。這款步進電機控制芯片能夠通過SPI接口接收微控制器的運動曲線命令,按照預制的加速度和速度曲線自動執行運動,還能自動加快電機的運轉速度,并使之保持預設的轉速。
該控制器的結構如圖1所示。控制邏輯電路是一個可以設置的狀態機,能夠接收并保存各種參數,例如:加速度、減速度、啟動轉速、轉速、相電流控制 (PWM)和步進模式。從全步進到1/128微步進,該控制器共支持8種步進模式。內部絕對位置計數器負責計算所選步進模式的步進或微步進的數量,以相當于該步進模式的分辨率跟蹤電機轉子位置。每步旋轉1.8 度,1/128微步電機轉子旋轉一整圈后,位置計數器將自動增加25600(128×200步)。
所有的運動參數和命令都是通過SPI接口送到控制器。控制邏輯電路負責解釋前進步數等運動命令,控制電機從靜止開始做加速運轉再返回到停止狀態所需的步進時間和步數輸出,同時執行命令中的步進總數。該芯片還能給這些運動命令排隊和發送,進行復雜的運動控制,從而能夠大幅減少微控制器的開銷。
圖1:結構框圖。
運動和位置命令
數字內核可執行五種運動命令和4種停止命令:
Run (Direction, Speed):加速運轉直到接到停止命令為止
Move (Direction, N_Steps):沿命令方向運動N步
GoTo (Position):沿最直接路徑運動到絕對位置
GoTo (Direction, Position):沿指令方向運動到絕對位置
GoUntil (Act, Direction, Speed):加速運轉直到有外部事件發生為止
SoftStop:減速直到停止
Hard Stop:緊急制動(無減速過程)
SoftHiZ:減速到停止,然后關閉電橋
HardHiZ:緊急制動,并關閉電橋
在開始任何運動之前,通過SIP接口使用SetParam命令設置運轉參數:最低轉速、最高轉速、加速度、減速度以及其它運動參數值。為確保運動的完整性,在電機運動過程中,運動曲線的很多參數值是鎖定的,只能在電機被制動后才能更改這些參數。
圖2所示是Move命令的一個典型運動曲線。當接收到一條 Move命令時,控制器將計算電機從靜止開始做加速運轉再返回到起始位置所需的步數N的運動曲線,整個過程都是由數字內核硬件獨立完成的。
GoTo命令指示驅動器根據內部22位絕對位置計數器的數值驅動電機旋轉到一個特定位置。 GoTo命令分為兩種:一種沿特定方向旋轉;另一種是沿最直接路徑旋轉,即確定以最少步數達到所需位置的運動方向。對于每步旋轉1.8度的1/128微步電動機,22位計數器的解析率相當于電機旋轉大約164周。即便齒輪減速比很大,有效解析率仍然在位置計數器的范圍內。GoTo命令的運動曲線看起來與Move命令曲線相同,但是有一點不同,在GoTo命令中,達到命令指定的絕對位置所需步數是自動計算結果。
Run和GoUntil命令用于使電動機保持恒速旋轉,直到接到一條制動命令 (適用于Run命令)或者有外部事件發生(適用于GoUntil)為止。當接收到一條制動命令時,控制器執行下面兩種操作之一:緊急制動或減速制動。該器件還能執行緊急制動或減速停止,然后提供三態輸出。
圖2:典型運動曲線。
如圖3所示,使用一系列Run命令可以執行復雜的運動。每接到一個新的Run命令后,控制器都會驅動電機做加速或減速旋轉到新命令指定的位置,并以指定速度保持旋轉,直到接收到下一條Run命令或一條Stop命令為止。當接收到一條反向運轉命令時,電機減到最低速度,然后再向相反方向加速運轉。
圖3:多條Run命令可實現復雜運動。
電壓控制式微步進
通常情況下,步進電機驅動電路是電流式控制設計,電流控制器監測并控制繞組電流強度。這種結構讓設計人員能夠在寬轉速范圍內保持所需的轉矩,而且電源電壓波動很小。這種設計非常適合全步和半步驅動器,而且也易于實現。很多設計人員避免在微步進驅動器中使用電壓控制方式,因為電源電壓變化導致峰流有很大變化,而且,隨著轉速提高,電機的反電動勢(EMF )也會增強。不過,利用數字控制技術可以修正這些不利因素。
為實現這種電壓控制式驅動電路,需要利用一個PWM計數器/定時器電路來控制輸出脈寬,以數字方式設置輸出占空比。L6470通過在電機繞組上施加電壓來控制相電流。雖然不能直接控制相電流的幅度,但是,相電流與相電壓的大小、負載、轉矩、電機電學特性和轉速密切相關。有效輸出電壓與電機電源電壓和KVAL系數的積成正比。KVAL的取值范圍是電源電壓的0%到100%。在微步進驅動器中,這個最大值再乘以調制指數,可產生所選步數的正弦波。峰值電壓由下面的公式得出:
KVAL值由下面的公式得出: KVAL= (Ipk x R)/Vs
其中:Ipk=所需的峰流,Vs=典型電源電壓,R=電機繞組電阻
該器件的寄存器支持加速度、減速度、恒速運轉和保持位置等不同的 KVAL設置,在運動曲線每個部分輕松實現不同的轉矩設置。
BEMF補償
如果在整個轉速范圍內始終向電機供給相同的峰值電壓,隨著電機轉速增加,電流強度會逐漸降低,因為電機的反電動勢BEMF會顯著降低施加到線圈上的電壓。圖4左邊的波形描述了沒有采用BEMF補償技術的電機工作狀況。從圖中不難看出,隨著電機轉速增加,BEM以線性方式提高,因為線圈上的電壓是實際施加的相電壓與BEMF電壓的差值,所以電流將會降低。
圖4:有BEMF補償電路和無BEMF補償電路的相電流。
為修正BEMF增加對電流的影響,該產品在KVAL系數中增加一個修正BEMF的因數。本質上,就是在 KVAL初始設置值中增加一個修正值,以抵消BEMF的影響。由于BEMF直接與轉速成正比,因此這個修正值因數是一個斜率,根據這個斜率和電流轉速來計算實時修正值。該產品提供不同的修正值:第一個值是一個標準值,適用于電機從零轉速開始加速運轉,直到相交轉速參數INT_SPEED設置的最高速度為止。在相交速度之上,可以用兩個附加的斜率調整標準斜率,一個用于恒速運轉和加速度,另一個則用于減速運轉。當 BEMF修正值設置適當時,峰值電流在電機全程轉速范圍內保持恒定,如圖4所示。圖6描述了當一個電機加速運轉時的實際電流波形。
圖5: BEMF修正曲線。
圖6: 有BEMF修正功能的相電流。
電源和相電阻修正
電機的電源電壓和相電阻是另外兩個影響相電流的主要因素。因為控制器采用電壓控制方式,對輸出占空比進行控制,所以這兩個要素之中任何一個發生變化,都會影響相電流。
當電機沒有穩壓電源時,在從電源到電機驅動電路的電壓上會出現大量的脈動電壓。隨著電源電壓變化,電機電流也會波動。如果電源上的脈動電壓很大,當電機電流變得太小時,電機很可能會停止運轉。該控制器內置一個電源電壓修正電路,如圖7所示。在這個電路內,內部模數轉換器負責測定電源電壓,然后由在數字內核實現的修正算法計算修正因數,將其施加到PWM占空比內,使輸出電壓值在整個電源電壓變化范圍內保持恒定。
圖7: 電源修正。
隨著電機發熱,相阻變化也會直接影響相電流。KTHERM設置用于修正電機內部發熱導致的相阻變化。驅動器控制器的軟件可以監測或估計電機溫度的升高狀況,設置KTHERM值,修正因為溫度升高而引起的電機相阻的變化。例如,可以使用一個簡單的算法測定在運轉間隔時電機停止運轉時的相阻,根據測量結果調整KTHERM值。
結論
L6470實現的功能讓設計人員可以實現電壓控制式微步進驅動器,修正過去需要采用電流控制式驅動器才能解決的典型的系統問題。從總體上看,系統控制變得更加順暢,沒有電流控制式驅動器的常見限制性問題。使用數字化電壓控制式PWM方法,可以輕松實現每步最多128微步進 的微步進驅動器。電壓控制式解決方案的正弦波曲線更加精確,位置解析率高于電流控制式方法,電壓控制式操作可大幅降低系統諧振。此外,該器件實現的數字運動引擎能夠大幅降低系統微控制器的負荷,在多電機應用環境中,無需另設一個專用微控制器。
評論
查看更多