PCF8591硬件接口(電路圖引腳圖)
PCF8591 是一個(gè)單電源低功耗的8位 CMOS 數(shù)據(jù)采集器件,具有4路模擬輸入,1路模擬輸出和一個(gè)串行 I2C 總線接口用來與單片機(jī)通信。與前面講過的 24C02 類似,3個(gè)地址引腳 A0、A1、A2 用于編程硬件地址,允許最多8個(gè)器件連接到 I2C 總線而不需要額外的片選電路。器件的地址、控制以及數(shù)據(jù)都是通過 I2C 總線來傳輸,我們先看一下 PCF8591 的原理圖,如圖17-3所示。
圖17-3 PCF8591 原理圖
其中引腳1、2、3、4是4路模擬輸入,引腳5、6、7是 I2C 總線的硬件地址,8腳是數(shù)字地 GND,9腳和10腳是 I2C 總線的 SDA 和 SCL。12腳是時(shí)鐘選擇引腳,如果接高電平表示用外部時(shí)鐘輸入,接低電平則用內(nèi)部時(shí)鐘,我們這套電路用的是內(nèi)部時(shí)鐘,因此12腳直接接 GND,同時(shí)11腳懸空。13腳是模擬地 AGND,在實(shí)際開發(fā)中,如果有比較復(fù)雜的模擬電路,那么 AGND 部分在布局布線上要特別處理,而且和 GND 的連接也有多種方式,這里大家先了解即可。在我們板子上沒有復(fù)雜的模擬部分電路,所以我們把 AGND 和 GND 接到一起。14腳是基準(zhǔn)源,15腳是 DAC 的模擬輸出,16腳是供電電源 VCC。
PCF8591 的 ADC 是逐次逼近型的,轉(zhuǎn)換速率算是中速,但是它的速度瓶頸在 I2C 通信上。由于 I2C 通信速度較慢,所以最終的 PCF8591 的轉(zhuǎn)換速度,直接取決于 I2C 的通信速率。由于 I2C 速度的限制,所以 PCF8591 得算是個(gè)低速的 AD 和 DA 的集成,主要應(yīng)用在一些轉(zhuǎn)換速度要求不高,希望成本較低的場(chǎng)合,比如電池供電設(shè)備,測(cè)量電池的供電電壓,電壓低于某一個(gè)值,報(bào)警提示更換電池等類似場(chǎng)合。
Vref 基準(zhǔn)電壓的提供有兩種方法。一是采用簡(jiǎn)易的原則,直接接到 VCC 上去,但是由于 VCC 會(huì)受到整個(gè)線路的用電功耗情況影響,一來不是準(zhǔn)確的 5 V,實(shí)測(cè)大多在 4.8 V 左右,二來隨著整個(gè)系統(tǒng)負(fù)載情況的變化會(huì)產(chǎn)生波動(dòng),所以只能用在簡(jiǎn)易的、對(duì)精度要求不高的場(chǎng)合。方法二是使用專門的基準(zhǔn)電壓器件,比如 TL431,它可以提供一個(gè)精度很高的 2.5 V 的電壓基準(zhǔn),這是我們通常采用的方法。如圖17-4所示。
圖17-4 PCF8591 基準(zhǔn)與對(duì)外接口原理圖
圖中 J17 是雙排插針,大家可以根據(jù)自己的需求選擇跳線帽短接還是使用杜邦線連接其它外部電路,二者都是可以的。在這個(gè)地方,我們直接把 J17 的3腳和4腳用跳線帽短路起來,那么現(xiàn)在 Vref 的基準(zhǔn)源就是 2.5 V 了。分別把5和6、7和8、9和10、11和12用跳線帽短接起來的話,那么我們的 AIN0 實(shí)測(cè)的就是電位器的分壓值,AIN1 和 AIN2 測(cè)的是 GND 的值,AIN3測(cè)的是 +5 V 的值。這里需要注意的是,AIN3 雖然測(cè)的是 +5 V 的值,但是對(duì)于 AD 來說,只要輸入信號(hào)超過 Vref 基準(zhǔn)源,它得到的始終都是最大值,即255,也就是說它實(shí)際上無法測(cè)量超過其 Vref 的電壓信號(hào)的。需要注意的是,所有輸入信號(hào)的電壓值都不能超過 VCC,即 +5 V,否則可能會(huì)損壞 ADC 芯片。