使用一個(gè)IO口實(shí)現(xiàn)AD轉(zhuǎn)換輸入_第1頁(yè)
使用一個(gè)IO口實(shí)現(xiàn)AD轉(zhuǎn)換輸入_第2頁(yè)
使用一個(gè)IO口實(shí)現(xiàn)AD轉(zhuǎn)換輸入_第3頁(yè)
使用一個(gè)IO口實(shí)現(xiàn)AD轉(zhuǎn)換輸入_第4頁(yè)
使用一個(gè)IO口實(shí)現(xiàn)AD轉(zhuǎn)換輸入_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、使用一個(gè)I/O口實(shí)現(xiàn)A/D轉(zhuǎn)換輸入2008-5-7文件編碼:MSIC1000U簡(jiǎn)介在某些特定的場(chǎng)合,主要是在數(shù)字電子應(yīng)用方面,需要一個(gè)模擬信號(hào)輸入來做一些基本的模擬量的測(cè)量或者是提供可控的方式使用外部電位器。當(dāng)然,像這樣的需求,由一個(gè)內(nèi)置A/D轉(zhuǎn)換的MCU就能極好地實(shí)現(xiàn),但是也可以使用一些經(jīng)濟(jì)的外部器件,由一個(gè)標(biāo)準(zhǔn)的數(shù)字I/O口來實(shí)現(xiàn)一個(gè)簡(jiǎn)單的模數(shù)轉(zhuǎn)換功能。此篇應(yīng)用將以MSIC系列MCU為對(duì)象,介紹如何使用標(biāo)準(zhǔn)的施密特輸入口或CMOS IO 口作為基本的A/D轉(zhuǎn)換口使用,為對(duì)A/D轉(zhuǎn)換精度要求不高的應(yīng)用提供一種超低成本的A/D轉(zhuǎn)換實(shí)用方案。 功能說明這種模數(shù)轉(zhuǎn)換的原理就是通過對(duì)某一電容充電達(dá)到

2、某個(gè)固定的電壓值,然后以恒定電流進(jìn)行放電,我們可以通過測(cè)量放電時(shí)間來獲得當(dāng)前輸入信號(hào)的強(qiáng)弱。通過設(shè)置I/O口為輸出高電平可以迅速對(duì)電容進(jìn)行充電,在輸出口與電容之間建議串接一個(gè)100歐姆的小電阻來限流,防止大電流損壞。電容充電的表達(dá)公式如下:Vc = Vo (1-e-t/RC)此處Vc 是電容電壓,Vo 是IO口輸出電壓(與MCU實(shí)際工作電壓有關(guān)),將輸出口置高開始對(duì)電容充電后僅需僅短時(shí)間的延時(shí),充電電壓即可達(dá)到Vo 的98%,此案中需要的時(shí)間大約為39s。完成充電過程后即可將控制口設(shè)置為輸入狀態(tài),因?yàn)槠漭斎霠顟B(tài)為高阻態(tài),此時(shí)電容就只能通過三極管的發(fā)射極對(duì)地以恒定的電流放電,電流大小與發(fā)射極上串

3、拉的電阻有關(guān)。改變放電電流的大小即會(huì)改變放電斜率。電流大小與電容電量之間的關(guān)系式如下:I = C此處C是元件的電容,單位是法拉。dV/dt是電容上電壓變化率,單位是伏特/每秒。I是流過電容的電流,單位為安培。如下圖所示,如果流經(jīng)電容的電流是恒定的,那么充電時(shí)電容電壓上升的速率也是恒定的,實(shí)際上也就是說對(duì)電容的充放電斜坡的斜率是由電容參數(shù)值和充放電電流值決定的,電壓的變化率等于 。在放電時(shí),如果電容與與一個(gè)CMOS輸入端相連接,隨著電容電壓幅度的減小,當(dāng)其幅度降低到CMOS輸入的開關(guān)極限值,CMOS輸入端將從高電平變?yōu)榈碗娖?。使用?nèi)部定時(shí)/計(jì)數(shù)器從放電周期開始對(duì)輸入端進(jìn)行監(jiān)測(cè)。當(dāng)輸入端出現(xiàn)下降沿

4、時(shí),如果定時(shí)計(jì)數(shù)器停止計(jì)數(shù),定時(shí)器寄存器的剩余值是與放電電流成比例的,放電電流大小是由發(fā)射極的兩個(gè)電阻決定的,其中一個(gè)電阻是電位器。硬件部分硬件電路很簡(jiǎn)單,由極少的標(biāo)準(zhǔn)元器件組成。用一個(gè)紅色的LED,它還具有上電指示的功能。當(dāng)然,不同顏色的LED或串聯(lián)幾個(gè)低功耗的二極管,如IN4148,也可以作為選擇。這個(gè)LED的正向電壓,與Q1基極到射極之間的電壓相減,便得出串聯(lián)電阻R2和R3上的電壓,從而在Q1的發(fā)射極產(chǎn)生一個(gè)恒流源。這將在三極管的集電極產(chǎn)生一個(gè)恒定的電流,該電流即為放電電流。三極管的集電極電流同基極電流的關(guān)系,是由三極管的hfe值決定的,與外部電路的精確度無關(guān)。幾乎所有的NPN型三極管都

5、可以應(yīng)用到該電路中。一個(gè)I/O引腳經(jīng)一個(gè)100歐姆的電阻與電容連接,當(dāng)充電時(shí),這個(gè)電阻對(duì)電容具有限流保護(hù)作用。在放電期間,I/O口具有高輸入阻抗,所以不會(huì)影響A/D轉(zhuǎn)換的精確度。R2的作用是當(dāng)R3電位計(jì)在最小值時(shí),確保三極管工作在非飽和區(qū),并維持電流源工作。如果選擇R2 為,提供的電流源的值大約為1mA,選取較小的電阻值以便于計(jì)算。選取R3為10K是有作用的,當(dāng)其在較大值時(shí)可減少功耗,并且可以防止外界干擾。該例使用MSIC I/O 型單片機(jī),事實(shí)上任何一款帶有施密特觸發(fā),CMOS I/O 結(jié)構(gòu)的MSIC單片機(jī)都可以使用。注意,NMOS型I/O引腳不適合于該應(yīng)用。如果電容放電電壓的下降沿下降相對(duì)

6、比較緩慢,非施密特型的CMOS輸入也不適用于該應(yīng)用,因?yàn)榫徛南陆笛剌斎朐陔妷航档介T限電壓時(shí)不能產(chǎn)生一個(gè)明確的邏輯轉(zhuǎn)換。檢查電路將會(huì)發(fā)現(xiàn),電容電壓從Vdd開始放電到輸入引腳的門限電壓之間的時(shí)間可由電壓的變化量/電壓的變化率求得,方程式如下:Vth是輸入引腳的門限電壓值,C是電容值,I是恒定的放電電流值。但I(xiàn)可由發(fā)射極的電壓/(R2 + R3) 得出,代入上面方程式,可得出: Ve是發(fā)射極電壓值,它可由LED的正向電壓減去三極管的Vbe得出。軟件部分模數(shù)轉(zhuǎn)化編碼很簡(jiǎn)單,它是由連續(xù)地對(duì)電容充放電來實(shí)現(xiàn)的。對(duì)電容充電是通過設(shè)置I/O為輸出,并設(shè)置一個(gè)較長(zhǎng)的固定時(shí)間周期以確保對(duì)電容滿充。一個(gè)100 n

7、F 的電容和一個(gè)100歐姆的電阻可以達(dá)到10us 的固定時(shí)間周期,它可以作為一個(gè)計(jì)算合適充電時(shí)間的標(biāo)準(zhǔn)。推薦對(duì)電容充電的合適時(shí)間應(yīng)不小于10倍的RC充電時(shí)間常數(shù)。當(dāng)I/O口由低輸出變?yōu)楦咻斎霠顟B(tài),放電過程即可開始,同時(shí)定時(shí)計(jì)數(shù)器也開始計(jì)時(shí)。該系統(tǒng)使用6MHz的晶體振蕩,如果設(shè)置定時(shí)器預(yù)分頻器的值為16,將得到一個(gè)約2.67us的時(shí)鐘周期。此時(shí)TMR寄存器的溢出周期為(255×2.67us)0.68ms。當(dāng)該溢出周期遠(yuǎn)小于電容由滿充到輸入門限電壓值的放電時(shí)間,模數(shù)轉(zhuǎn)換值將會(huì)是大于8位二進(jìn)制的數(shù)據(jù)。如果增加預(yù)分頻器值到64,將會(huì)得到一個(gè)足夠長(zhǎng)的時(shí)鐘周期,允許模數(shù)轉(zhuǎn)換值在8位以內(nèi)即255以

8、內(nèi)。結(jié)果如下示波器圖形為電容電壓,可以清楚地看到電容充電整個(gè)過程的指數(shù)上升曲線??梢娚仙龝r(shí)間比預(yù)計(jì)值長(zhǎng),這可能是由于單片機(jī)CMOS輸出口的電壓驅(qū)動(dòng)能力沒有理想中的好。這一點(diǎn)在充電周期起始階段,當(dāng)充電電流值比較大時(shí),表現(xiàn)得尤為明顯。注意,電流源將不斷地從CMOS輸出口吸收電流,這對(duì)上升時(shí)間產(chǎn)生一些影響。這些問題通過在電容充電時(shí)加一個(gè)較長(zhǎng)延時(shí)便可解決。這條曲線表明,在這個(gè)范例中,允許電容充電時(shí)間的編程值明顯長(zhǎng)于所必需的時(shí)間,并且可以縮短整個(gè)模數(shù)轉(zhuǎn)換的時(shí)間。至于比較重要的放電斜率,盡管沒有測(cè)量,但看起來線性度非常好。施密特觸發(fā)I/O輸入口的轉(zhuǎn)換也很明顯,而且沒有檢測(cè)到干擾信號(hào)。在該例中,曲線表明,由

9、高到低變化的門限電壓值為,當(dāng)然,這個(gè)值依賴于處理過程,而且隨著選擇的芯片不同而有所不同,對(duì)模數(shù)轉(zhuǎn)換值有著重要的影響。誤差由于該應(yīng)用范例只是提供一個(gè)模數(shù)轉(zhuǎn)換的基本形式,并不適用于做精確的測(cè)量,但是適用于轉(zhuǎn)換精度有限的領(lǐng)域。絕對(duì)誤差的主要來源存在于所使用電容的實(shí)際值和輸入電壓的門限值。盡管使用的電容為uF,但它的容限可能會(huì)大。如果采用軟件進(jìn)行校準(zhǔn),對(duì)絕對(duì)誤差進(jìn)行補(bǔ)償,那么將獲得一個(gè)合理的精確度。另外,還存在一些小誤差,如其中一個(gè)就是由于電容放電時(shí),三極管Vce電壓值不斷變化引起放電電流的微弱變化。其它誤差可能是由不很理想的電源電壓引入的。確保沒有上拉電阻與I/O引腳相連,否則將會(huì)產(chǎn)生誤差,因?yàn)檫@將影響放電斜率的線性度,尤其在放電電流較小的情況下。結(jié)論該應(yīng)用范例已說明了如何用一個(gè)標(biāo)準(zhǔn)邏輯I/O引腳與內(nèi)部定時(shí)/計(jì)數(shù)器,和一些低成本的器件來實(shí)現(xiàn)A/D轉(zhuǎn)換功能。雖然不是針對(duì)高精度的A/D轉(zhuǎn)換應(yīng)用,但這個(gè)構(gòu)思實(shí)際上可以實(shí)施于低分辨率,低成本的A/D轉(zhuǎn)換功能。在示波器曲線上隨意測(cè)量放電斜率,雖然測(cè)量方式比較粗糙,但可以看到很好的線性。目前的應(yīng)用范例只使用了一個(gè)I/O引腳,但很容易適用于多通道模擬輸入。該應(yīng)用范例使用一個(gè)電位計(jì)提供模擬信

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論