1.晶片參數:
工作電壓:+5V,即VCC=+5V。
模擬轉換電壓範圍:0~+5V,即0≤Vin≤+5V。
解析度:8位,即解析度為1/2 =1/256,轉換值介於0~255之間。
轉換時間:100us(fCK=640KHz時)。
轉換誤差:±1LSB。
參考電壓:2.5V,即Vref/2=2.5V。
2.各個引腳名稱及作用:
Vin(+)、Vin(-):兩個模擬信號輸入端,可以接收單極性、雙極性和差模輸入信號。
DB0-DB7:具有三態特性數位訊號輸出端,輸出結果為八位二進制結果。
CLKIN:時鐘信號輸入端。
CLKR:內部時鐘發生器的外接電阻端,與CLK端配合可由晶片自身產生時鐘脈衝,其頻率計算方式是:f=1/(1.1RC)。
CS:片選信號輸入端,低電平有效。
WR:寫信號輸入端,低電平啟動AD轉換。
RD:讀信號輸入端,低電平輸出端有效。
INTR:轉換完畢中斷提供端,AD轉換結束後,低電平表示本次轉換已完成。
V/2:參考電平輸入,決定量化單位。
VCC:晶片電源5V輸入。
AGND:模擬電源地線。
DGND:數字電源地線。
ADC0804典型接法
3.ADC0804的轉換原理
ADC0804是屬於逐次逼近式(Successive Approximation Method)A/D轉換器,這類型的A/D轉換器除了轉換速度快(幾十至幾百us)、解析度高外,還有價錢便宜的優點,普遍被套用於微電腦的接口設計上。
以輸出8位的ADC0804動作來說明“連續漸進式A/D轉換器”的轉換原理,動作步驟如下表示(原則上先從左側最高位尋找起)。
第一次尋找結果:10000000 (若假設值≤輸入值,則尋找位=假設位=1)
第二次尋找結果:11000000 (若假設值≤輸入值,則尋找位=假設位=1)
第三次尋找結果:11000000 (若假設值>輸入值,則尋找位=該假設位=0)
第四次尋找結果:11010000 (若假設值≤輸入值,則尋找位=假設位=1)
第五次尋找結果:11010000 (若假設值>輸入值,則尋找位=該假設位=0)
第六次尋找結果:11010100 (若假設值≤輸入值,則尋找位=假設位=1)
第七次尋找結果:11010110 (若假設值≤輸入值,則尋找位=假設位=1)
第八次尋找結果:11010110 (若假設值>輸入值,則尋找位=該假設位=0)
這樣使用二分法的尋找方式,8位的A/D轉換器只要8次尋找,12位的A/D轉換器只要12次尋找,就能完成轉換的動作,其中的輸入值代表模擬輸入電壓Vin
4.晶片操作時序圖:
分析圖可知,CS先為低電平,WR隨後置低,經時間tw(WR)L後,WR置高,隨後AD轉換器被啟動,並且在經過一段時間後,模數轉換完成,轉換結果存入數據鎖存器,同時INTR自動變為低電平,通知單片機本次轉換已結束。我們在實際寫單片機程式啟動A/D轉換時就要遵循上面的時序。但實際使用中,也可以不採用中斷方式讀取A/D轉換數據,我們可以在啟動A/D轉換後,經過延時一段時間,直接讀取A/D轉換數據結果,讀取結束後再啟動一次A/D轉換,如此循環下去。
5.讀取數據時序圖如下圖
分析圖可知,當INTR變為低電平時後,將CS先置低,接著再將RD置低,在RD置低至少經過t時間後,數據輸出口上的數據到達穩定狀態,此時直接讀取數據輸出連線埠的數據,讀走數據後,馬上將RD拉高,然後再將CS拉高,INTR是自動變化的,不必人為干涉。
當我們連續轉換並且連續讀取數據時,就沒有必要每次把CS置低再拉高,只要一開始將CS置低,以後要啟動轉換和讀取數據時只需要操作WR和RD即可。