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