具有I2C總線接口的A/D芯片PCF8591及其應(yīng)用
1 引言
I2C總線是Philips公司推出的串行總線,整個系統(tǒng)僅靠數(shù)據(jù)線(SDA)和時鐘線(SCL)實現(xiàn)完善的全雙工數(shù)據(jù)傳輸,即CPU與各個外圍器件僅靠這兩條線實現(xiàn)信息交換。I2C總線系統(tǒng)與傳統(tǒng)的并行總線系統(tǒng)相比具有結(jié)構(gòu)簡單、可維護性好、易實現(xiàn)系統(tǒng)擴展、易實現(xiàn)模塊化標準化設(shè)計、可靠性高等優(yōu)點。
在一個完整的單片機系統(tǒng)中,A/D轉(zhuǎn)換芯片往往是必不可少的。PCF8591是一種具有I2C總線接口的A/D轉(zhuǎn)換芯片。在與CPU的信息傳輸過程中僅靠時鐘線SCL和數(shù)據(jù)線SDA就可以實現(xiàn)。
2 芯片介紹
PCF8591是具有I2C總線接口的8位A/D及D/A轉(zhuǎn)換器。有4路A/D轉(zhuǎn)換輸入,1路D/A模擬輸出。這就是說,它既可以作A/D轉(zhuǎn)換也可以作D/A轉(zhuǎn)換。A/D轉(zhuǎn)換為逐次比較型。引腳圖如圖1所示。結(jié)構(gòu)圖如圖2所示。電源電壓典型值為5V。
AIN0~AIN3:模擬信號輸入端。
A0~A3:引腳地址端。
VDD、VSS:電源端。
(2.5~6V)
SDA、SCL:I2C總線的數(shù)據(jù)線、時鐘線。
OSC:外部時鐘輸入端,內(nèi)部時鐘輸出端。
EXT:內(nèi)部、外部時鐘選擇線,使用內(nèi)部時鐘時EXT接地。
AGND:模擬信號地。
AOUT:D/A轉(zhuǎn)換輸出端。
VREF:基準電源端。
3 應(yīng)用
3.1 器件總地址
PCF8591采用典型的I2C總線接口器件尋址方法,即總線地址由器件地址、引腳地址和方向位組成。飛利蒲公司規(guī)定A/D器件地址為1001。引腳地址為A2A1A0,其值由用戶選擇,因此I2C系統(tǒng)中最多可接23=8個具有I2C總線接口的A/D器件。地址的最后一位為方向位R/ ,當主控器對A/D器件進行讀操作時為1,進行寫操作時為0??偩€操作時,由器件地址、引腳地址和方向位組成的從地址為主控器發(fā)送的第一字節(jié)。
3.2 控制字節(jié)
控制字節(jié)用于實現(xiàn)器件的各種功能,如模擬信號由哪幾個通道輸入等??刂谱止?jié)存放在控制寄存器中??偩€操作時為主控器發(fā)送的第二字節(jié)。其格式如下所示:
其中:D1、D0兩位是A/D通道編號:00通道0,01通道1,10通道2,11通道3
D2 自動增益選擇(有效位為1)
D5、D4模擬量輸入選擇:00為四路單數(shù)入、01為三路差分輸入、10為單端與差分配合輸入、11為模擬輸出允許有效
當系統(tǒng)為A/D轉(zhuǎn)換時,模擬輸出允許為0。模擬量輸入選擇位取值由輸入方式?jīng)Q定:四路單端輸入時取00,三路差分輸入時取01,單端與差分輸入時取10,二路差分輸入時取11。最低兩位時通道編號位,當對0通 /道的模擬信號進行A/D轉(zhuǎn)換時取00,當對1通道的模擬信號進行A/D轉(zhuǎn)換時取01,當對2通道的模擬信號進行A/D轉(zhuǎn)換時取10,當對3通道的模擬信號進行A/D轉(zhuǎn)換時取11。
在進行數(shù)據(jù)操作時,首先是主控器發(fā)出起始信號,然后發(fā)出讀尋址字節(jié),被控器做出應(yīng)答后,主控器從被控器讀出第一個數(shù)據(jù)字節(jié),主控器發(fā)出應(yīng)答,主控器從被控器讀出第二個數(shù)據(jù)字節(jié),主控器發(fā)出應(yīng)答…一直到主控器從被控器中讀出第n個數(shù)據(jù)字節(jié),主控器發(fā)出非應(yīng)答信號,最后主控器發(fā)出停止信號。
3.3 應(yīng)用電路
如圖3所示電路是暖水鍋爐水溫檢測和A/D轉(zhuǎn)換電路。AD581作為電流型溫度傳感器AD590的基準電源。兩只AD590分別用來采集上水和回水的溫度。
溫度變化時通過AD590的電流發(fā)生變化,溫度每升高1℃,電流增加1mA。兩只遠放電路的作用是將電流信號轉(zhuǎn)變?yōu)殡妷盒盘枴D中R6、R7、R8、R9 是溫度校準電位器,均采用精細電位器。圖中R6和R7分別用來校準0℃時兩運放的輸出電壓,即將傳感器置于冰水混合液中時,調(diào)節(jié)R6或R7使運放的輸出電壓,即將傳感器置于冰水混合液中時,調(diào)節(jié)R6或R7使運放的輸出電壓為0V。圖中R8和R9分別用來校準100℃時兩運放的輸出電壓,即將傳感器置于沸水時,調(diào)節(jié)R8或R9使兩運放的輸出電壓為某一確定值。此值由使用者決定,當然,其值大小要考慮A/D轉(zhuǎn)換器選用的基準電源值。
A/D轉(zhuǎn)換器PCF8591靠數(shù)據(jù)線SDL和時鐘線SCL與CPU聯(lián)系。由軟件決定水溫數(shù)據(jù)的采集時間和數(shù)據(jù)的存儲以及送去顯示。
4 結(jié)論
Philips公司推出的I2C總線系統(tǒng)較通用單片機系統(tǒng)電路簡單。由普通CPU芯片同I2C專用器件組成的系統(tǒng)為模擬I2C系統(tǒng),它性能穩(wěn)定,價格較低,具有較大的應(yīng)用前景.
參考文獻:
1. 何立民.I2C總線應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,1997.
2. 何立民.單片機應(yīng)用系統(tǒng)設(shè)計系統(tǒng)配置與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1999.