1、ADC簡(jiǎn)介 ADC支持多達(dá)14位的模擬數(shù)字轉(zhuǎn)換與高達(dá)12位的有效位數(shù)。ADC包括一個(gè)達(dá)8個(gè)獨(dú)立配置通道的模擬多路轉(zhuǎn)換器,和一個(gè)參考電壓發(fā)生器。轉(zhuǎn)換結(jié)果通過(guò)DMA寫(xiě)入存儲(chǔ)器。還具有若干運(yùn)行模式。 ADC主要特性如下: 1)、可在有效分辨率7—12字節(jié)中選擇設(shè)置; 2)、8個(gè)獨(dú)立輸入通道,可接受單端或差分信號(hào); 3)、參考電壓可選為內(nèi)部,外部單端,外部差分,或AVDD5; 4)、產(chǎn)生中斷請(qǐng)求; 5)、轉(zhuǎn)換結(jié)束時(shí)的DMA觸發(fā); 6)、溫度傳感器輸入; 7)、電池測(cè)量功能。
2、ADC操作 本節(jié)描述ADC的一般設(shè)置和操作,同時(shí)也描述了可以由CPU訪問(wèn)的ADC控制和狀態(tài)寄存器的使用。
2.1、ADC輸入 P0引腳上的信號(hào)可以作為ADC輸入來(lái)使用。在下面,這些引腳叫做AIN0—AIN7引腳,輸入腳AIN0—AIN7與ADC連接。 輸入腳可配置成單端或差動(dòng)輸入。如選擇差動(dòng)輸入,包含成對(duì)輸入AIN0-AIN1,AIN2-AIN3,AIN4-AIN5和AIN6-AIN7;注意這些引腳既不能加載負(fù)電壓,也不能加載大于VDD的電壓。在差動(dòng)模式中,成對(duì)腳轉(zhuǎn)換是不同的。 除了輸入腳AIN0-AIN7外,片上的溫度傳感器也可以用來(lái)作為ADC溫度測(cè)量的輸入。如要實(shí)現(xiàn)這個(gè)功能,需設(shè)置寄存器TR0.ADCTM和ATEST.ATESTCTRL。 也可以選擇AVDD5/3電壓作為一個(gè)ADC輸入。這種輸入允許執(zhí)行,如應(yīng)用中的電池測(cè)量功能。注意,這種參考不能依靠于電池電壓,如AVDD5電壓不能被用來(lái)做參考值。 單端輸入AIN0至AIN7可代表通道號(hào)0至7,通道號(hào)8至11分別代表差動(dòng)輸入AIN0-AIN1,AIN2-AIN3,AIN4-AIN5,AIN6-AIN7;通道12表示GND,通道13表示溫度傳感器,通道15表示AVDD5/3。這些值在ADCCON2.SCH和ADCCON3.SCH中設(shè)置。
2.2、ADC序列轉(zhuǎn)換 無(wú)需CPU的參與,ADC能夠完成一個(gè)序列的轉(zhuǎn)換,并通過(guò)DMA把結(jié)果寫(xiě)入內(nèi)存。 寄存器APCFG影響轉(zhuǎn)換序列,來(lái)自I/O引腳的8位模擬輸入不一定是程序設(shè)置的模擬輸入。如某一通道是序列的一部分,但在APCFG中相應(yīng)模擬輸入是禁止的,那此通道將被跳過(guò)。當(dāng)使用差動(dòng)輸入時(shí),兩個(gè)輸入腳在APCFG寄存器中必須被設(shè)置成模擬輸入。 ADCCON2.SCH用來(lái)定義ADC輸入的轉(zhuǎn)換序列。如ADCCON2.SCH被設(shè)為小于8,轉(zhuǎn)換序列包含一個(gè)通道(從0到ADCCON2.SCH中設(shè)置的通道號(hào)),當(dāng)ADCCON2.SCH值設(shè)為8至12時(shí),序列是差動(dòng)輸入,從通道8至程序設(shè)置的通道號(hào);當(dāng)大于12時(shí),序列包含只選擇的通道。
2.3、單個(gè)ADC轉(zhuǎn)換 除了序列轉(zhuǎn)換外,ADC可以通過(guò)編程執(zhí)行單個(gè)轉(zhuǎn)換。通過(guò)寫(xiě)入ADCCON3寄存器可以觸發(fā)一個(gè)轉(zhuǎn)換,轉(zhuǎn)換立即啟動(dòng),除非一個(gè)轉(zhuǎn)換序列正在進(jìn)行中,這種情況下,當(dāng)序列完成后,馬上執(zhí)行單個(gè)轉(zhuǎn)換。
2.4、ADC操作模式 本節(jié)描述操作模式和初始轉(zhuǎn)換。 ADC有三個(gè)控制寄存器:ADCCON1,ADCCON2,和ADCCON3。這些寄存器被用來(lái)配置ADC和報(bào)告狀態(tài)。 ADCCON1.EOC是狀態(tài)位,當(dāng)轉(zhuǎn)換結(jié)束時(shí)設(shè)高電平,當(dāng)讀取ADCH時(shí)低電平。 ADCCON1.ST位用來(lái)啟動(dòng)序列轉(zhuǎn)換的,當(dāng)這位設(shè)高電平、ADCCON1.STSEL是11且當(dāng)前無(wú)轉(zhuǎn)換運(yùn)行時(shí)序列啟動(dòng)開(kāi)始。當(dāng)序列轉(zhuǎn)換結(jié)束時(shí),這位自動(dòng)清除為低電平。 ADCCON1.STSEL位用來(lái)選擇哪個(gè)事件將啟動(dòng)一個(gè)新的序列轉(zhuǎn)換。此項(xiàng)選擇有:外部引腳P2.0上升沿事件,之前序列的結(jié)束事件,定時(shí)器通道0比較事件,或ADCCON1.ST設(shè)1事件。 ADCCON2寄存器控制序列轉(zhuǎn)換是如何執(zhí)行的。 ADCCON2.SREF用來(lái)選擇參考電壓。參考電壓只能在沒(méi)有轉(zhuǎn)換運(yùn)行的時(shí)候修改。 ADCCON2.SDIV用來(lái)選擇抽取率(并因此也設(shè)置了分辨率和完成一個(gè)轉(zhuǎn)換所需的時(shí)間,或樣本率)。抽取率只能在沒(méi)有轉(zhuǎn)換運(yùn)行時(shí)修改。 轉(zhuǎn)換序列的最后一個(gè)通道由ADCCON2.SCH位選擇。 ADCCON3寄存器控制單個(gè)轉(zhuǎn)換的通道號(hào),參考電壓和抽取率。在ADCCON3寄存器被寫(xiě)入或有序列轉(zhuǎn)換運(yùn)行結(jié)束時(shí),單個(gè)轉(zhuǎn)換將立即執(zhí)行。該寄存器的編碼和ADCCON2是完全一樣的。 2.5、ADC轉(zhuǎn)換結(jié)果 數(shù)字轉(zhuǎn)換結(jié)果以2的補(bǔ)碼形式表示。 對(duì)于單端配置,轉(zhuǎn)換結(jié)果預(yù)期是正的,這是由于輸入信號(hào)和地之間的差別,這總是正信號(hào)(Vconv=Vinp-Vinn,這里Vinn=0V),當(dāng)輸入信號(hào)等于VREF時(shí)達(dá)到最大轉(zhuǎn)換結(jié)果,VREF是選擇的參考電壓。 對(duì)于差動(dòng)配置,兩腳的輸入信號(hào)不同,結(jié)果可能是負(fù)的;當(dāng)采樣率為512,模擬輸入Vconv=VREF時(shí),12MSB的數(shù)字轉(zhuǎn)換結(jié)果為2047,當(dāng)模擬輸入等于-VREF時(shí),轉(zhuǎn)換結(jié)果為-2048。 當(dāng)ADCCON1.EOC設(shè)置為1時(shí),放在ADCH和ADCL中的數(shù)字轉(zhuǎn)換結(jié)果是有效的。注意:轉(zhuǎn)換結(jié)果總是放在ADCH和ADCL聯(lián)合寄存器的MSB section中。 通過(guò)讀ADCCON2.SCH位,知道正在轉(zhuǎn)換的是哪個(gè)通道,ADCL和ADCH中的結(jié)果通常適用于以前的轉(zhuǎn)換。如轉(zhuǎn)換序列已結(jié)束,ADCCON2.SCH將有一個(gè)大于最后通道數(shù)一個(gè)以上的值,但如最后寫(xiě)入ADCCON2.SCH中的通道數(shù)是12或更大,讀回的是相同的值。
2.6、ADC參考電壓 模數(shù)轉(zhuǎn)換的參考電壓可選擇于內(nèi)部產(chǎn)生電壓,AVDD5腳電壓,應(yīng)用于AIN7輸入腳的外部電壓,或應(yīng)用于AIN6-AIN7輸入的差動(dòng)電壓。 轉(zhuǎn)換結(jié)果的準(zhǔn)確度依靠于參考電壓的穩(wěn)定性和噪聲度。Offset from the wanted voltage introduces a gain error in the ADC proportional to the ratio of the wanted voltage and the actual voltage. Noise on the reference must be lower than quantization noise of the ADC to ensure the specified SNR is achieved.
2.7、ADC轉(zhuǎn)換時(shí)間 ADC只能運(yùn)行于32MHZ XOSC和系統(tǒng)時(shí)鐘不能被用戶分頻。實(shí)際上ADC的4MHZ采樣頻率由內(nèi)部固定分配的。執(zhí)行一個(gè)轉(zhuǎn)換的要求時(shí)間依靠于被選擇的采樣率。一般上,轉(zhuǎn)換時(shí)間由以下公式所得:Tconv=(decimation rate+16)*0.25us.
2.8、ADC中斷 The ADC generates an interrupt when a single conversion triggered by writing to ADCCON3 has completed.No interrupt is generated when a conversion from the sequence is completed.
2.9、ADC DMA觸發(fā) 每完成一個(gè)序列轉(zhuǎn)換,ADC將產(chǎn)生一個(gè)DMA觸發(fā)。單獨(dú)轉(zhuǎn)換完成不產(chǎn)生DMA觸發(fā)。 在ADCCON2.SCH中設(shè)置頭8個(gè)通道,每個(gè)通道都有一個(gè)DMA觸發(fā)。當(dāng)通道轉(zhuǎn)換中準(zhǔn)備好一個(gè)采樣時(shí),將激活一個(gè)DMA觸發(fā)。DMA觸發(fā)命名為ADC_CHsd,s是單端通道,d是差動(dòng)通道。 另外,當(dāng)ADC序列轉(zhuǎn)換通道中準(zhǔn)備好一個(gè)新數(shù)據(jù)時(shí),一個(gè)DMA觸發(fā)(ADC_CHALL)將激活。
2.10、ADC寄存器 ADCL\ADCH ADC數(shù)據(jù)低字節(jié)
ADCCON1 ADC控制器1
ADCCON2 ADC控制器2
ADCCON3 ADC控制器3
TR0 測(cè)試寄存器0
|
|
來(lái)自: xingwangjy > 《CC2530》