基于S3C2440A的直流電機(jī)轉(zhuǎn)速控制系統(tǒng)設(shè)計
3 系統(tǒng)的軟件設(shè)計
S3C2440A有5個16位的定時器。定時器0,1,2,3有脈寬調(diào)制功能。定時器4有一個沒有輸出引腳的內(nèi)部定時器,定時器0有一個用于大電流設(shè)備的死區(qū)生成器。
定時器0和1共用一個8位預(yù)分頻器,定時器2,3,4共用另一個8位預(yù)分頻器。每個定時器有1個時鐘分頻器,可以生成5種不同的分頻信號:1/2,1/4,1/8,1/16和TCLK。每個定時器模塊從時鐘分頻器接收自己的時鐘信號,其分頻器從相應(yīng)的8位預(yù)分頻器接收時鐘。8位預(yù)分頻器是可編程的并且根據(jù)裝載的值來分頻PCLK,它的值存儲在TCFG0和TCFG1寄存器。
3.1 定時器工作方式
在S3C2440A中,每個定時器都有自己的16位減法計數(shù)器,由定時器時鐘驅(qū)動。當(dāng)定時器使能,定時器計數(shù)緩存寄存器(TCNTBn)得到一個被裝載到遞減計數(shù)器中的初始值。定時器比較緩存寄存器(TCMPBn)有一個被裝載到比較寄存器中用來和遞減計數(shù)器的值作比較的初始值。TC-NTBn和TCMPBn的雙緩存特點使得當(dāng)頻率與負(fù)荷比發(fā)生改變時,定時器可以有1個穩(wěn)定的輸出。
定時器的啟動步驟如下:
(1)寫初始值到TCNTBn和TCMPBn。
(2)設(shè)置對應(yīng)定時器的手動更新位,反相器設(shè)置為off狀態(tài)。
(3)設(shè)置對應(yīng)定時器的啟動位開啟定時器,同時清除手動更新位。
此時定時器開始倒數(shù),當(dāng)定時器計數(shù)器為0時,定時器發(fā)出中斷請求,通知處理器定時結(jié)束。此時,對應(yīng)TCNTBn的值將自動載入計數(shù)器,從而可以進(jìn)入下一個操作。如果定時器已經(jīng)停止,清除TCONn中的定時器使能位,則TCNTBn中的值將不會被載入到計數(shù)器中。
3.2 PWM脈寬調(diào)制
對于定時器來說,其時鐘源輸入頻率一般不變。電動機(jī)的轉(zhuǎn)速與電機(jī)兩端的電壓成正比,而電機(jī)兩端的電壓與控制波形的占空比成正比,因此電機(jī)的速度與占空比成正比,占空比越大,電機(jī)轉(zhuǎn)速越快。而S3C2440A系統(tǒng)中PWM頻率由TCNTBn決定,PWM脈沖寬度由TCMPBn決定,占空比即為TCMPBn/TCNTBn。
如果使電機(jī)轉(zhuǎn)速下降,可以減少TCMPBn的值;相反可以增加TCMPBn的值。由于雙緩沖的特性,為了獲得下一個正確的PWM周期,可以在當(dāng)前PWM周期的任意點通過ISR或其他程序來寫TCMPBn。
S3C2440A設(shè)置PWM的流程圖如圖3所示。
評論