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)模塊化標(biāo)準(zhǔn)化設(shè)計、可靠性高等優(yōu)點。
在一個完整的單片機系統(tǒng)中,A/D轉(zhuǎn)換芯片往往是必不可少的。PCF8591是一種具有I2C總線接口的A/D轉(zhuǎn)換芯片。在與CPU的信息傳輸過程中僅靠時鐘線SCL和數(shù)據(jù)線SDA就可以實現(xiàn)。
芯片介紹
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。
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:基準(zhǔn)電源端。
應(yīng)用
1、器件總地址
PCF8591采用典型的I2C總線接口器件尋址方法,即總線地址由器件地址、引腳地址和方向位組成。飛利蒲公司規(guī)定A/D器件地址為1001。引腳地址為A2A1A0,其值由用戶選擇,因此I2C系統(tǒng)中最多可接23=8個具有I2C總線接口的A/D器件。地址的最后一位為方向位R/ ,當(dāng)主控器對A/D器件進行讀操作時為1,進行寫操作時為0。總線操作時,由器件地址、引腳地址和方向位組成的從地址為主控器發(fā)送的第一字節(jié)。
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為模擬輸出允許有效。
當(dāng)系統(tǒng)為A/D轉(zhuǎn)換時,模擬輸出允許為0。模擬量輸入選擇位取值由輸入方式?jīng)Q定:四路單端輸入時取00,三路差分輸入時取01,單端與差分輸入時取10,二路差分輸入時取11。最低兩位時通道編號位,當(dāng)對0通道的模擬信號進行A/D轉(zhuǎn)換時取00,當(dāng)對1通道的模擬信號進行A/D轉(zhuǎn)換時取01,當(dāng)對2通道的模擬信號進行A/D轉(zhuǎn)換時取10,當(dāng)對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ā)出停止信號。
pcf8591 ad轉(zhuǎn)換程序詳解
評論
查看更多