摘 要: 以MC9S12DG128作為核心控制單元,利用MC9S12DG128實現(xiàn)了超頻條件下的高精度PWM輸出。隨著輸出PWM精度的增加,PWM輸出的幅值開始減小,同時PWM輸出脈沖幅值減小,超頻狀態(tài)下可應用于高精度PWM輸出系統(tǒng)中。
關鍵詞: 單片機;頻率;測量
MC9S12DG128微控制器[1-3]是Freescale公司M68HC12系列16位單片機中的一種。由于具有抗干擾能力強、傳輸距離遠、接口簡單靈活、占用資源少等特點,在許多測控系統(tǒng)中得到了廣泛的應用。本文采用MC9S12DG128單片機作為控制芯片,提出了減小誤差的測量方法,并在此基礎上編寫了程序設計流程。
微控制器的脈沖寬度調制(PWM)模塊是工業(yè)控制和新型消費機電產品中最常用的技術。脈寬調制波可用軟件程序來控制波形占空比、周期和相位,廣泛地應用在直流電機調速、伺服電機控制方向盤,伺服電機的旋轉角度與給定的PWM信號占空比一致,即每個占空比數(shù)值都對應一個旋轉角度。
鎖相環(huán)產生的時鐘頻率可由下式得到:
fPLLCLK=2×fOSCCLK×(SYNR+1)/(REFDV+1)(1)
式中:fPLLCLK為振蕩器頻率;SYNR為時鐘合成寄存器的值;REFDV為時鐘分頻寄存器的值。對于CPU12可以選用8 MHz或者16 MHz外部晶體振蕩器作為外時鐘選用8 MHz晶振時,若將SYNR設為2,REFDV設為1,可以得到24 MHz的總路線頻率,接近S12微控制器的上限內部總路線頻率25 MHz。
S12微控制器產生PWM波形的方法主要有兩種:軟件輸出比較和PWM硬件模塊。利用輸出比較功能可以通過軟件設定輸出任意脈沖,但會占用CPU資源,而且不易產生精確的脈沖序列,F(xiàn)reescale S12微控制器集成了PWM模塊,專門用于輸出PWM波,使用時不影響計數(shù)器運行,也極少占用CPU資源。MC9S12DG128B可提供優(yōu)異的高頻率、高分辨率、占空比可調的、寬范圍的PWM信號[1,5]。
8路獨立PWM通道通過相應設置可變成4個16 bit PWM通道,每個通道都有專用的計數(shù)器,PWM輸出極性和對齊方式可選擇。8個通道分成兩組,共有4個時鐘源控制。通道0、1、4、5為一組,使用時鐘源ClockA和ClockSA;通道2、3、6、7構成另一組,使用時鐘源ClockB和ClockSB。PWM模塊內部結構框圖如圖1所示。ClockA和ClockSA均源于總線時鐘,可通過軟件編程設定[1]。
1 開發(fā)軟件
開發(fā)軟件采用Freescal公司為S12系列處理器提供的嵌人式應用開發(fā)軟件包,“Codewarrior for S12”是一款專為工程人員設計的功能強大的圖形化編程軟件,包含集成開發(fā)環(huán)境IDE、處理器專家系統(tǒng)和全芯片仿真等[4]。
2 實驗實現(xiàn)方法
PWM常用來輸出一定周期和占空比的脈沖序列。程序流程如圖2所示?;贛C9S12DG128B實驗板,實現(xiàn)從PTP0口輸出10 kHz的信號,時鐘源采用ClockA、ClockB,總線時鐘BusClock=8 MHz[1-4]。
3 實驗分析
根據上述實驗方法建立實驗平臺,采用Freescal公司的Codewarrior軟件編程,超頻狀態(tài)下,通過不同的超頻設置,時鐘合成寄存器SYNR的值為4或6,并設置PWM具有0.1‰~0.5‰不等,得到的波形圖如圖3所示。
通過實驗輸出波形圖3(a)可以看出此時輸出PWM精度為0.5‰,有效PWM輸出點兩個,輸出脈沖幅值穩(wěn)定在940 mV×4.8,掃描頻率為50 ?滋s,輸出穩(wěn)定。
通過圖3(b)可以看出此時輸出PWM精度為0.1‰,最大脈沖幅值為940 mV×3.9,且此時間點另一脈沖無輸出。此時SYNR為6,PWM輸出失真。
通過圖3(c)可以看出輸出PWM精度為0.25‰,有效PWM輸出點兩個,最大脈沖幅值940 mV×4.1,最小脈沖幅值940 mV×0.5,其他脈沖間隔點無輸出,此時SYNR為6,PWM輸出失真。
通過圖3(d)可以看出此時輸出PWM精度為0.5‰,有效PWM輸出點4個,最大脈沖幅值940 mV×4.1,最小脈沖幅值940 mV×0.5,其他脈沖間隔點無輸出。此時SYNR為6,PWM輸出失真。
通過圖3(e)可以看出此時輸出PWM精度為0.1‰,有效PWM輸出點兩個,最大脈沖幅值940 mV×4.8,最小脈沖幅值940 mV×1.5,其他脈沖間隔點無輸出,此時SYNR為4,PWM輸出失真。
通過圖3(f)可以看出此時輸出PWM精度為0.25‰,有效PWM輸出點5個,輸出脈沖幅值穩(wěn)定在940 mV×4.8,掃描頻率為50 μs,輸出穩(wěn)定,產生的輸出有效,但PWM幅值相對不穩(wěn)定。
選用MC9S12DG128作為控制核心,在CodeWarrior系列集成開發(fā)環(huán)境下開發(fā)了軟件系統(tǒng)。在相同超頻條件下,精度越高的PWM輸出值輸出狀態(tài)越不穩(wěn)定,隨著輸出PWM精度的增加,PWM輸出的幅值開始減小,同時PWM輸出脈沖幅值減小。可應用于測量精度控制,在較小的范圍內同時提高了運算速度和測量量程,能更加簡單、穩(wěn)定、經濟、方便地應用于頻率測量系統(tǒng)。
參考文獻
[1] 王威.HCS12微機控制器與原理及應用[M].北京:北京航空航天大學出版社,2007.
[2] 常波.高精度PWM輸出的溫度傳感器MAx6666/6667的特性及應用[J].現(xiàn)化電子技術,2004,27(6):8-9.
[3] Freescale Semi-Conductor Inc.MC9S12-DG128B device user guide[DB/OL].http://www.reescale.com/webapp/sps/site/S12/MC9S-12DG128B.pdf.2005.
[4] STEVEN F B,DANIEL J P.嵌入式系統(tǒng)——使用68HC12和HCS12的設計與應用[M].鄭扣根,唐杰,何通能,等譯. 北京:電子工業(yè)出版社,2006.
[5] 俞應華,黃寅.精度頻率測量技術在單片機系統(tǒng)中的應用[J].現(xiàn)代計量測試,1998(3):21-23.