在要求脈寬調制(PWM)輸出功能或需要產生模擬電壓來控制外部器件,而微控制器本身內部不具備這些功能時,有幾種方法可以用來產生脈寬調制輸出,最簡單的方法是從微控制器專用PWM定時器中產生。然而,并不是所有的微控制器都具有PWM定時器。另一種方法是用片上16位可編程脈沖發生器(PPG)的定時器來實現該功能,內置16位PPG定時器的微控制器可以配置成PWM模式來產生周期不變、具有各種脈沖寬度的波形,并與一個專用的外部或軟件觸發器保持同步。 PWM的一些典型應用如控制汽車尾燈或儀表盤亮度的調光器、小型直流風扇的電機速度控制器、小型加熱器控制器,甚至是數模轉換器(DAC),在這些DAC上增加一些簡單的外部電路,就可以在精度要求不太高的應用中用來控制外部器件。 為一個儀表盤燈光調節器,MB90F428G是一個具有PPG功能的微控制器。將微控制器的16位PPG定時器配置為連續PWM模式來獲得脈寬調制輸出,以用于汽車儀表盤燈光亮度控制。產生的PWM與內部軟件觸發器同步,或與一個外部觸發器同步。 MCU使用一個4MHz的主時鐘,通過內部分頻器可以得到期望的時鐘頻率,將該頻率作為16位遞減計數器的輸入。PCSR是一個用于設置間隙時間的16位數據寄存器;PDUT是用于占空比設置的16位比較寄存器,也是一個引腳控制字段。脈沖輸出的間隙時間和占空比可以通過改變這兩個16位寄存器的值來自由設置,該特性能幫助PPG工作在PWM模式。在PWM模式中,當外部觸發信號位于“P05/SCK1/TRG”引腳處,或內部軟件觸發器產生信號時,將發出一個起動觸發信號,在檢測到該觸發信號后MCU將產生連續脈沖輸出。另一個重要的16位寄存器是“PCNT”,這是一個PPG控制和狀態寄存器,從0到15位可以用來選擇所需的時鐘、模式(如PWM)、觸發類型、PPG輸出使能,以及中斷請求。 說明了PPG作為PWM輸出的功能配置,通過精確控制PWM輸出的周期和占空比可以改變白熾燈的亮度。MC3392是一個具有故障報告功能的單低邊保護開關。輸入到MC3392的信號可以兼容CMOS、TTL電平,該信號從微控制器的PPG0引腳91輸出。典型的脈沖調制輸出頻率是80Hz,該頻率可以避免產生眼睛可以感覺的閃爍,輸出脈沖的占空比可以在3%至97%之間設置,當為3%時燈不亮,而在97%時燈看起來一直處于導通狀態。MC3392有一個1A的內部短路保護,并具有一個獨特的電流回饋功能。該器件還有一個內部輸出箝位電路,用于感性負載的過流、過壓和過熱保護。因此,MC3392輸出端可以連接燈的數目取決于總負載電流的大小,該電流應小于1A。發光二極管“D1”用來表示出現系統故障,如過壓、過流或熱關斷。 在PWM模式中使用PPG的另一個應用是小型直流風扇所用的電機速度控制,該電路也可以用于小型加熱器控制器或直流燈調光器。在PWM模式下PPG輸出產生一個具有可變通斷比的方型波,平均導通時間可以在10%到100%之間變化,該應用將PPG設置成頻率為400Hz的脈寬調制輸出。 脈寬調制的另一個優點是脈沖能達到滿程供電電壓,從而可以更容易地克服電機內部電阻,產生更大的電機力矩。圖中Q1是N溝道IRF521 MOSFET,用來驅動負載,該功率開關接收柵極脈寬調制電壓,通過源-漏極電流通路來實現對負載電流的開關。當Q1導通時為負載提供一個接地通路,當Q1斷開時,負載的接地斷開。要確保負載端不接地,否則會產生短路。電源電壓一直加在負載的正電壓端,根據不同的脈沖寬度發光二極管產生相應的亮度。電容C3用來平滑開關波形,并過濾掉一些RFI。二極管D2是1N4004,是一個續流二極管,用來斷開來自感性負載的電壓反沖。C4是一個0.1μF/50V的陶瓷電容。當工作負載小于或等于1A時,Q1不需要散熱器,而如果需要更大電流,則需要將Q1替換成一個帶散熱器的大電流器件(如IRFZ34N)。此時,對于某些電機而言還必須用一個更快速和更大電流的二極管來替代D1。 與前面所述的應用相比,除了時鐘頻率、周期和占空比設置寄存器值需要改變外。 在某些應用中需要微控制器用模擬信號來控制外部器件,但一般微控制器芯片上沒有DAC,而外部DAC成本較高。此時,用一個簡單的外部RC電路來構成一個低通濾波器,用MCU PWM模式的PPG定時器來產生模擬信號輸出是一個較好的方法。這樣一個DAC的優點是它的分辨率可以由軟件來設置,并且該DAC的基本原理是產生PWM輸出。電路只用少數外部元件就提供了高分辨率,其缺點是響應慢,并因此產生一個模擬電壓紋波。R和C的值可以用下面的公式來計算: fg=1/2π×Rfilter×Cfilter 這里fg是濾波器頻率,Rfilter是濾波器電阻,Cfilter是濾波器電容。 標準的設計是使fg=(1/10)×fpwm τfilter=10/(2π×fpwm), 給出了外部濾波器的RC時間常數。 標準的設計規則要求Rfilter=Rload/10 按照上面的指導原則可以使濾波器的功耗最小化。如果不遵循上述原則,計算將產生錯誤,使負載電阻相比于濾波器電阻太低,而負載電阻會影響濾波器頻率。由于計算結果與1/10相乘,因此產生的誤差將很小,可以忽略不計。 C=τfilter/Rfilter 在上面的RC參數值下,如果剩下的紋波電壓太高,可以用兩個RC濾波器串聯起來。濾波器的頻率(假設兩個RC濾波器有相同的R和C)可以表示為: C=τfilter/Rfilter fg=(1/10)×fpwm 計算結果如下: τfilter=10/(√2×π×fpwm) Rfilter=Rload/20,Cfilter=πfilter/Rload 這樣,在PWM模式下PPG功能的數字輸出可以用來控制模擬電路,實現低噪聲、高效率、節約空間和低成本的設計。 |