A/D轉(zhuǎn)換器的使用問題
ADμC812內(nèi)集成的ADC轉(zhuǎn)換模塊,包含了8通道、12位、單電源A/D轉(zhuǎn)換器,這些A/D轉(zhuǎn)換器是由基于電容DAC的常規(guī)逐次逼近轉(zhuǎn)換器組成的,接收的模擬輸入范圍為0至+VREF(+2.5V)。另外,此模塊還為用戶提供片內(nèi)基準(zhǔn)、校準(zhǔn)特性,模塊內(nèi)的所有部件能方便地通過3個(gè)寄存器SFR接口來設(shè)置??傊?,ADμC812的ADC模塊具有與一般ADC芯片相比擬的性能,并且操作簡單、可靠性高,采集速率可高達(dá)200kHz。
(1) 基準(zhǔn)電壓
A/D轉(zhuǎn)換器的2.5V基準(zhǔn)電壓既可由片內(nèi)提供,也可由外部基準(zhǔn)經(jīng)VREF引腳驅(qū)動(dòng)。若使用內(nèi)部基準(zhǔn),則在VREF和CREF引腳與AGND之間都應(yīng)當(dāng)連接100nF電容以便去耦。這些去耦電容應(yīng)放在緊靠VREF和CREF引腳處。為了達(dá)到規(guī)定的性能,建議在使用外部基準(zhǔn)時(shí),該基準(zhǔn)應(yīng)當(dāng)在2.3V和模擬電源AVDD之間。
由于片內(nèi)基準(zhǔn)高精度、低漂移且經(jīng)工廠校準(zhǔn),并且當(dāng)ADC或DAC使能時(shí),在VREF引腳會(huì)出現(xiàn)此基準(zhǔn)電壓。因此,在進(jìn)行系統(tǒng)擴(kuò)展時(shí),可將片內(nèi)基準(zhǔn)作為一個(gè)2.5V的參考電源來使用。若要把片內(nèi)基準(zhǔn)用到微轉(zhuǎn)換器之內(nèi),則應(yīng)在VREF引腳上加以緩沖并應(yīng)在此引腳與AGND之間連接100nF電容。
在實(shí)際應(yīng)用中應(yīng)當(dāng)特別注意,內(nèi)部VREF將保持掉電直到ADC或DAC外圍設(shè)備模塊之一被它們各自的使能位上電為止。
(2) 模擬輸入
與其他ADC芯片相比,ADμC812的ADC模塊有一個(gè)缺點(diǎn),就是ADC正常工作的模擬輸入范圍為0~+2.5V;而允許輸入的電壓范圍只能為正電壓(0~+5V)。經(jīng)實(shí)驗(yàn)證明,若輸入的模擬電壓超過+2.5V(最大值為+5V),ADC的采樣結(jié)果為最大值(0FFFH),雖然結(jié)果不對(duì),但并沒有影響ADμC812正常工作;但是,一旦輸入負(fù)的模擬電壓,則會(huì)影響ADμC812正常工作,表現(xiàn)為ADC的基準(zhǔn)電壓(VREF=+2.5V)消失和采樣結(jié)果不正確,且若長時(shí)間輸入負(fù)電壓,將有可能損壞芯片。因此,在實(shí)際應(yīng)用中,若發(fā)現(xiàn)啟動(dòng)ADC之后VREF端無電壓,則應(yīng)立即將芯片復(fù)位,并檢查模擬輸入信號(hào)的采集放大部分。在確保進(jìn)入ADμC812的模擬信號(hào)在0~+2.5V范圍內(nèi)之后,才能再次啟動(dòng)ADC。實(shí)際應(yīng)用時(shí),應(yīng)保證輸入的模擬電壓為正電平。
并行I/O端口的使用問題
與其他單片機(jī)一樣,ADμC812也有4個(gè)通用數(shù)據(jù)端口(P0~P3)與外部器件交換數(shù)據(jù),且除了用作通用I/O之外,某些端口還能實(shí)現(xiàn)外部存儲(chǔ)器操作。另有一些端口則與器件上外圍設(shè)備其他功能多路復(fù)用。
(1)P1口
值得注意的是,在ADμC812中端口0、2和3是雙向端口,而端口1是只輸入端口。在圖中可以看到在P1口的電路中包括了位鎖存器和輸入緩沖器,但沒有輸出驅(qū)動(dòng)器,因而P1口只能被配置為數(shù)字輸入或模擬輸入,不能用于輸出。
當(dāng)P1口用作模擬輸入時(shí),它對(duì)應(yīng)于ADμC812內(nèi)8通道模數(shù)轉(zhuǎn)換的輸入端口ADC0~ADC7。若在實(shí)際使用中,不須將8個(gè)通道ADC都用上,可將剩余的P1口引腳設(shè)置為數(shù)字輸入,但此時(shí)須注意,它與標(biāo)準(zhǔn)的8051單片機(jī)用作數(shù)字輸入的通用I/O口不同,認(rèn)為高電平有效。因此,P1口用作數(shù)字輸入時(shí),在檢測是否有輸入信號(hào)之前,須將0寫至對(duì)應(yīng)端口,然后再判斷。這就要求系統(tǒng)在設(shè)計(jì)時(shí),應(yīng)將用作數(shù)字輸入的P1口外加1個(gè)下拉電阻,一般為幾kΩ。

?
圖P1口位鎖存器與輸入緩沖
(2) P2口
如前所述,ADμC812的P2口也是雙向端口,包含輸入緩沖器、輸出鎖存器和輸出驅(qū)動(dòng)器。通過與P2口相應(yīng)的端口SFR,可將P2口的各端口引腳獨(dú)立地配置為數(shù)字輸入或數(shù)字輸出,以及對(duì)它們進(jìn)行讀、寫訪問。這些與一般單片機(jī)P2口作通用I/O口的用法相同。
但當(dāng)ADμC812接有外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口不僅要用于輸出中8位地址(A8~A15),還要用于輸出高8位地址(A16~A23),此用法類似于P0口。不同的是,P0口是數(shù)據(jù)和地址總線復(fù)用,而P2口是中位、高位字節(jié)地址總線復(fù)用。因此,P2口在用于外擴(kuò)大容量數(shù)據(jù)存儲(chǔ)器時(shí),也應(yīng)通過一個(gè)鎖存器將高位字節(jié)地址鎖存,如圖4所示。

?
圖 P2口地址鎖存
外部尋址問題
與其他單片機(jī)不同,ADμC812具有24根地址線。它可尋址的外部數(shù)據(jù)存儲(chǔ)器空間為16MB,此超大容量的存儲(chǔ)空間可滿足眾多應(yīng)用領(lǐng)域的需求。由于外部數(shù)據(jù)存儲(chǔ)器空間高達(dá)16MB,只用DPTR作間址寄存器是不夠的。因此,ADμC812的數(shù)據(jù)指針是由3個(gè)8位寄存器來組成,分別是DPP(頁字節(jié)寄存器)、DPH(高位字節(jié)寄存器)和DPL(低位字節(jié)寄存器),在進(jìn)行內(nèi)部和外部代碼訪問或外部數(shù)據(jù)訪問時(shí),由它們來提供存儲(chǔ)器地址。與其他單片機(jī)一樣,DPTR仍然是由DPH和DPL兩個(gè)寄存器來構(gòu)成,且用法相同;而DPP是用于傳送A23~A16最高8位地址的寄存器,這相當(dāng)于若將外部數(shù)據(jù)寄存器每64KB劃分為1頁,則不同的DPP值將對(duì)應(yīng)于不同的頁,因此取名為頁寄存器。
SPI串口對(duì)P3口的影響
為便于MCU與各種外圍設(shè)備進(jìn)行通信,ADμC812提供了三種串行I/O端口:UART接口、I2C兼容的串行接口和串行外設(shè)接口(SPI)。其中,SPI接口是工業(yè)標(biāo)準(zhǔn)的同步串行接口,它允許MCU與各種外圍設(shè)備以串行方式(8位數(shù)據(jù)同時(shí)同步地被發(fā)送和接收)進(jìn)行通信。由于只須使用4條線就可與多種標(biāo)準(zhǔn)外圍器件直接接口,因此,SPI接口在串口通信方面有著廣泛的應(yīng)用。
然而,我們?cè)谑褂肁DμC812的SPI串口進(jìn)行通信時(shí),發(fā)現(xiàn)它與其他芯片(具有SPI串口功能)不同,此SPI串口的使能會(huì)對(duì)P3口產(chǎn)生影響,其現(xiàn)象表現(xiàn)為:無論P(yáng)3口實(shí)際輸入電平為何值,P3口的內(nèi)部鎖存器都認(rèn)定為高電平,從而程序中的JB或JNB等判斷轉(zhuǎn)移指令將失去作用。這說明,SPI串口使能將使P3口只能作為輸出口來使用。因此,在同時(shí)使用SPI串口和P3口作輸入口時(shí),為避免錯(cuò)誤發(fā)生,必須在每次P3口檢測輸入信號(hào)之前都將SPI串口禁止。
評(píng)論