《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于STM32的微型步進電機驅(qū)動控制器設(shè)計
基于STM32的微型步進電機驅(qū)動控制器設(shè)計
2015年微型機與應(yīng)用第1期
藍 杰,,張浩然
(浙江師范大學(xué) 數(shù)理與信息工程學(xué)院,浙江 金華 321004)
摘要: 設(shè)計了一種微型步進電機驅(qū)動控制器,,通過上位機界面修改步進電機轉(zhuǎn)速,、旋轉(zhuǎn)角度、細分系數(shù),。該設(shè)計以STM32F103T8U6作為主控制器,,以A4988步進電機驅(qū)動設(shè)備,上位機串口界面作為人機接口界面,,詳細分析步進電機驅(qū)動設(shè)備的工作原理,、各部分接口電路以及控制器設(shè)計方案。通過實物設(shè)計實現(xiàn)了步進電機轉(zhuǎn)速,、正反轉(zhuǎn)任意角度和細分系數(shù)的控制,,并通過精確計算步進脈沖個數(shù)實現(xiàn)了任意旋轉(zhuǎn)角度的精確控制,該驅(qū)動控制器步進角度精度高達0.112 5度,。
Abstract:
Key words :

  摘  要: 設(shè)計了一種微型步進電機驅(qū)動控制器,,通過上位機界面修改步進電機轉(zhuǎn)速、旋轉(zhuǎn)角度,、細分系數(shù),。該設(shè)計以STM32F103T8U6作為主控制器,以A4988步進電機驅(qū)動設(shè)備,,上位機串口界面作為人機接口界面,,詳細分析步進電機驅(qū)動設(shè)備的工作原理、各部分接口電路以及控制器設(shè)計方案,。通過實物設(shè)計實現(xiàn)了步進電機轉(zhuǎn)速,、正反轉(zhuǎn)任意角度和細分系數(shù)的控制,并通過精確計算步進脈沖個數(shù)實現(xiàn)了任意旋轉(zhuǎn)角度的精確控制,,該驅(qū)動控制器步進角度精度高達0.112 5度。

  關(guān)鍵詞: 微型步進電機,;STM32F103T8U6,;A4988,;串口;正反轉(zhuǎn)

0 引言

  自從上世紀(jì)20年代英國人開發(fā)了步進電機,,50年代后期晶體管的發(fā)明也逐漸應(yīng)用在步進電機上,,并使得步進電機的數(shù)字化控制更為方便。經(jīng)過不斷改良,,今日步進電機已廣泛運用在生產(chǎn)過程中要求自動化,、省人力、效率高的機器中,,尤其在重視速度,、位置控制、需要精確操作指令動作的靈活控制場合步進電機用得最多,。

  本文旨在以STM32F103T8U6[1]作為A4988[2]控制器,,并以A4988作為微型步進電機驅(qū)動器設(shè)計步進電機控制器模塊,實現(xiàn)閉環(huán)精確控制微型步進電機的步進角度的功能,,并從多方面深入分析A4988的工作原理以及微型步進電機速度控制和步進角度精確控制策略[3-4],。

1 A4988的特性和工作原理

  1.1 A4988的特性

  A4988是一款完全的微步電動機驅(qū)動器,帶有內(nèi)置轉(zhuǎn)換器,,易于操作,。該產(chǎn)品可在全、半,、1/4,、1/8及1/16步進模式時操作雙極步進電動機,輸出驅(qū)動性能可達35 V及±2 A,。A4988包括一個固定關(guān)斷時間電流穩(wěn)壓器,,該穩(wěn)壓器可在慢或混合衰減模式下工作。轉(zhuǎn)換器是A4988易于實施的關(guān)鍵,。只要在“步進”輸入中輸入一個脈沖,,即可驅(qū)動電動機產(chǎn)生微步。無須進行相位順序表,、高頻率控制行或復(fù)雜的界面編程,。A4988界面非常適合復(fù)雜的微處理器不可用或過載的應(yīng)用。在微步運行時,,A4988內(nèi)的斬波控制可自動選擇電流衰減模式(慢或混合),。在混合衰減模式下,該器件初始設(shè)置為在部分固定停機時間內(nèi)快速衰減,,然后在余下的停機時間慢速衰減,。混合衰減電流控制方案能減少可聽到的電動機噪音,,增加步進精確度并減少功耗,。提供內(nèi)部同步整流控制電路,,以改善脈寬調(diào)制(PWM)操作時的功率消耗。內(nèi)部電路保護包括:帶滯后的過熱關(guān)機,、欠壓鎖定(UVLO)及交叉電流保護,,不需要特別的通電排序。

  1.2 A4988的工作原理

  為了更加清晰地分析A4988的工作原理,,首先深入分析A4988的內(nèi)部結(jié)構(gòu),。如圖1所示為A4988的內(nèi)部結(jié)構(gòu)圖和典型的外部電路連接圖。

001.jpg

  由圖1所示,,A4988有一個編譯器(Translator),,主要負責(zé)微控制器和驅(qū)動電路的信息交互。通過該編譯器可產(chǎn)生DA信號,,配合比較器輔助PWM鎖存器修復(fù)衰減信號,,并且該編譯器能夠產(chǎn)生邏輯電平控制邏輯控制器,邏輯控制器再配合電流調(diào)節(jié)器和N型MOS管驅(qū)動電壓共同驅(qū)動兩路全橋電路,。電路中所標(biāo)電容必須嚴格與技術(shù)文檔中所給的相同,,Rosc主要更改并修復(fù)衰減模式,接VDD自動修復(fù)衰減,,接GND電流衰減設(shè)置為增減電流同時修復(fù),。SENSE1和SENSE2檢測驅(qū)動輸出電壓,實則是實時檢測輸出電流,,供電流調(diào)節(jié)器調(diào)節(jié)輸出電流信號,,形成閉環(huán)控制。因此SENSE1和SENSE2管腳連接的電阻非常關(guān)鍵,,一般這個電阻的阻值在零點幾歐姆左右,。

  1.3 A4988邏輯控制策略

  A4988控制邏輯簡單,主要分為睡眠,、正反轉(zhuǎn),、復(fù)位、使能,、細分等模式控制,。

  (1)睡眠模式:Sleep管腳電平置0,,進入睡眠模式,,驅(qū)動器輸出待機模式;Sleep管腳置1,,驅(qū)動器處于正常工作狀態(tài),;

  (2)正反轉(zhuǎn)模式:正轉(zhuǎn)模式DIR管腳置0或1,反轉(zhuǎn)模式置1或0,;

 ?。?)復(fù)位模式:復(fù)位模式下容易消耗能量,,產(chǎn)生的沖擊電流較大,。直接RESET管腳置1,在不影響系統(tǒng)工作時RESET管腳置0復(fù)位,。一旦驅(qū)動芯片復(fù)位,,系統(tǒng)將回歸到原始A4988 I/O端口控制狀態(tài);

 ?。?)使能模式:使能模式控制系統(tǒng)是否開始工作,,ENBALBE管腳置0開始工作,置1停止工作,;

 ?。?)細分模式[5]:通過MS1、MS2,、MS3控制細分系數(shù),,A4988細分為1/16細分為最小,通過計算角度值可得最小細分角度為全步進角度的1/16,。A4988驅(qū)動邏輯控制如表1所示,。

007.jpg

2 控制器電路設(shè)計

  根據(jù)A4988芯片的工作原理,控制器電路主要分為上位機串口模塊,、STM32最小系統(tǒng)板模塊和A4988微型步進電機驅(qū)動模塊,。通過STM32F103T8微控制器接收上位機的控制指令,通過識別分析之后執(zhí)行步進電機控制操作,。內(nèi)部步進電機驅(qū)動控制器總體設(shè)計框圖如圖2所示,。

002.jpg

  2.1 硬件電路設(shè)計

  (1)串口通信模塊[6]:主要負責(zé)上位機和下位機通信,。上位機通過串口通信模塊發(fā)送相應(yīng)的功能指令給下位機,,下位機執(zhí)行上位機的指令并控制A4988驅(qū)動器模塊驅(qū)動步進電機。如圖3所示,。

003.jpg

 ?。?)STM32控制器模塊:微型步進電機控制器的主控模塊,接收上位機的指令,,執(zhí)行步進電機控制指令,,主要控制步進電機細分操作、速度控制,、旋轉(zhuǎn)角度控制,。如圖4所示。

004.jpg

 ?。?)A4988微型步進電機驅(qū)動器模塊:如圖5所示,主要控制并驅(qū)動微型步進電機,,執(zhí)行主控制器的各項驅(qū)動操作,。

005.jpg

  2.2 功能設(shè)計

  該微型步進電機控制器的設(shè)計要求:

  (1)實現(xiàn)步進電機細分控制

  細分控制只需控制MS1,、MS2,、MS3三個引腳即可得到相應(yīng)的細分結(jié)果。細分角度值等于步進角度乘以細分系數(shù),,細分系數(shù)通過上位機發(fā)送命令得到,,初始細分值為1,即全步進方式運行,。

 ?。?)實現(xiàn)步進電機速度控制

  通過測試,影響步進電機轉(zhuǎn)速的主要因素有步進脈沖頻率和細分系數(shù),。步進脈沖頻率過高會造成步進電機失步,,經(jīng)過測試400 Hz時步進電機不會失步,且經(jīng)過細分之后步進電機旋轉(zhuǎn)不會出現(xiàn)強烈的震動和聲音,。當(dāng)細分系數(shù)越來越小時,,步進電機的旋轉(zhuǎn)速度也會隨之越來越小。此原因之一就是當(dāng)細分系數(shù)不變時,,每進一個脈沖走一步,,脈沖頻率越高,步進電機旋轉(zhuǎn)速度越快,;原因之二就是當(dāng)步進電機輸入脈沖頻率不變時,,每1/2細分步進電機的進角度就變?yōu)樵瓉淼?/2度,因此脈沖個數(shù)就增加了一倍,,自然速度就降低為原來的1/2,。

  (3)實現(xiàn)步進電機任意角度旋轉(zhuǎn)控制

  步進電機任意角度旋轉(zhuǎn)控制是相對于A4988驅(qū)動旋轉(zhuǎn)最小角度(0.1125度)而言,,且A4988是通過脈沖驅(qū)動步進電機,,通過計算脈沖個數(shù)乘以細分角度即可得旋轉(zhuǎn)角度值。A4988輸入脈沖個數(shù)可通過微控制器外部中斷I/O口計算PWM波個數(shù)得到,。

3 軟件設(shè)計

  STM32F103T8U6是32 bit微控制器,,能產(chǎn)生獨立PWM波,PWM脈寬可調(diào)且頻率可調(diào),,方便步進電機驅(qū)動調(diào)試速度,;可提供外部中斷為檢測PWM輸出脈沖個數(shù)進行計數(shù),為實現(xiàn)旋轉(zhuǎn)步進電機旋轉(zhuǎn)角度控制提供精確數(shù)據(jù),,這樣就形成了角度閉環(huán)控制,;可提供串口通信,供上位機設(shè)備和微控制器進行信息交互;該微控制器I/O端口少價格便宜完全可替代16 bit單片機進行復(fù)雜的邏輯運算,。STM32控制方式:(1)接收上位機控制指令并返回接收指令,,表示接收成功,否則接收失??;(2)通過接收到的上位機控制指令,分別轉(zhuǎn)化成控制步進電機指令,,控制步進電機工作模式,。

  3.1 串口通信指令設(shè)計

  串口通信上位機發(fā)送指令有:(1)啟動模式,;(2)睡眠模式,;(3)復(fù)位模式;(4)速度設(shè)置模式,;(5)細分模式,。發(fā)送協(xié)議以“{”為起始碼,以“}”為結(jié)束碼,,如{+0.1125℃}即正向旋轉(zhuǎn)0.112 5度,;當(dāng)下位機執(zhí)行完上位機指令時返回接收指令,否則不返回,。具體發(fā)送方式如表2所示,。

008.jpg

  3.2 控制器控制策略

  STM32軟件負責(zé)該模塊的主控制器,首先讓啟動模式處于非啟動狀態(tài)(DISABLE),,外部中斷也處于關(guān)閉狀態(tài),。一旦啟動模式被打開,即點亮LED,;其次,,進行速度設(shè)置、細分系數(shù)設(shè)置以及旋轉(zhuǎn)角度設(shè)置,。睡眠模式下LED緩慢閃爍,。具體該驅(qū)動控制器軟件設(shè)計流程圖如圖6所示。

006.jpg

4 結(jié)論

  通過系統(tǒng)對軟硬件進行調(diào)試,,該控制器實現(xiàn)了對步進電機速度,、細分系數(shù)、任意角度的設(shè)置,,并達到了預(yù)期設(shè)定的目標(biāo),。此控制器可以應(yīng)用在相對比較精細的項目控制中,加快項目研發(fā)周期,。該模塊的主要缺陷就是輸出驅(qū)動電流不夠大,,無法應(yīng)用在扭力比較大的場合中,因此,通過上述對A4988模塊的分析,,可以再對A4988芯片進行改進,,更換導(dǎo)通電阻小、驅(qū)動電流大的MOS管,,實現(xiàn)電機驅(qū)動器的設(shè)計,。

參考文獻

  [1] 意法半導(dǎo)體.STM32F103英文數(shù)據(jù)手冊[EB/OL].(2011-04-19)[2014-05-13].http://www.st.com/stonline/products/literature/ds/14611.pdf.

  [2] MICRO A.A4988數(shù)據(jù)手冊[EB/OL].(2014-05-07)[2014-06-10].www.allegromicro.com/~/media/Files/Datasheets/A4988-Datasheet.ashx.pdf.

  [3] 孟英紅,齊婉玉,,段學(xué)鋒.用L297,,L298組成步進電機驅(qū)動電路[J].儀器儀表學(xué)報,2003,,24(4):573-574.

  [4] 王凱,,韓力立.采用STM32控制L6470步進電機驅(qū)動器[J].電子世界,2012(18):51-52.

  [5] 曹彪乾,,陳遠增,,孫書鷹,等.基于STM32步進電機多細分控制設(shè)計[J].科學(xué)技術(shù)與工程,,2013,,13(23):6894-6897.

  [6] 于波,胡毅,,文江濤.基于CP2102的USB接口設(shè)計[J].研究與開發(fā),,2007,26(3):40-42.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。