實驗三Timer部件驅(qū)動馬達_第1頁
實驗三Timer部件驅(qū)動馬達_第2頁
實驗三Timer部件驅(qū)動馬達_第3頁
實驗三Timer部件驅(qū)動馬達_第4頁
實驗三Timer部件驅(qū)動馬達_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、電機轉(zhuǎn)動控制實驗一、實驗目的 1熟悉 ARM 本身自帶的六路即三對 PWM,掌握相應寄存器的配置。 2編程實現(xiàn)ARM 系統(tǒng)的PWM 輸出用于控制直流電機。 3了解直流電機的工作原理, 4掌握帶有 PWM 的 CPU 編程實現(xiàn)其相應功能的主要方法。 二、實驗內(nèi)容 學習直流電機的工作原理,了解實現(xiàn)電機轉(zhuǎn)動對于系統(tǒng)的軟件和硬件要求。學習 ARM知識,掌握 PWM 的生成方法。 編程實現(xiàn) ARM 芯片的一對 PWM 輸出用于控制直流電機的轉(zhuǎn)動,并實現(xiàn)三級速度變化。三、預備知識 1、用 ARM ADS1.2 集成開發(fā)環(huán)境,編寫和調(diào)試程序的基本過程。 2、ARM 應用程序的框架結(jié)構(gòu)。 3、了解直流電機的基

2、本原理。 四、實驗設備及工具 硬件:ARM嵌入式開發(fā)平臺、用于 ARM920T 的 JTAG仿真器、PC 機 Pentium100 以上。 軟件: PC 機操作系統(tǒng) Win2000 或 WinXP、ARM ADS1.2 集成開發(fā)環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序 。五、實驗原理及說明 1、直流電機 1)直流電動機的 PWM 電路原理 晶體管的導通時間也被稱為導通角,若改變調(diào)制晶體管的開與關的時間,也就是說通過改變導通角的大小,如圖1 所示,來改變加在負載上的平均電壓的大小,以實現(xiàn)對電動機的變速控制,稱為脈寬調(diào)制 (PWM)變速控制。在 PWM 變速控制中,系統(tǒng)采用直流電源,放大器的頻率是固

3、定,變速控制通過調(diào)節(jié)脈寬來實現(xiàn)。2 / 22構(gòu)成 PWM 的功率轉(zhuǎn)換電路或者采用"H"橋式驅(qū)動,或者采用 "T"式驅(qū)動。由于"T"式電路要求雙電源供電,而且功率晶體管承受的反向電壓為電源電壓的兩倍。因此只適用于小功率低電壓的電動機系統(tǒng)。而"H"橋式驅(qū)動電路只需一個電源,功率晶體管的耐壓相對要求也低些,所以應用得較廣泛,尤其用在耐高壓的電動機系統(tǒng)中。 圖1 脈寬調(diào)制 (PWM)變速原理2)直流電動機的 PWM 等效電路 如圖2a 所示:是一個直流電動機的 PWM 控制電路的等效電路。在這個等效電路中,傳送到負載 (電

4、動機)上的功率值決定于開關頻率、導通角度及負載電感的大小。開關頻率的大小主要和所用功率器件的種類有關,對于雙極結(jié)型晶體管(GTR),一般為lkHz 至5kHz,小功率時(100W,5A以下)可以取高些,這決定于晶體管的特性。對于絕緣柵雙極晶體管(IGBT),一般為5kHz至l2kHz;對于場效應晶體管(MOSFET),頻率可高達20kHz。另外,開關頻率還和電動機電感有關,電感小的應該取得高些。 (a)等效電路 b) PWM 電路中電流和電壓波討論圖2當接通電源時,電動機兩端加上電壓 Up,電動機儲能,電流增加,當電源中斷時,電樞電感所儲的能量通過續(xù)流二極管 VD繼續(xù)流動,而儲藏的能量呈下降的

5、趨勢。 除功率值以外,電樞電流的脈動量也與電動機的轉(zhuǎn)速無關,僅與開關周期、正向?qū)〞r間及電機的電磁時間常數(shù)有關。 3)直流電動機 PWM 電路舉例 圖3 為直流電動機 PWM 電路的一個例子。它屬于"H"橋式雙極模式 PWM 電路。圖3 直流電動機 PWM 電路舉例電路主要由四部分組成,即三角波形成電路、脈寬調(diào)制電路、信號延遲及信號分配電 路和功率電路。電路中各點波形如圖4 所示。其中信號延遲電路是為了防止"共態(tài)直通"而設置的。一般延遲時間調(diào)整在(1030)ps之內(nèi),根據(jù)晶體管特性而定。其原理簡單敘述如下:功率電路主要由四個功率晶體管和四個續(xù)流二極管組成

6、。四個功率晶體管分為兩組,V1 與V4、V2 與 V3分別為一組,同一組的晶體管同時導通,同時關斷。基極的驅(qū)動信號 Ub1 = Ub2,Ub3=Ub4。其工作過程為: ·在 t1 t2 期間, Ub1> 0 與 Ub4 > 0,V1與 V4導通,V2與 V3截止,電樞電流沿回路l 流通。 ·在 t2 T+ t1 期間,Ub1< 0與 Ub4 < 0,V1 與 V4截止, Ub2 > 0 與 U b 3> 0 但此時由于電樞電感儲藏著能量,將維持電流在原來的方向上流動,此時電流沿回路 2 流通;經(jīng)過跨接于 V2 與 V3 上的續(xù)流二極管 V

7、D4、VD5。受二極管正向壓降的限制,V2 與 V3 不能導通。 ·T+ t1 之后,重復前面的過程。 ·反向運轉(zhuǎn)時,具有相似的過程。 圖4 各點波形4)開發(fā)平臺中直流電機驅(qū)動的實現(xiàn) 開發(fā)板中的直流電機的驅(qū)動部分如圖5所示;由于 S3C2410X芯片自帶PWM 定時器,所以控制部分省去了三角波產(chǎn)生電路、脈沖調(diào)制電路和 PWM 信號延遲及信號分配電路,取而代之的是 S3C2410X芯片的定時器 0、1 組成的雙極性 PWM 發(fā)生器。 2、Timer部件-S3C2410X雙極性 PWM 發(fā)生器 Timer部件主要是用于提供定時功能、脈寬調(diào)制(PWM)功能的部件,它的應用比較靈活

8、,對于需要一定頻率的脈沖信號、一定時間間隔的定時信號的應用場合,它都能提供應用支持。下面主要對S3C2410芯片內(nèi)部的Timer部件進行介1)概況S3C2410芯片內(nèi)部擁有5個16位的Timer部件。其中Timer0,Timer 1,Timer 2,Timer 3具有脈寬調(diào)制(PWM)功能。Timer4僅作定時器用,不具有PWM功能,因為它沒有輸出引腳。Timer0有一個死區(qū)(dead-zone)發(fā)生器,通常用于大電流設備應用。Timer 0和Timer 1共享一個8位的預分頻器,而Timer 2,Timer 3,Timer 4共享另一個8位的預分頻器。另外還有2個具有5種分頻系數(shù)的時鐘分割器

9、,5種不同的分頻系數(shù)是:1/2,1/4,1/8,1/16和TCLK。其中,Timer 0和Timer 1共享一個4位的分割器,而Timer 2,Timer 3,Timer 4共享另一個4位的分割器。每個Timer部件接收的時鐘是經(jīng)過預分頻器、分割器分頻后的、僅提供給自己的時鐘信號。8位的預分頻器、分割器均可編程設定。S3C2410芯片內(nèi)部的Timer部件功能框圖如圖7-6所示。圖5 Timer部件內(nèi)部功能框圖TCNTBn是定時器的計數(shù)緩沖寄存器,初始化應給其賦一個初值,該初值在定時器啟動時加載進遞減計數(shù)器中。TCMPBn是定時器(但Timer4沒有)的比較緩沖寄存器,初始化時也給其賦一個初值,

10、該初值被加載進比較寄存器,以便與遞減計數(shù)器中的值比較。TCNTBn和TCMPBn的雙緩沖機制,保證了Timer部件在頻率和占空比發(fā)生改變時能有一個穩(wěn)定的輸出。2) Timer部件的操作每個定時器都有他自己的16位遞減計數(shù)器TCNTn,該計數(shù)器是通過定時器自己的時鐘驅(qū)動的。當遞減計數(shù)器減為0時,可產(chǎn)生定時器中斷請求信號,該中斷信號通知微處理器定時器的操作已經(jīng)完成了。當定時器計數(shù)器中的值為0時,TCNTBn的值將自動加載到遞減計數(shù)器,以開始下一輪定時操作。但是,如果定時器停止工作,那么TCNTBn的值就不會被重新加載到計數(shù)器中。TCMPBn的值用于脈寬調(diào)制。當遞減計數(shù)器的值和定時器控制邏輯中的比較

11、寄存器值相匹配時,定時器控制邏輯將改變輸出電平(output level)。因此,比較寄存器確定脈寬調(diào)制信號輸出的上升時間(或者下降時間)。(1) 基本的定時器操作每個定時器(除了定時器4外)都有TCNTBn,TCNTn,TCMPBn和TCMPn。在TCNTn的值達到0時,TCNTBn和TCMPBn被分別加載到TCNTn和TCMPn中。同時,如果中斷使能的話,將會提出中斷請求。TCNTn和TCMPn是內(nèi)部寄存器,TCNTn計數(shù)器的值可以通過TCNTOn寄存器讀出。定時器基本操作的過程如圖6所示。圖6 定時器操作(2)自動重載和雙緩沖器S3C2410芯片的PWM定時器有雙緩沖功能,該功能可以在不

12、停止當前定時器操作的情況下,重新加載為下一輪定時器操作而改變的值。在這種機制下,盡管設置了新的定時器計數(shù)值,但是當前定時器的操作不受影響,還是按原計數(shù)值完成操作。定時器計數(shù)值可以寫入定時器計數(shù)緩沖寄存器(TCNTBn)中,而當前定時器的計數(shù)值可以從定時器計數(shù)觀察寄存器(TCNTOn)中讀到。如果讀取TCNTBn的值,讀到的值不一定是當前定時器的計數(shù)值,但一定是下一輪定時器操作的計數(shù)值。當TCNTn值達到0時,自動重載操作將TCNTBn的值拷貝至TCNTn中。寫入到TCNTBn中的值,僅在TCNTn值為0并且自動重載使能時,被加載到TCNTn中。如果TCNTn值變?yōu)?并且自動重載不使能,那么,T

13、CNTn就不會進一步操作。一個雙緩沖功能的例子如圖7所示。圖7 一個雙緩沖功能的例子(3)采用手動更新方式初始化定時器當遞減計數(shù)器的值為0時,定時器自動重載操作就會發(fā)生。但若在重載發(fā)生之前,TCNTn的初始值還沒有設置,在這種情況下,就必須通過手動更新位來加載TCNTn的初值。啟動一個定時器操作的步驟如下:1) 將初始值寫到TCNTBn和TCMPBn中2) 設置相應的定時器的手動更新位。3) 設置相應的定時器的啟動位來啟動定時器,并清除手動更新位。如果定時器被強制停止,TCNTn仍保持著當前計數(shù)值,而不會從TCNTBn重新加載計數(shù)值。如果需要重新啟動定時操作,則必須設置新的計數(shù)值,這也要采用手

14、動更新的方式。如圖8所示,若要產(chǎn)生圖中所示脈沖信號波形,則要進行如下步驟的操作:1)使能自動重載功能位。設置TCNTBn的值為160(50+110),TCMPBn的值為110。設置手動更新位和配置反轉(zhuǎn)器位(開/關)。手動更新位分別設置TCNTn和TCMPn為TCNTBn和TCMPBn的值。然后,再分別設置TCNTBn的值和TCMPBn的值為80(40+40)和40,用作下一輪的重載值。2)設置啟動位,將手動更新位清為0,反轉(zhuǎn)器置為off,自動重載使能。定時器的遞減計數(shù)器開始啟動工作。3)當TCNTn的值達到與TCMPn的值相同時,TOUTn的邏輯電平由低變高。4)當TCNTn的值達到0時,產(chǎn)生

15、中斷請求,同時TCNTBn的值加載到一個臨時寄存器中。在下一節(jié)拍的定時器操作開始時,TCNTn從臨時寄存器中重新加載計數(shù)值。5)在中斷服務程序中,TCNTBn的值和TCMPBn的值分別設置為80(20+60)和60,用于下一輪的定時操作。6)當TCNTn的值達到與TCMPn的值相同時,TOUTn的邏輯電平由低變高。7)當TCNTn的值達到0時,TCNTn自動重載TCNTBn中的值,并觸發(fā)一個中斷請求。8)在中斷服務程序中,自動重載和中斷請求被禁止,從而停止定時器工作。9)當TCNTn的值達到與TCMPn的值相同時,TOUTn的邏輯電平由低變高。10)當TCNTn的值遞減計數(shù)到0時,由于自動重載

16、被禁止,因此TCNTn不再重載計數(shù)值,并且定時器停止。11)不再產(chǎn)生中斷請求。圖8 定時器產(chǎn)生的一個脈沖信號(4)脈寬調(diào)制(PWM)PWM脈沖寬度值由TCMPBn確定,而PWM脈沖頻率值由TCNTBn確定。如圖9所示。若要得到一個較高的PWM脈寬輸出值,需增加TCMPBn的值。若要得到一個較低的PWM脈寬輸出值,需減少TCMPBn的值。如果輸出反轉(zhuǎn)器被使能,增加和減少的結(jié)果將是反轉(zhuǎn)的?;陔p緩沖器的功能,下一輪PWM周期的TCMPBn的值,可以通過中斷服務程序或其他方法,在當前PWM周期內(nèi)任何時刻寫入。圖9 PWM的脈寬實例(5)輸出電平控制以下的方法用來保持TOUT的電平為高或低(假設反轉(zhuǎn)器

17、關閉):·關閉自動加載位。然后,TOUTn的電平變?yōu)楦撸〞r器在TCNTn遞減計數(shù)到0時停止,推薦使用這種模式。·通過將定時器的啟動/停止位清為0來停止定時器工作。如果TCNTn的值小于等于TCMPn的值,輸出電平為高。如果TCNTn的值大于TCMPn的值,輸出電平為低。·TOUTn可以通過設置TCON中的反轉(zhuǎn)器的on/off位來反轉(zhuǎn)。經(jīng)過反轉(zhuǎn)器反轉(zhuǎn)的PWM信號如圖10所示。圖10 反轉(zhuǎn)器反轉(zhuǎn)后的效果(6)死區(qū)發(fā)生器死區(qū)發(fā)生器用于對大功率設備進行PWM控制。這個功能用于在一個開關設備的斷開和另一個開關設備的閉合之間插入一個時間間隙。這個時間間隙使得兩個開關設備不可

18、能同時被打開,即使是很短的一段時間。圖11所示的是死區(qū)使能時的輸出波形圖。TOUT0是PWM的輸出,nTOUT0是TOUT0的反轉(zhuǎn)輸出。如果死區(qū)被使能,那么從TOUT0和nTOUT0輸出的波形將分別是TOUT0_DZ和nTOUT0_DZ(如圖11所示)。在死區(qū)的間隙中,TOUT0_DZ和nTOUT0_DZ不可能同時出現(xiàn)高電平。圖11 死區(qū)使能時的輸出波形 3)PWM 發(fā)生器用到的寄存器(1)定時器配置寄存器0(TCFG0)定時器配置寄存器0(TCFG0)是可讀/寫的,主要用來設置預分頻系數(shù)。其地址為:0x51000000,復位后的初值為0x00000000。TCFG0寄存器的具體格式如表1所示

19、。表1 TCFG0寄存器的格式符號位描述初始狀態(tài)Reserved31:24保留0x00Dead zone length23:16這8位用于確定死區(qū)長度,死區(qū)長度的1個單位等于Timer0的定時間隔。0x00Prescaler 115:8這8位確定Timer2、Timer3、Timer4的預分頻器值。 0x00Prescaler 07:0這8位確定Timer0、Timer1的預分頻器值。0x00(2)定時器配置寄存器1(TCFG1)定時器配置寄存器1(TCFG1)是可讀/寫的,主要用來設置分割器值。其地址為:0x51000004,復位后的初值為0x00000000。TCFG1寄存器的具體格式如表

20、2所示。表2 TCFG1寄存器的格式符號位描述初始狀態(tài)Reserved31:24保留0x00DMA mode23:20選擇產(chǎn)生DMA請求的定時器。0000=不選擇(所有采用中斷請求)0001=Timer0 0010=Timer10011=Timer2 0100=Timer30101=Timer4 0110=保留0000MUX419:16選擇Timer4的分割器值。0000=1/2 0001=1/4 0010=1/80011=1/16 01XX=外部TCLK1 0000MUX315:12選擇Timer3的分割器值。0000=1/2 0001=1/4 0010=1/80011=1/16 01XX=

21、外部TCLK10000MUX211:8選擇Timer2的分割器值。0000=1/2 0001=1/4 0010=1/80011=1/16 01XX=外部TCLK10000MUX17:4選擇Timer1的分割器值。0000=1/2 0001=1/4 0010=1/80011=1/16 01XX=外部TCLK00000MUX03:0選擇Timer0的分割器值。0000=1/2 0001=1/4 0010=1/80011=1/16 01XX=外部TCLK00000通過TCFG0、TCFG1的設置,可以確定預分頻系數(shù)和分割器值,最終通過下面公式計算定時器輸入時鐘頻率。定時器輸入時鐘頻率= PCLK /

22、(預分頻系數(shù)+1) / (分割器值)預分頻系數(shù)的范圍 = 0255分割器值的取值范圍 = 2, 4, 8, 16(3)定時器控制寄存器(TCON)定時器控制寄存器(TCON)是可讀/寫的,其地址為:0x51000008,復位后的初值為0x00000000。TCON寄存器的具體格式如表3所示。表3 TCON寄存器的格式符號位描述初始狀態(tài)Timer422確定Timer4的自動裝載功能位1=自動裝載 0=一次停止 0Timer421確定Timer4的手動更新位1=更新TCNTB4 0=不操作0Timer420確定Timer4的啟動/停止位1=啟動 0=停止0Timer319確定Timer3的自動裝載

23、功能位1=自動裝載 0=一次停止 0Timer318確定Timer3的輸出反轉(zhuǎn)位1=TOUT3反轉(zhuǎn) 0=不反轉(zhuǎn)0Timer317確定Timer3的手動更新位1=更新TCNTB3和TCMPB3 0=不操作0Timer316確定Timer3的啟動/停止位1=啟動 0=停止0Timer215確定Timer2的自動裝載功能位1=自動裝載 0=一次停止 0Timer214確定Timer2的輸出反轉(zhuǎn)位1=TOUT2反轉(zhuǎn) 0=不反轉(zhuǎn)0Timer213確定Timer2的手動更新位1=更新TCNTB2和TCMPB2 0=不操作0Timer212確定Timer2的啟動/停止位1=啟動 0=停止0Timer111確

24、定Timer1的自動裝載功能位1=自動裝載 0=一次停止 0Timer110確定Timer1的輸出反轉(zhuǎn)位1=TOUT1反轉(zhuǎn) 0=不反轉(zhuǎn)0Timer19確定Timer1的手動更新位1=更新TCNTB1和TCMPB1 0=不操作0Timer18確定Timer1的啟動/停止位1=啟動 0=停止0Reserved7:5保留000Dead zone 4確定死區(qū)操作位1=使能 0=不使能0Timer03確定Timer0的自動裝載功能位01=自動裝載 0=一次停止 Timer02確定Timer0的輸出反轉(zhuǎn)位1=TOUT0反轉(zhuǎn) 0=不反轉(zhuǎn)0Timer01確定Timer0的手動更新位1=更新TCNTB0和TCMPB0 0=不操作0Timer00確定Timer0的啟動/停止位1=啟動 0=停止0(4)Timer0計數(shù)緩沖寄存器和比較緩沖寄存器(TCNTB0/TCMPB0)Timer0計數(shù)緩沖寄存器(TCNTB0)是可讀/寫的,其地址為:0x5100000C,復位后的初值為0x00000000。Timer0比較緩沖寄存器(TCMPB0)是可讀/寫的,其地址為:0x51000010,復位后的初值為0x00000000。TCNTB0和TCMPB0寄存器的具體格式如表4所示。表4 TCNTB0/TCMPB0寄存器的格

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論