采用CPLD的MAX1032采樣控制的實(shí)現(xiàn)方法
0 引言
本文主要介紹MAX1032采樣芯片以及使用CPLD對(duì)MAX1032采樣進(jìn)行控制的方法。事實(shí)上,雖然微控制器也能對(duì)MAX1032進(jìn)行方便的控制,但使用CPLD來(lái)控制系統(tǒng)外圍設(shè)備,可以節(jié)省微控制器的資源,減輕其負(fù)擔(dān),同時(shí)可以讓其處理更復(fù)雜的信息,而利用CPLD對(duì)時(shí)序進(jìn)行控制則
更精確。
1 MAX1032的主要功能
MAX1032是美信公司推出的AD采樣芯片MAX1030-MAX1033系列中一款。該系列是采樣范圍可達(dá)±12 V的多量程、低功耗、14位逐次逼近型串行輸出模數(shù)轉(zhuǎn)換器(ADC),數(shù)據(jù)傳輸符合SPI協(xié)議。當(dāng)采用+5 V單電源供電時(shí),其轉(zhuǎn)換速率高達(dá)115 ksps。
MAX1032內(nèi)部主要由模擬輸入復(fù)用器及多通道電路、控制邏輯和寄存器、可編程增益放大器(PGA)逐次逼近數(shù)模轉(zhuǎn)換器(SAR ADC)、串行I/O(Serial I/O)以及先進(jìn)先出寄存器(FIFO)等主要模塊構(gòu)成。
MAX1032的各引腳功能如下:
CH0~CH7:模擬信號(hào)輸入端。單端輸入范圍為:O~+6 V、-6 V~0、0~+12 V、-12 V~0和±3V;
±6 V,±12 V,差分輸入,范圍為:±6 V、±12V和±24V;
:片選輸入,低電平有效。只有該端置低,數(shù)據(jù)才可同步輸入(DIN)或輸出(DOUT);
DIN:串行數(shù)據(jù)輸入。為低時(shí),DIN上的數(shù)據(jù)在SCLK的上升沿輸入片內(nèi);
SSTRB:串行觸發(fā)輸出。在內(nèi)部時(shí)鐘模式下,SSTRB的上升沿跳變表明轉(zhuǎn)換完成;在外部時(shí)鐘模式下,SSTRB一直為低電平;
SCLK:串行時(shí)鐘輸入;
DOUT:串行數(shù)據(jù)輸出。在為低時(shí),DOUT上的數(shù)據(jù)在SCLK的下降沿輸出;置高時(shí),DOUT為高阻狀態(tài);
REFCAP:參考電壓旁路端。對(duì)于外部參考電壓模式。REFCAP連到AVDD;對(duì)于內(nèi)部參考電壓模式,通過(guò)一個(gè)0.01μf的電容連到AGNDl;
REF:內(nèi)部基準(zhǔn)電壓輸出或外部基準(zhǔn)電壓輸入。在外部參考電壓模式下,REF端可接由外部電路提供的3.800-4.0136 V的基準(zhǔn)電壓;在內(nèi)部參考電壓模式下。REF端與AGNDl端之間必須連接容量為1μF的濾波電容,該端由芯片內(nèi)部提供4.096 V參考電壓:
DGNDO:數(shù)字I/O地;
DGND:數(shù)字地;
DVDDO:數(shù)字I/O電源輸入。輸入范圍為+2.7~+5.25 V:
DVDD:數(shù)字電源輸入;
AVDDl:模擬輸入電源1,輸入范圍為+4.75~+5.25 V:
AVDD2:模擬輸入電源2,輸入范圍為+4.75~+5.25 V:
AGNDl:模擬地1;
AGND2:模擬地2;
AGND3:模擬地3。
設(shè)計(jì)時(shí),AGNDl,AGND2,AGND3,DGNDO,DGND必須接到一起。
2 MAX1032的工作原理
在使用MAX1032進(jìn)行采樣前,通常需要確認(rèn)信號(hào)的輸入阻抗在17 kΩ以?xún)?nèi)。
MAX1032總共有三種工作模式:外部時(shí)鐘模式,外部采樣模式和內(nèi)部時(shí)鐘模式。本文將針對(duì)。MAX1032的外部時(shí)鐘模式并結(jié)合CPLD給出實(shí)際的應(yīng)用方案。
外部時(shí)鐘模式:以最快的轉(zhuǎn)換速率達(dá)到最大的吞吐量,由用戶(hù)直接控制采樣時(shí),CSn在轉(zhuǎn)換過(guò)程中始終為低,這時(shí),用戶(hù)可通過(guò)SCLK控制A/D的轉(zhuǎn)換并對(duì)結(jié)果讀取。SSTRB始終為低,其轉(zhuǎn)換時(shí)序圖如圖1所示。SCLK的周期(tCP)必須在272 ns~62 us之間。其中高低電平寬度均需大于109 ns(tCL,tCH)。在CSn由高變低后的40 ns(tCSS),可以開(kāi)始對(duì)SCLK上跳沿計(jì)數(shù),DIN的輸入建立時(shí)間至少40 ns (tDS),DIN將在SCLK上跳沿時(shí)同步輸入(tDH),SCLK上跳沿之后,將忽略DIN。在CSn變低之后40 ns(tDV)內(nèi),DOUT開(kāi)始有效,而在CSn拉高后40 ns(tTR)內(nèi),DOUT將輸出保持高阻態(tài),其時(shí)序描述如圖2所示。
在內(nèi)部時(shí)鐘模式,系統(tǒng)將以較快的速率達(dá)到最大的吞吐量,并由內(nèi)部時(shí)鐘控制采樣,用戶(hù)只需提供一個(gè)字節(jié)的SCLK,再拉高CSn,即可啟動(dòng)轉(zhuǎn)換。和外部采樣模式相同,SSTRB上跳變表示轉(zhuǎn)換完成,此時(shí),用戶(hù)便可提供兩個(gè)字節(jié)的SCLK來(lái)讀取轉(zhuǎn)換結(jié)果。
在外部采樣模式,系統(tǒng)將以最慢的轉(zhuǎn)換速率達(dá)到最大的吞吐量,并由用戶(hù)直接控制采樣,用戶(hù)可提供兩個(gè)字節(jié)的SCLK,再將CSn拉高,以啟動(dòng)轉(zhuǎn)換。SSTRB上跳變表示轉(zhuǎn)換完成,用戶(hù)提供兩個(gè)字節(jié)的SCLK可讀取轉(zhuǎn)換結(jié)果。
MAX1032總共有三個(gè)控制字:模擬輸入配置字、模式控制字和轉(zhuǎn)換啟動(dòng)字。圖2所示是模擬輸入控制字和模式控制字的工作時(shí)序圖。三個(gè)控制字均為8位。
對(duì)于模擬輸入配置字,DO~D2是選擇量程的,MAX1032總共有10種量程可以選擇;D3是差分/單端選擇位,為低表示采樣信號(hào)為單端輸入.為高表示差分輸入。D4~D6是輸入通道選擇,總共有8個(gè)采樣通道。D7是字開(kāi)始位,置高表示字輸入開(kāi)始。
對(duì)于模式控制字,D0~D2必須為低,D3必須為高。D4~D6用于工作狀態(tài)選擇,總共有6種工作狀態(tài)。D7是字開(kāi)始位,同樣,置高表示字輸入啟動(dòng)。
轉(zhuǎn)換啟動(dòng)字D7是字開(kāi)始位,D4~D2是輸入通道選擇。用法和模擬輸入配置字相同,操作時(shí)DO~D3必須為低。
三個(gè)控制字的輸入順序是模擬輸入配置字,模式控制字,轉(zhuǎn)換啟動(dòng)字。
3 硬件設(shè)計(jì)
圖3所示是本系統(tǒng)的結(jié)構(gòu)框圖。由圖3可見(jiàn),模擬采樣信號(hào)先經(jīng)過(guò)一個(gè)運(yùn)放。運(yùn)放的作用是降低輸入阻抗。以達(dá)到MAX1032輸入阻抗小于17kΩ的要求。之后,再將利用CPLD控制MAX1032進(jìn)行采樣,采樣結(jié)果回送至CPLD,之后經(jīng)過(guò)處理后的數(shù)據(jù)傳到系統(tǒng),由系統(tǒng)再將一系列二進(jìn)制數(shù)換算成最終的結(jié)果??驁D里的系統(tǒng)可以是嵌入式微控制器,也可以是數(shù)字輸入輸出卡等控制系統(tǒng)。
圖4所示是MAX1032的應(yīng)用電路圖。由于MAX1032只允許輸入阻抗小于17 kΩ,而有的采樣信號(hào)不一定能滿(mǎn)足這一要求,故需要對(duì)采樣信
號(hào)進(jìn)行一定處理,以降低信號(hào)的輸出阻抗。由于射極跟隨器的輸出阻抗趨于零,故將待采樣信號(hào)連到射極跟隨器上可以有效降低其輸出阻抗。本文選用的運(yùn)放為OP07,該運(yùn)放具有很低的輸入失調(diào)電壓和漂移,而且精度相當(dāng)高,適合作為模擬信號(hào)前置運(yùn)放。如將OP07接成負(fù)反饋模式,使輸出等于1+R1/R2,并將滑動(dòng)變阻器R1調(diào)至0Ω,那么它就可以當(dāng)做電壓跟隨器使用。
圖4中,MAX1032的外部參考電壓由LTC6652提供。LTC6652是高精度電位參考芯片,本文使用4.096 V作為MAX1032外部參考電壓。REFCAP在此模式下可接到5 V電源。由于MAX1032是由CPLD控制,故將DVDDO連到3.3 V。
4 CPLD邏輯設(shè)計(jì)
CPLD和MAX1032的連接圖如圖5所示。其中,CPLD可以選用Ahera公司的MAXII系列器件EPM240或EPM570。
CPID的程序設(shè)計(jì)主要由兩部分組成,第一部分是產(chǎn)生MAX1032的控制信號(hào),第二部分是對(duì)MAX1032的輸出結(jié)果進(jìn)行處理。
clk_1MHZ為CPLD時(shí)鐘,選1 MHz。通過(guò)CPLD可在內(nèi)部對(duì)時(shí)鐘進(jìn)行分頻,輸出SCLK可作為MAX1032的輸入時(shí)鐘。DI由系統(tǒng)給CPLD輸入,作用是選擇MAX1032的控制字,同時(shí)也是CPLD的復(fù)位控制。DIN_out是給MAX1032加載的串行控制字,其加載時(shí)序可利用計(jì)數(shù)器控制。本例采用外部時(shí)鐘模式,模擬輸入配置字為10000110。第七位1是字開(kāi)始標(biāo)志;六到四位為0表示選擇CH0通道輸入,第三位為0表示采樣信號(hào)單端輸入;二到零位為110,表示量程選擇0~12 V。模式控制字為10001000,第七位1是字開(kāi)始標(biāo)志,六到四位為0表示使用外部時(shí)鐘模式。三到零位為100 0是芯片強(qiáng)制輸入。加載完模擬輸入配置字和模式控制字之后,就可以啟動(dòng)采樣,以加載轉(zhuǎn)換啟動(dòng)字開(kāi)始采樣。轉(zhuǎn)換啟動(dòng)字為10000000時(shí),第七位1是字開(kāi)始標(biāo)志,六到四位為0表示選擇CH0通道輸入,三到零位為0000是芯片強(qiáng)制輸入。MAX1032控制協(xié)議和SPI類(lèi)似,在SCLK的上跳沿輸入,下跳沿輸出。片選信號(hào)CSn時(shí)序利用計(jì)數(shù)器控制,每個(gè)控制字之間的CSn必須有一個(gè)高脈沖,脈寬至少40 ns(tCSPW),每個(gè)控制字輸入完后,CSn可以立即拉高(tCSH)。以下是可綜合的MAX1032控制程序的主要代碼:
[!--empirenews.page--]
[!--empirenews.page--]
圖6所示是Modelsim的仿真波形。SCLK上跳沿DIN_out的數(shù)據(jù)被MAX1032讀取。
程序的第二部分的作用是將MAX1032輸出的串行采樣結(jié)果存入CPLD內(nèi)部的一個(gè)14位寄存器。采樣結(jié)果DOUT_in_S是14位的串行序列。CPLD在SCLK的上跳沿讀取數(shù)據(jù)后,可將其存到一個(gè)內(nèi)部寄存器,再由DOUT選擇輸出寄存器的高或低八位數(shù)據(jù)讀出。最后的采樣結(jié)果是并行輸出的。總共2個(gè)字節(jié),末兩位數(shù)據(jù)無(wú)效。對(duì)于外部時(shí)鐘模式,可從加載轉(zhuǎn)換啟動(dòng)字開(kāi)始計(jì)算,在第16個(gè)SCLK下跳沿,芯片將輸入采樣結(jié)果。得到結(jié)果即可按照公式(采樣電壓=12x(轉(zhuǎn)換成十進(jìn)制的輸出結(jié)果)/16384)進(jìn)行計(jì)算。以下是這部分功能的可綜合代碼:
圖7所示是Moddsim仿真的CPLD讀取MAX1032的采樣結(jié)果并將其存入寄存器DOUT_P_buf的仿真圖。由圖可見(jiàn),在啟動(dòng)采樣后的第16個(gè)SCLK的下跳沿,MAX1032輸出14位串行采樣結(jié)果,CPLD將其存入內(nèi)部寄存器中以待系統(tǒng)讀取。一般在下一次采樣之前,需要將CPLD復(fù)位來(lái)清除上一次采樣的數(shù)據(jù)。由于外部時(shí)鐘模式下的SSTRB始終為低,故本例沒(méi)有對(duì)該信號(hào)進(jìn)行處理。
5 結(jié)束語(yǔ)
本文介紹了利用CPLD控制MAX1032進(jìn)行采樣的實(shí)現(xiàn)方法,包括CPLD的內(nèi)部邏輯設(shè)計(jì)和對(duì)采樣信號(hào)的處理等。實(shí)驗(yàn)證明,該方法能夠適用
需要使用CPLD控制外圍電路的場(chǎng)合。