串行A/D轉(zhuǎn)換器MAX1270及其應(yīng)用
1. 引言
目前A/D轉(zhuǎn)換器的種類繁多,從數(shù)據(jù)輸出形式上可分為串行輸出與并行輸出兩大類。其中串行輸出AD轉(zhuǎn)換器因其硬件接口簡(jiǎn)單而得到廣泛應(yīng)用。另外,從可接受的輸入信號(hào)極性上看,A/D轉(zhuǎn)換器又可分為單極性輸入和雙極性輸入。在很多的數(shù)據(jù)采集場(chǎng)合常常面對(duì)極性可變的模擬信號(hào)。當(dāng)然可將待轉(zhuǎn)換信號(hào)進(jìn)行電位移動(dòng)以將其轉(zhuǎn)化為單一極性,但如此便增加了電路的復(fù)雜性。串行輸出、雙極性輸入A/D轉(zhuǎn)換器MAX1270[1]不增加任何硬件電路即可實(shí)現(xiàn)對(duì)雙極性模擬信號(hào)的A/D轉(zhuǎn)換。迄今為止對(duì)MAX1270的應(yīng)用非常少[2],且未見詳細(xì)介紹。本文詳細(xì)介紹了MAX1270的特點(diǎn),給出了最簡(jiǎn)硬件接口、軟件編程及應(yīng)用實(shí)例。
2. MAX1270芯片介紹
MAX1270是8通道、多量程雙極性輸入、串行輸出、逐次逼近型12 bit AD轉(zhuǎn)換器。其封裝形式有24腳Narrow PDIP和28腳SSOP兩種。PDIP封裝的引腳排列如圖1所示。各有用引腳功能如下:
1-VDD,+5V電源輸入端;2、4-DGND,數(shù)字地;5-SCLK,串行時(shí)鐘輸入端;6-/CS,片選輸入端,低電平有效;7-DIN,串行數(shù)據(jù)輸入,即AD轉(zhuǎn)換控制字輸入端;8-SSTRB,串行數(shù)據(jù)輸出選通輸出端;10-DOUT,串行數(shù)據(jù)輸出端;11-/SHDN,掉電模式控制輸入端,
低電平有效;12-AGND,模擬地;13~20-CH0~CH7,模擬信號(hào)輸入端;21-REFADJ,參考電壓輸出/外部調(diào)節(jié)輸入;23-REF,參考電壓緩沖輸出/ADC的參考輸入。
2.1 MAX1270的控制字
MAX1270的8位控制字及其功能如表1所示。最高位START為起始位(高電平),標(biāo)志控制字的開始。/CS為低電平期間,控制字在時(shí)鐘脈沖SCLK作用下先高位后低位通過DIN端輸入。
表1 控制字格式
BIT7(MSB) | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0(LSB) |
START | SEL2 | SEL1 | SEL0 | RNG | BIP | PD1 | PD0 |
2.2時(shí)鐘模式與轉(zhuǎn)換速率
PD1PD0為掉電/時(shí)鐘模式選擇位。PD1PD0=10、11時(shí)為省電模式。正常工作時(shí)MAX1270有外部時(shí)鐘與內(nèi)部時(shí)鐘兩種工作模式。PD1PD0=01時(shí)為外部時(shí)鐘模式,串行數(shù)據(jù)的移入、移出以及數(shù)據(jù)采集、轉(zhuǎn)換都由SLCK端的輸入脈沖控制。PD1PD0=00時(shí)為內(nèi)部時(shí)鐘模式,數(shù)據(jù)轉(zhuǎn)換時(shí)鐘由芯片自己產(chǎn)生,減輕了微處理器的負(fù)擔(dān),使得轉(zhuǎn)換后的數(shù)據(jù)可在微處理器方便的任何時(shí)刻讀取,利于提高微處理器的工作效率。外部時(shí)鐘模式分為25SCLK/s(每個(gè)數(shù)據(jù)轉(zhuǎn)換需要25個(gè)時(shí)鐘周期)和18 SCLK/s兩種方式,后者轉(zhuǎn)換速率稍快的原因是在全部數(shù)據(jù)轉(zhuǎn)換期間/CS始終維持有效電平。內(nèi)部時(shí)鐘模式也有20、16、13 SCLK/s等不同轉(zhuǎn)換方式。不同的時(shí)鐘模式和轉(zhuǎn)換方式,其轉(zhuǎn)換速率不同。在外部時(shí)鐘模式、SCLK速率為2MHz、18 SCLK/s時(shí)MAX1270轉(zhuǎn)換速率可達(dá)110ksps。
2.3通道選擇與輸入范圍
SEL2~SEL0為通道選擇位,000~111分別選擇輸入通道CH0~CH7。RNG~BIP為輸入范圍選擇位,MAX1270有4種輸入范圍。RNG~BIP置00時(shí) 0~5V單極性輸入, 置01時(shí)0~+10V單極性輸入; 置10時(shí) -5~+5V雙極性輸入;置11時(shí)-10~+10V雙極性輸入。
2.4傳輸函數(shù)與輸出數(shù)據(jù)格式
對(duì)單極性輸入,1LSB=FS/4096,輸出數(shù)據(jù)為12位二進(jìn)制碼。對(duì)雙極性輸入,1LSB=FS/2048,輸出數(shù)據(jù)為12位二進(jìn)制補(bǔ)碼。
2.5參考電壓
MAX1270可使用芯片內(nèi)的4.096V參考電壓,也可使用外部參考。圖2是使用片外參考和片內(nèi)參考時(shí)相關(guān)管腳的接法。
圖2 管腳連接圖 (a) 使用片內(nèi)參考電壓 (b)、 (c)使用片外參考電壓 |
3. 電路硬件連接與軟件編程
MAX1270與AT89S52的連接方法如圖3所示。下面是用匯編語[2]言編寫的一個(gè)通道AD轉(zhuǎn)換子程序adconversion,外部時(shí)鐘模式,轉(zhuǎn)換方式25SCLK/s??刂谱衷赗1中。轉(zhuǎn)換所得12位數(shù)據(jù)高4位放入R3,低8位放入R4。
adconversion: CLR P1.0
MOV A,R1 ;將控制字送A
LCALL INPUT ;控制字輸入子程序
CLR P1.1 ;SCLK第8個(gè)時(shí)鐘的下降沿
CLR P1.2
SETB P1.1
CLR P1.1 ;SCLK第9個(gè)時(shí)鐘的下降沿
….
SETB P1.1 ;SCLK第13個(gè)時(shí)鐘的上升沿
ACALL OUTPUT ;輸出AD轉(zhuǎn)換后的數(shù)據(jù)
CLR P1.1
SETB P1.0
RET
INPUT: NOP ;MAX1270的控制字輸入子程序
MOV R2,#08H ;控制字有8位
LOOP3: CLR P1.1
RLC A ;控制字在A中
MOV P1.2, C
SETB P1.1
DJNZ R2, LOOP3
RET ;SCLK處于第8個(gè)脈沖的高電平
OUTPUT: NOP ;12位數(shù)據(jù)輸出子程序
MOV R2,#04H ;輸出數(shù)據(jù)高4位
LCALL OUTPUT1
MOV R3, A ;高4位送R3
MOV R2,#08H ;輸出數(shù)據(jù)低8位
ACALL OUTPUT1
MOV R4, A ;低8位送R4
RET
OUTPUT1: CLR A
LOOP8: SETB P1.3 ;置P1.3為輸入
CLR P1.1
NOP ;等待SSTRB由高變低,至少200ns
MOV C, P1.3
RLC A
SETB P1.1
DJNZ R2, LOOP8
RET
4. 應(yīng)用實(shí)例
將MAX1270數(shù)據(jù)采集電路應(yīng)用于毛細(xì)管電泳電導(dǎo)檢測(cè)系統(tǒng)中。該檢測(cè)系統(tǒng)需要4路雙極性數(shù)據(jù)采集,其中3路為電泳通道電流、1路為電導(dǎo)檢測(cè)電流,其中通道電流用于監(jiān)視系統(tǒng)工作狀態(tài),而檢測(cè)電流是標(biāo)志被測(cè)物質(zhì)含量的關(guān)鍵信息。將所采集電流信號(hào)調(diào)理、轉(zhuǎn)換成-10~+10V的電壓信號(hào),再經(jīng)MAX1270模數(shù)轉(zhuǎn)換后通過單片機(jī)串口發(fā)送給PC機(jī)存儲(chǔ)、顯示。單片機(jī)振蕩頻率12MHz、串口波特率62.5KHz,程序框圖如圖4所示。PC機(jī)數(shù)據(jù)接收和顯示由其它高級(jí)語言編寫。檢測(cè)系統(tǒng)運(yùn)行結(jié)果表明該數(shù)據(jù)采集電路的采集速率和轉(zhuǎn)換精度完全滿足要求。
5. 結(jié)論
本文介紹了MAX1270的特點(diǎn)并在分析工作時(shí)序的基礎(chǔ)上首次給出外部時(shí)鐘、25SCLK/S轉(zhuǎn)換方式下的AD轉(zhuǎn)換程序,愿與同行交流。實(shí)際使用表明,MAX1270完全滿足轉(zhuǎn)換速率和轉(zhuǎn)換精度要求,是雙極性、多路數(shù)據(jù)采集的合理選擇。
本文作者創(chuàng)新點(diǎn)如下:
① 實(shí)現(xiàn)了MAX1270與單片機(jī)的最簡(jiǎn)接口。只需4根連接線(SCLK、DIN、DOUT、/CS)而不用SSTRB啟動(dòng)數(shù)據(jù)的輸出。
② AD轉(zhuǎn)換后的數(shù)據(jù)即時(shí)發(fā)送給PC機(jī),單片機(jī)不需外接數(shù)據(jù)存儲(chǔ)器。
這兩點(diǎn)都在一定程度上簡(jiǎn)化了硬件電路。