MC33991型二相步進(jìn)電機驅動(dòng)器
摘要:MC33991是Motorola公司生產(chǎn)的兩相步進(jìn)電機驅動(dòng)器,可以準確地控制步進(jìn)電機的運動(dòng)并及時(shí)反饋步時(shí)電機的工作狀態(tài)。該電路有良好的抗干擾能力,可以靈活地控制驅動(dòng)步時(shí)電機,是汽車(chē)電子設備特別是汽車(chē)儀表中的理想驅動(dòng)器。
關(guān)鍵詞:步時(shí)電動(dòng)機 驅動(dòng)器 SPI MC33991 汽車(chē)儀表
1 MC33991的主要特點(diǎn)
MC33991是單獨封裝、通過(guò)SPI(同步串行外設接口)進(jìn)行通信、可同時(shí)控制二個(gè)步進(jìn)電機的驅動(dòng)電路。該電路由4個(gè)可驅動(dòng)線(xiàn)圈的功率H橋和輔助邏輯控制器組成。每組H橋的驅動(dòng)可用來(lái)控制步時(shí)電機的速度、旋轉方向及每相線(xiàn)圈中電流的大小。MC33991有良好的抗干擾能力,可以十分靈活地驅動(dòng)步進(jìn)電機,因此是汽車(chē)電子設備特別是汽車(chē)儀表的理想驅動(dòng)器。只要做一些外圍設備的改進(jìn),該電路也可以仿照氣隙磁通的運行,把普通電機轉化為步進(jìn)電機來(lái)控制。MC33991的特性如下:
最小的上層處理器(不需其他外設即可直接驅動(dòng)電機);
仿效普通電機的運動(dòng)進(jìn)行控制,使電機有完美的動(dòng)態(tài)和靜態(tài)性能;
有4096個(gè)靜態(tài)指示位置;
最大指針掃過(guò)范圍為340;
最大指針速度為400 deg/s;
最大指針加速度為4500deg/s2;
應用微步距控制技術(shù)(每步細分為12個(gè)微步);
指針回零校準;
有16位SPI;
內部時(shí)鐘校準;
睡眠模式下的耗電量較小。
2 結構原理與引腳功能
2.1 內部結構
MC33991的內部結構框圖如圖1所示,它由PI、邏輯電路、電壓/溫度檢測及功率H橋等模塊組成。MC33991主控電路先將驅動(dòng)命令通過(guò)SPI以串行數據的方式輸出,再通過(guò)邏輯電路將命令轉化成驅動(dòng)信號以驅動(dòng)功率H橋,H橋輸出電流直接驅動(dòng)步進(jìn)電機,同時(shí)MC33991中的電壓/溫度等檢測模塊可以隨時(shí)檢測電機的動(dòng)轉狀態(tài),并將檢測結果通過(guò)SPI以串行輸出方式將數據反饋給主控電路。
2.2 引腳功能
COS+、COS-、SIN+與SIN-:H橋輸出端。它們分別是H功率橋中各個(gè)半橋的輸出端。H功率橋可以直接線(xiàn)性控制步進(jìn)電機的二組線(xiàn)圈,使其在4象限中運動(dòng)。
GND:接地端,包括與晶閘管相連的輸出地及邏輯地,同時(shí)具備散熱作用。
CS:片選輸入端,與片選信號相連。
SCLK:串行時(shí)鐘,該引腳與主控電路的時(shí)鐘相連,決定串行外圍接口的時(shí)鐘頻率的大小。信號的占空比為50%,由CMOS電平驅動(dòng)。
SO:串行輸出端,該引腳與主控電路外圍串行接口的輸入端或者與其他驅動(dòng)電路的串行輸入端相連。輸出為CMOS電平,輸出的數據為狀態(tài)反饋信息或報錯信息。
SI:串行輸入端,該引腳與主控電路外圍串行接口的輸入端相連,接收主控電路提供的控制信號,SI端在電路內部有上拉電阻器,要由CMOS電平驅動(dòng)。
RTX:多元輸出。指針回零時(shí)要用此引腳。
VDD:電源輸入端,為邏輯電路及SPI供電,電壓為4.5~5.5。
RST:復位端,當主控電路要復位或者要使電路進(jìn)入睡眠狀態(tài)時(shí),應將此引腳置0使電路回到默認狀態(tài)。該引腳在電路內部接有上拉電阻器。
VPWR:電池電壓,電源輸出端。電壓范圍為6.5V~26.0V,工作電流小于6.0mA。
圖2
3 SPI的引腳及通信協(xié)議
SPI為同步串行外部設備接口,可以進(jìn)行16位數據的雙向傳輸,MC33991中有4個(gè)引腳:SI、SO、SCLK、CS與之相關(guān)。其中SI與SO引腳遵循先入先出(FIFO)協(xié)議進(jìn)行數據輸入和輸出。所有輸入引腳都需要5.0V的CMOS驅動(dòng)電平。下面具體加以介紹:
片選端CS:是主控電路與MC33991進(jìn)行通訊的使能端。當CS為0時(shí),MC33991型步進(jìn)電機驅動(dòng)器與主控電路傳輸數據。MC33991在CS端輸入信號的上升沿鎖存輸入數據,當CS為0時(shí),輸出端SO輸出信號有效;當CS為1時(shí),SI與SCLK引腳的輸入信號被忽略,SO端為高阻狀態(tài)。只有當SCLK為0時(shí),CS端的信號才可以由1轉換為0,CS端在電路內部接上拉電阻器,專(zhuān)門(mén)控制I/O端口。
串行時(shí)鐘輸入端SCLK(同步時(shí)鐘):SCLK端口為MC33991內部寄存器轉換提供時(shí)鐘信號。在其下降沿SI的信號被轉換到寄存器內部,在其上升沿同時(shí)SO的信號將寄存器中的數據轉換成輸出信號,SCLK引腳在電路內部接下拉電阻器。
串行輸入端SI:SPI的輸入端,串行輸入信號在SCLK的下降沿被讀取。輸入的數據為16位,從最高位(MSB)開(kāi)始傳輸。其他的多重數據信息(16位以后的數據)將被忽略,傳輸完16位數據后,在傳輸新數據之前CS必須置1。當CS為高電平時(shí),輸入數據被忽略。
串行輸出端SO:寄存器的輸出端口,有3種狀態(tài)(0、1、高阻)。數據在SCLK信號的上升沿被輸出,當CS為高電平時(shí),SO引腳為高阻狀態(tài)。
4 MC33991的寄存器
MC33991型驅動(dòng)器可以與微處理器直接相連,并通過(guò)16位SPI進(jìn)行數據傳輸,微處理器向驅動(dòng)器輸入控制數據,驅動(dòng)器向微處理器輸出反饋信息。MC33991內部的寄存器及其功能如表1所列。
表1 MC33991內部寄存器
地址(13~15位) | 用 途 | 名 稱(chēng) |
000 | 能量、使能以及校準寄存器 | PECR |
001 | 最大運行速度寄存器 | VELR |
010 | 步進(jìn)電機0的位置寄存器 | POS0R |
011 | 步進(jìn)電機1的位置寄存器 | POS1R |
100 | 回零寄存器 | RTZR |
101 | 回零配置寄存器 | RTZCR |
110 | 未用 | |
111 | 測試用 |
MC33991內部有6個(gè)寄存器,分別用來(lái)控制和記錄4個(gè)H橋的輸出狀態(tài),它們的地址由SPI所輸入的16位數據中的15-13位來(lái)決定,主要功能如下:
(1)控制方面
獨立控制每個(gè)電機的工作;
控制電源的升降;
校準內部時(shí)鐘;
決定步進(jìn)電機指針的位置和移動(dòng)的速度;
控制指針的回零校準。
(2)狀態(tài)輸出方面
分別指示玩二個(gè)步進(jìn)電機是否有過(guò)熱現象;
指示電池電壓是否過(guò)高;
指針回零狀態(tài)指示;
內部時(shí)鐘狀態(tài)指示;
指示輸出與指針運動(dòng)是否相符。
在這6個(gè)寄存器中,能量、使能及校準寄存器(PECR)能夠使主控電路獨立控制每個(gè)步進(jìn)電機驅動(dòng)信號的輸出或禁止。同時(shí)還可以幫助校準電路的內部時(shí)鐘,發(fā)出空指令以得到狀態(tài)位的數據,還可以控制MC33991使其工作在“睡眠狀態(tài)”。
圖3
最大運行速度寄存器(VELR)的第0-7位可以表示0-255個(gè)不同的數據,用來(lái)設定電機運行的最高速度,第8位和第9位分別用來(lái)控制是否將這一最大速度應用到各個(gè)步進(jìn)電機上。
步進(jìn)電機0/1的位置寄存器(POS0R/POS1R)可以分別確定0號步進(jìn)電機和1號步進(jìn)電機指針的位置。寄存器的0-11位表示4096個(gè)不同的數據,從而使電機批易地的位置在0-4095之間變化。
回零寄存器(RTZR)的第0位決定是哪個(gè)電機回零,第1位為回零的使能位。2-3位決定輸出哪8位數據,第4位為決定是無(wú)條件回零還是自動(dòng)回零,5-12位必須置0。
回零配置寄存器(RTZCR)用來(lái)設定指針回零需用的參數,主要包括每一整步所用的時(shí)間、速率及空白時(shí)間的大小??瞻讜r(shí)間指一相線(xiàn)圈斷電與下一相線(xiàn)圈通電之間的延遲時(shí)間(512μs或768μs)。該寄存器還可用來(lái)判斷指針的狀態(tài)是運動(dòng)還是靜止。
狀態(tài)輸出寄存器:當CS為低電平時(shí),狀態(tài)輸出寄存器會(huì )把它其中的16位數據通過(guò)SO端輸入到主控電路,為主控電路提供步進(jìn)電機驅動(dòng)及運行狀況的信息。此寄存器為只讀寄存器。其中15-8位和第7位用來(lái)指示內部時(shí)鐘是否需要校準;第6位用來(lái)指示驅動(dòng)電源電壓是否正常;第5/4位用來(lái)指示在上一條指令發(fā)出后1/0號步進(jìn)電機的狀態(tài)(正步/運動(dòng));第3/2位指示步進(jìn)電機1/0是否處在回零狀態(tài);第1/0位指示步進(jìn)電機1/0的溫度是否正常。圖2和圖3分別示出MC33991的輸入、輸出時(shí)序。
評論