利用可編程脈沖發(fā)生器實現(xiàn)PWM和DAC功能
發(fā)布時間:2008/5/27 0:00:00 訪問次數(shù):908
    
    
    在要求脈寬調(diào)制(pwm)輸出功能或需要產(chǎn)生模擬電壓來控制外部器件,而微控制器本身內(nèi)部不具備這些功能時,有幾種方法可以用來產(chǎn)生脈寬調(diào)制輸出,最簡單的方法是從微控制器專用pwm定時器中產(chǎn)生。然而,并不是所有的微控制器都具有pwm定時器。另一種方法是用片上16位可編程脈沖發(fā)生器(ppg)的定時器來實現(xiàn)該功能,內(nèi)置16位ppg定時器的微控制器可以配置成pwm模式來產(chǎn)生周期不變、具有各種脈沖寬度的波形,并與一個專用的外部或軟件觸發(fā)器保持同步。
    
    pwm的一些典型應(yīng)用如控制汽車尾燈或儀表盤亮度的調(diào)光器、小型直流風(fēng)扇的電機速度控制器、小型加熱器控制器,甚至是數(shù)模轉(zhuǎn)換器(dac),在這些dac上增加一些簡單的外部電路,就可以在精度要求不太高的應(yīng)用中用來控制外部器件。
    
    
    
    圖1所示為一個儀表盤燈光調(diào)節(jié)器,圖中mb90f428g是一個具有ppg功能的微控制器。將微控制器的16位ppg定時器配置為連續(xù)pwm模式來獲得脈寬調(diào)制輸出,以用于汽車儀表盤燈光亮度控制。產(chǎn)生的pwm與內(nèi)部軟件觸發(fā)器同步,或與一個外部觸發(fā)器同步。微控制器的ppg外圍電路見圖2。
    
    mcu使用一個4mhz的主時鐘,通過內(nèi)部分頻器可以得到期望的時鐘頻率,將該頻率作為16位遞減計數(shù)器的輸入。pcsr是一個用于設(shè)置間隙時間的16位數(shù)據(jù)寄存器;pdut是用于占空比設(shè)置的16位比較寄存器,也是一個引腳控制字段。脈沖輸出的間隙時間和占空比可以通過改變這兩個16位寄存器的值來自由設(shè)置,該特性能幫助ppg工作在pwm模式。在pwm模式中,當外部觸發(fā)信號位于“p05/sck1/trg”引腳處,或內(nèi)部軟件觸發(fā)器產(chǎn)生信號時,將發(fā)出一個起動觸發(fā)信號,在檢測到該觸發(fā)信號后mcu將產(chǎn)生連續(xù)脈沖輸出。另一個重要的16位寄存器是“pcnt”,這是一個ppg控制和狀態(tài)寄存器,從0到15位可以用來選擇所需的時鐘、模式(如pwm)、觸發(fā)類型、ppg輸出使能,以及中斷請求。
    
    
    
    圖5的流程圖說明了ppg作為pwm輸出的功能配置,通過精確控制pwm輸出的周期和占空比可以改變白熾燈的亮度。mc3392是一個具有故障報告功能的單低邊保護開關(guān)。輸入到mc3392的信號可以兼容cmos、ttl電平,該信號從微控制器的ppg0引腳91輸出。典型的脈沖調(diào)制輸出頻率是80hz,該頻率可以避免產(chǎn)生眼睛可以感覺的閃爍,輸出脈沖的占空比可以在3%至97%之間設(shè)置,當為3%時燈不亮,而在97%時燈看起來一直處于導(dǎo)通狀態(tài)。mc3392有一個1a的內(nèi)部短路保護,并具有一個獨特的電流回饋功能。該器件還有一個內(nèi)部輸出箝位電路,用于感性負載的過流、過壓和過熱保護。因此,mc3392輸出端可以連接燈的數(shù)目取決于總負載電流的大小,該電流應(yīng)小于1a。發(fā)光二極管“d1”用來表示出現(xiàn)系統(tǒng)故障,如過壓、過流或熱關(guān)斷。
    
    在pwm模式中使用ppg的另一個應(yīng)用是小型直流風(fēng)扇所用的電機速度控制,如圖3中電路圖所示,該電路也可以用于小型加熱器控制器或直流燈調(diào)光器。在pwm模式下ppg輸出產(chǎn)生一個具有可變通斷比的方型波,平均導(dǎo)通時間可以在10%到100%之間變化,該應(yīng)用將ppg設(shè)置成頻率為400hz的脈寬調(diào)制輸出。
    
    
    
    脈寬調(diào)制的另一個優(yōu)點是脈沖能達到滿程供電電壓,從而可以更容易地克服電機內(nèi)部電阻,產(chǎn)生更大的電機力矩。圖中q1是n溝道irf521 mosfet,用來驅(qū)動負載,該功率開關(guān)接收柵極脈寬調(diào)制電壓,通過源-漏極電流通路來實現(xiàn)對負載電流的開關(guān)。當q1導(dǎo)通時為負載提供一個接地通路,當q1斷開時,負載的接地斷開。要確保負載端不接地,否則會產(chǎn)生短路。電源電壓一直加在負載的正電壓端,根據(jù)不同的脈沖寬度發(fā)光二極管產(chǎn)生相應(yīng)的亮度。電容c3用來平滑開關(guān)波形,并過濾掉一些rfi。二極管d2是1n4004,是一個續(xù)流二極管,用來斷開來自感性負載的電壓反沖。c4是一個0.1μf/50v的陶瓷電容。當工作負載小于或等于1a時,q1不需要散熱器,而如果需要更大電流,則需要將q1替換成一個帶散熱器的大電流器件(如irfz34n)。此時,對于某些電機而言還必須用一個更快速和更大電流的二極管來替代d1。
    
    與前面所述的應(yīng)用相比,除了時鐘
    
    
    在要求脈寬調(diào)制(pwm)輸出功能或需要產(chǎn)生模擬電壓來控制外部器件,而微控制器本身內(nèi)部不具備這些功能時,有幾種方法可以用來產(chǎn)生脈寬調(diào)制輸出,最簡單的方法是從微控制器專用pwm定時器中產(chǎn)生。然而,并不是所有的微控制器都具有pwm定時器。另一種方法是用片上16位可編程脈沖發(fā)生器(ppg)的定時器來實現(xiàn)該功能,內(nèi)置16位ppg定時器的微控制器可以配置成pwm模式來產(chǎn)生周期不變、具有各種脈沖寬度的波形,并與一個專用的外部或軟件觸發(fā)器保持同步。
    
    pwm的一些典型應(yīng)用如控制汽車尾燈或儀表盤亮度的調(diào)光器、小型直流風(fēng)扇的電機速度控制器、小型加熱器控制器,甚至是數(shù)模轉(zhuǎn)換器(dac),在這些dac上增加一些簡單的外部電路,就可以在精度要求不太高的應(yīng)用中用來控制外部器件。
    
    
    
    圖1所示為一個儀表盤燈光調(diào)節(jié)器,圖中mb90f428g是一個具有ppg功能的微控制器。將微控制器的16位ppg定時器配置為連續(xù)pwm模式來獲得脈寬調(diào)制輸出,以用于汽車儀表盤燈光亮度控制。產(chǎn)生的pwm與內(nèi)部軟件觸發(fā)器同步,或與一個外部觸發(fā)器同步。微控制器的ppg外圍電路見圖2。
    
    mcu使用一個4mhz的主時鐘,通過內(nèi)部分頻器可以得到期望的時鐘頻率,將該頻率作為16位遞減計數(shù)器的輸入。pcsr是一個用于設(shè)置間隙時間的16位數(shù)據(jù)寄存器;pdut是用于占空比設(shè)置的16位比較寄存器,也是一個引腳控制字段。脈沖輸出的間隙時間和占空比可以通過改變這兩個16位寄存器的值來自由設(shè)置,該特性能幫助ppg工作在pwm模式。在pwm模式中,當外部觸發(fā)信號位于“p05/sck1/trg”引腳處,或內(nèi)部軟件觸發(fā)器產(chǎn)生信號時,將發(fā)出一個起動觸發(fā)信號,在檢測到該觸發(fā)信號后mcu將產(chǎn)生連續(xù)脈沖輸出。另一個重要的16位寄存器是“pcnt”,這是一個ppg控制和狀態(tài)寄存器,從0到15位可以用來選擇所需的時鐘、模式(如pwm)、觸發(fā)類型、ppg輸出使能,以及中斷請求。
    
    
    
    圖5的流程圖說明了ppg作為pwm輸出的功能配置,通過精確控制pwm輸出的周期和占空比可以改變白熾燈的亮度。mc3392是一個具有故障報告功能的單低邊保護開關(guān)。輸入到mc3392的信號可以兼容cmos、ttl電平,該信號從微控制器的ppg0引腳91輸出。典型的脈沖調(diào)制輸出頻率是80hz,該頻率可以避免產(chǎn)生眼睛可以感覺的閃爍,輸出脈沖的占空比可以在3%至97%之間設(shè)置,當為3%時燈不亮,而在97%時燈看起來一直處于導(dǎo)通狀態(tài)。mc3392有一個1a的內(nèi)部短路保護,并具有一個獨特的電流回饋功能。該器件還有一個內(nèi)部輸出箝位電路,用于感性負載的過流、過壓和過熱保護。因此,mc3392輸出端可以連接燈的數(shù)目取決于總負載電流的大小,該電流應(yīng)小于1a。發(fā)光二極管“d1”用來表示出現(xiàn)系統(tǒng)故障,如過壓、過流或熱關(guān)斷。
    
    在pwm模式中使用ppg的另一個應(yīng)用是小型直流風(fēng)扇所用的電機速度控制,如圖3中電路圖所示,該電路也可以用于小型加熱器控制器或直流燈調(diào)光器。在pwm模式下ppg輸出產(chǎn)生一個具有可變通斷比的方型波,平均導(dǎo)通時間可以在10%到100%之間變化,該應(yīng)用將ppg設(shè)置成頻率為400hz的脈寬調(diào)制輸出。
    
    
    
    脈寬調(diào)制的另一個優(yōu)點是脈沖能達到滿程供電電壓,從而可以更容易地克服電機內(nèi)部電阻,產(chǎn)生更大的電機力矩。圖中q1是n溝道irf521 mosfet,用來驅(qū)動負載,該功率開關(guān)接收柵極脈寬調(diào)制電壓,通過源-漏極電流通路來實現(xiàn)對負載電流的開關(guān)。當q1導(dǎo)通時為負載提供一個接地通路,當q1斷開時,負載的接地斷開。要確保負載端不接地,否則會產(chǎn)生短路。電源電壓一直加在負載的正電壓端,根據(jù)不同的脈沖寬度發(fā)光二極管產(chǎn)生相應(yīng)的亮度。電容c3用來平滑開關(guān)波形,并過濾掉一些rfi。二極管d2是1n4004,是一個續(xù)流二極管,用來斷開來自感性負載的電壓反沖。c4是一個0.1μf/50v的陶瓷電容。當工作負載小于或等于1a時,q1不需要散熱器,而如果需要更大電流,則需要將q1替換成一個帶散熱器的大電流器件(如irfz34n)。此時,對于某些電機而言還必須用一個更快速和更大電流的二極管來替代d1。
    
    與前面所述的應(yīng)用相比,除了時鐘