基于SH69P42 PWM的10位D/A轉(zhuǎn)換器
1引言
提高單片機(jī)片內(nèi)資源的利用率;縮小最終產(chǎn)品的體積,降低功耗,減輕重量,提高集成度,提高可靠性,是單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的基本原則。
在單片機(jī)選型時(shí),由于內(nèi)部資源針對(duì)不同應(yīng)用有多種組合,從而形成了單片機(jī)系列。例如:片內(nèi)程序存儲(chǔ)器的大小、RAM的大小、A/D精度及通道數(shù)、D/A精度及通道數(shù)、是否有LCD驅(qū)動(dòng)、I/O數(shù)、是否有PWM、精度、中斷數(shù)量及嵌套、定時(shí)器數(shù)及精度等。但在實(shí)際應(yīng)用中,也很難做到單片機(jī)的配置完全符合應(yīng)用要求。因?yàn)閼?yīng)用是多樣化的,而單片機(jī)的型號(hào)、系列畢竟有限。因此,如果能方便地將單片機(jī)所提供的內(nèi)部功能元件轉(zhuǎn)為另一功能,將大大拓展單片機(jī)的應(yīng)用領(lǐng)域。
當(dāng)應(yīng)用需要模擬量輸出時(shí),就需要有D/A轉(zhuǎn)換器,一般地,還需有專門的元件以及外圍電路。這里闡述一種基于SH69P42的一路PWM實(shí)現(xiàn)D/A轉(zhuǎn)換器的方法。
SH69P42是中穎公司基于SH6610D內(nèi)核的4位RISC指令集的單片機(jī),內(nèi)部集成有四通道8位SARA/D轉(zhuǎn)換器,兩通道10位PWM輸出,三種兩級(jí)中斷(A/D中斷、端口中斷和定時(shí)器中斷)、兩個(gè)8位定時(shí)器,16個(gè)I/O引腳,內(nèi)有OTP型ROM:3072×16位,RAM:192×4位,內(nèi)置低電壓監(jiān)視復(fù)位和看門狗電路,振蕩器工作頻率從32768Hz至8MHz,可編程選擇片內(nèi)RC振蕩、片外RC振蕩、外接晶體振蕩等形式。SH69P42共有43條指令,每條指令的執(zhí)行時(shí)間均等,是振蕩器周期的4倍。
SH69P42符合工業(yè)規(guī)格,適用于對(duì)系統(tǒng)抗干擾能力要求極高的場(chǎng)合。
3SH69P42的PWM編程
3。1SH69P42的RAM編址
SH69P42的內(nèi)部寄存器除累加器A、進(jìn)位標(biāo)志CY、程序計(jì)數(shù)器PC之外,端口、定時(shí)器、A/D、PWM中斷、WDT與通用RAM一起統(tǒng)一編址。其地址由10位組成,源操作數(shù)的有效位為7位,因此采用了BANK概念,每128單元為一個(gè)BANK,用BANK值給出高3位地址。
例如:LDAMx,bbb
其中,Mx為取數(shù)單元地址的低7位,BANK值bbb為取數(shù)單元地址的高3位。
LDA10H,01H
表示將RAM單元90H的內(nèi)容送至累加器A。
3。2SH69P42的PWM編程
SH69P42具有兩通道10位PWM輸出,分別由三個(gè)寄存器控制。
系統(tǒng)寄存器PWMC控制PWM輸出,系統(tǒng)寄存器PWMP設(shè)置PWM輸出信號(hào)周期,系統(tǒng)寄存器PWMD設(shè)置PWM輸出信號(hào)的占空比。如表1、表2、表3所列。
4PWM實(shí)現(xiàn)D/A轉(zhuǎn)換
4。1實(shí)現(xiàn)電路及參數(shù)計(jì)算
圖1為基于SH69P42PWM1的D/A轉(zhuǎn)換的原理圖。
(1)振蕩選擇
由于PWM的周期、占空比與SH69P42的振蕩周期密切相關(guān),為保證高精度。尤其是避免溫度影響,采用外接晶體振蕩器的方法,而不采用內(nèi)部或外部RC振蕩方式。因?yàn)楹笳呤芄ぷ鳝h(huán)境溫度影響較大。
4。1。210位D/A的實(shí)現(xiàn)方法
從表2、表3看出,SH69P42的PWM輸出時(shí),先設(shè)定周期再設(shè)定占空比,周期確定后,占空比其實(shí)就是在本周期內(nèi)有效高電平(正向,反之同理)脈沖的數(shù)量與周期電平數(shù)量的比。SH69P42允許最大的周期設(shè)定是10位,因此,采用周期固定,也就是3FFH,將待轉(zhuǎn)換數(shù)直接對(duì)應(yīng)為占空比的數(shù)值,就可以實(shí)現(xiàn)10位的D/A轉(zhuǎn)換。
4。1。3輸出滿量程的分辨率假定輸出電壓為SH69P42的工作電壓為5V,10位數(shù)字量的數(shù)字分辨率為1/1024,轉(zhuǎn)換為模擬量為5V/1024=4。8mV,這就是模擬輸出的分辨率。
4。1。4輸出端RC網(wǎng)絡(luò)的參數(shù)選擇
輸出端根據(jù)后續(xù)電路的需要,可以采取一階RC積分網(wǎng)絡(luò)或二階RC低通網(wǎng)絡(luò)。圖1所示為二階RC低通網(wǎng)絡(luò),一方面可濾除高頻雜波,另一方面可根據(jù)PWM的周期頻率輸出滿足需要的不會(huì)過滯后隨動(dòng)模擬電壓。
當(dāng)PWM1輸出為高電平時(shí),通過電阻R2、R3對(duì)電容C5、C4充電,Output電壓升高,當(dāng)PWM1輸出低電平時(shí)兩電容C5、C4通過兩電阻R2、R3放電,使得Output電壓降低。這樣,PWM1輸出時(shí),在固定周期下隨著占空比的變化,Output電壓值上下波動(dòng),波動(dòng)幅度與占空比的數(shù)值線性相關(guān)。
4。2程序設(shè)計(jì)規(guī)則
SH69P42單片機(jī)的PWM在軟件設(shè)計(jì)時(shí)需遵循以下規(guī)則:
設(shè)置PWMn的周期或占空比時(shí),先設(shè)置高四位,然后設(shè)置中四位,最后設(shè)置低四位;
在PWM輸出狀態(tài)下,只有寫入PWMn周期或占空比的第四位數(shù)據(jù)后,數(shù)據(jù)才會(huì)裝入重裝入計(jì)數(shù)器并在下一個(gè)周期開始時(shí)計(jì)數(shù);
當(dāng)選擇以PWMn輸出(PWMCbit0=1)時(shí),PWMn輸出的第一個(gè)周期和第一個(gè)占空比是按3FFH計(jì)數(shù),系統(tǒng)寄存器PWMP和PWMD的數(shù)據(jù)從第二個(gè)周期開始計(jì)數(shù);
PWM能在HALT方式下繼續(xù)工作,并在執(zhí)行"STOP"指令后自動(dòng)停止工作。
另外,SH69P42的振蕩方式編程不是在程序中實(shí)現(xiàn),而是在對(duì)OTP編程之前的燒寫設(shè)置中按照實(shí)際設(shè)定的。
4。3轉(zhuǎn)換結(jié)果分析
單片機(jī)外接振蕩器振蕩頻率為4MHz,PWM時(shí)鐘設(shè)定為8倍tOSC($21=0111),周期設(shè)定為3FFH($2A$29$28=0011,1111,1111)時(shí),PWM的時(shí)鐘周期為2。048ms,占空比(這里相當(dāng)于D/A轉(zhuǎn)換的數(shù)字量)為0FFH($2D$2C$2B=000011111111)。理論計(jì)算輸出為1。25V(0FFH×5/3FFH),波形顯示約為1。25V,基本一致。此時(shí)PWM占空比的時(shí)間為125μs,周期為2。048ms,與理論值基本一致。
5結(jié)束語
常溫下實(shí)際轉(zhuǎn)換結(jié)果與理論計(jì)算結(jié)果基本一致。在45℃時(shí),實(shí)際轉(zhuǎn)換結(jié)果和理論計(jì)算值的偏差為0。15%左右,能夠滿足大多數(shù)場(chǎng)合的需要。如果對(duì)振蕩系統(tǒng)、二階RC低通網(wǎng)絡(luò)的元件參數(shù)提高篩選要求的話,可以實(shí)現(xiàn)偏差值在0。1%以內(nèi)。