摘 要: 以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信號占空比一致,,即每個占空比數值都對應一個旋轉角度,。
鎖相環(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波,使用時不影響計數器運行,,也極少占用CPU資源,。MC9S12DG128B可提供優(yōu)異的高頻率、高分辨率,、占空比可調的,、寬范圍的PWM信號[1,5],。
8路獨立PWM通道通過相應設置可變成4個16 bit PWM通道,,每個通道都有專用的計數器,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所示,。基于MC9S12DG128B實驗板,,實現(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輸出脈沖幅值減小,??蓱糜跍y量精度控制,在較小的范圍內同時提高了運算速度和測量量程,,能更加簡單,、穩(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.