詳究2812 的內(nèi)置ADC
AD,就是將模擬量轉(zhuǎn)變?yōu)閿?shù)字量的過程,一般分為取樣、保持、量化、編碼這4步。
由于模擬信號(hào)在時(shí)間上連續(xù)的,而數(shù)字信號(hào)在時(shí)間上離散的,所以轉(zhuǎn)換時(shí)首先必須按 數(shù)字信號(hào)的節(jié)拍,對(duì)被轉(zhuǎn)換的模擬信號(hào)采取樣品。取樣(Sample)的原理如圖示。
開關(guān)受取樣脈沖信號(hào)S(t)控制,S(t)=0時(shí),開關(guān)斷開,取樣輸出V1(t)=0;S(t)=1時(shí),開關(guān)導(dǎo)通,V1(t)=V(t)。這樣就把連續(xù)的模擬信號(hào)V(t)變成了一個(gè)個(gè)脈沖信號(hào)。
采樣定理:取樣信號(hào)S(t)的頻率fs大于或等于模擬信號(hào)f(t)的最高頻率Fmax(其頻帶的上限頻率)的2倍,
則輸入信號(hào)V(t)的主要特征都能夠被保留下來,將來可以通過濾波處理,從V1(t)中恢復(fù)原來的信號(hào)V(t)。
AD的采樣頻率和轉(zhuǎn)換時(shí)間。
AD的采樣頻率取決于啟動(dòng)AD的速度,啟動(dòng)AD轉(zhuǎn)換的方法有很多,例如軟件直接啟動(dòng),或者利用EV的一些事件來啟動(dòng),
啟動(dòng)的頻率才是AD采樣的頻率,例如每隔1ms啟動(dòng)1次,則AD采用頻率為1K。而AD時(shí)鐘和AD的轉(zhuǎn)換時(shí)間有關(guān),和AD采樣頻率是無關(guān)的。
2812內(nèi)部ADC的特點(diǎn)
2812的ADC模塊是一個(gè)12位分辨率的、具有流水線結(jié)構(gòu)的模數(shù)轉(zhuǎn)換器,具有16個(gè)通道。
對(duì)于每個(gè)序列發(fā)生器,一旦轉(zhuǎn)換結(jié)束,已選擇采樣的通道值就會(huì)被保存到各個(gè)通道的結(jié)果寄存器中去。
總共有16個(gè)結(jié)果寄存器Result Reg0—Result Reg15,用于分別保存16個(gè)通道的轉(zhuǎn)換結(jié)果。
2812 ADC的功能
1.12位的ADC內(nèi)核,內(nèi)置2個(gè)采樣保持器(S/H-A,S/H-B)。
2.采樣模式可以為順序采樣(Sequential Sampling)或者是同步采樣(Simultaneous Sampling)
3.模擬輸入范圍為0—3V(需要注意,輸入不可超過3V,否則燒壞2812)一般輸入最大值在3V的70%左右,為防止萬一,一般先將要采樣的信號(hào)經(jīng)過運(yùn)放處理(基準(zhǔn)電壓源偏置),
使輸入電壓范圍在AD正常工作采樣范圍之內(nèi),在信號(hào)進(jìn)DSP的AD口時(shí),最好加一嵌位二極管。
4.快速轉(zhuǎn)換時(shí)間運(yùn)行在25MHZ,ADC時(shí)鐘或者12.5MSPS(每秒完成12.5個(gè)百萬次的采樣。)
5.總共為16路輸入通道,可編程多路選擇輸入。16路采樣輸入通道被分成了兩組,每組8個(gè),分別是ADCINA0……ADCINA7和ADCINB0……ADCINB7。
A組對(duì)應(yīng)于采樣保持器S/H-A,B組對(duì)應(yīng)于采樣保持器S/H-B。
6.自動(dòng)序列化,在單一事件段最大能夠提供16個(gè)自動(dòng)A/D轉(zhuǎn)換。
7.序列發(fā)生器可以按兩個(gè)獨(dú)立的8狀態(tài)序列發(fā)生器(SEQ1和SEQ2)來運(yùn)行,也可以按一個(gè)16狀態(tài)的序列發(fā)生器(SEQ)來運(yùn)行。
8.共有16個(gè)轉(zhuǎn)換結(jié)果寄存器來保存轉(zhuǎn)換數(shù)值
式中:ADCLO為AD轉(zhuǎn)換的參考電平,在實(shí)際使用的過程中,通常將其與GND連接,因此此時(shí)ADCLO的值為0。
4095=2^12-1,對(duì)應(yīng)于滿量程輸入為3V時(shí)的轉(zhuǎn)換結(jié)果
9.有多種觸發(fā)方式來啟動(dòng)AD轉(zhuǎn)換(SOC=start of conversion),包括:軟件直接啟動(dòng)S/W,EVA的事件源,EVB的事件源和外部引腳啟動(dòng)。
10.序列發(fā)生器可以運(yùn)行在啟動(dòng)/停止模式。
11.采樣-保持的采集時(shí)間窗口可以預(yù)先設(shè)定。(ADCTRL1的位ACQ_PS3—ACQ_PS0決定了采集窗口的大小,這一位控制了SOC脈沖的寬度,也就是一開始開關(guān)S(t)的導(dǎo)通時(shí)間。
SOC脈沖的寬度是(ACQ_PS+1)*ADCLK。)
ADC時(shí)鐘
Example.Clock Chain to the ADC
ADC工作模式
順序采樣、同步采樣(AdcRegs.ADCTRL1.bit.SEQ_CASC位控制)---采樣方式
雙序列發(fā)生器模式、級(jí)聯(lián)模式(AdcRegs.ADCTRL3.bit.SMODE_SEL位控制)---序列放生器的模式
也就是說在雙序列發(fā)生器模式下可以采用順序采樣和同步采樣,在級(jí)聯(lián)模式下我們依然可以采用順序采樣和同步采樣兩種方式
序列發(fā)生器的連續(xù)自動(dòng)序列化模式和啟動(dòng)/停止模式
一個(gè)序列的轉(zhuǎn)換數(shù)是由MAXCONVn進(jìn)行控制的,在啟動(dòng)一個(gè)轉(zhuǎn)換序列進(jìn)行轉(zhuǎn)換時(shí),AD模塊將MAXCONVn的值裝載進(jìn)自動(dòng)序列狀態(tài)寄存器ADCASEQSR的序列計(jì)數(shù)器狀態(tài)位SEQCNTR。
當(dāng)序列發(fā)生器從狀態(tài)CONV00開始并順序進(jìn)行(CONV01,CONV02。。。。)時(shí),SEQCNTR位從裝入值開始遞減,直到為0,結(jié)束一個(gè)序列的轉(zhuǎn)換,完成轉(zhuǎn)換數(shù)為(MAXCONVn+1)。
當(dāng)ADCTRL1的CONT RUN位設(shè)為0時(shí),AD的序列發(fā)生器運(yùn)行在啟動(dòng)/停止模式,也就是說這種模式下,序列發(fā)生器在完成1個(gè)序列的轉(zhuǎn)換之后將停止工作,在下一次轉(zhuǎn)換啟動(dòng)開始之前,
必須復(fù)位序列發(fā)生器,將轉(zhuǎn)換器置為CONV00。
復(fù)位的方法如下:
AdcRegs.ADCTRL2.bit.RST_SEQ1=1;//立即復(fù)位序列發(fā)生器為CONV00
AdcRegs.ADCTRL2.bit.RST_SEQ2=1;//立即復(fù)位序列發(fā)生器為CONV08
當(dāng)AD的控制寄存器1的CONT RUN位設(shè)為1時(shí),AD的序列發(fā)生器運(yùn)行在連續(xù)自動(dòng)序列化模式,當(dāng)序列轉(zhuǎn)換結(jié)束時(shí),轉(zhuǎn)換序列自動(dòng)重復(fù)開始,SOC觸發(fā)時(shí)自動(dòng)將MAXCONVn裝入SEQCNTR,
SEQ的狀態(tài)變?yōu)镃ONV00。在這種情況下,為了避免重寫數(shù)據(jù),必須確保在下一個(gè)轉(zhuǎn)換序列開始前,讀取結(jié)果寄存器。
評(píng)論