新唐MCU學習筆記-ADC
概述NuMicro®NUC029xAN 包含一個12位逐次逼近型模數(shù)轉(zhuǎn)換器(SAR A/D轉(zhuǎn)換器) ,包含8個輸入通道;NuMicro®NUC029FAE 包含一個10位逐次逼近型模數(shù)轉(zhuǎn)換器(SAR A/D轉(zhuǎn)換器),包含8個通道。 NUC029xAN 的A/D轉(zhuǎn)換器支持四種操作模式:單次模式、Burst 模式、單周期掃描模式和連續(xù)掃描模式;NUC029xAN 只支持單次模式。A/D轉(zhuǎn)換器可以通過軟件、PWM或外部STADC引腳觸發(fā)轉(zhuǎn)換。
特性
–模擬輸入電壓范圍: 0~AVDD
–2位分辨率和10位精度保證(NUC029xAN)
–10位分辨率和8位精度保證(NUC029FAE)
– 多達8路單端模擬輸入通道
或4組互補模擬輸入通道 (NUC029xAN)
– 高達760 kSPS采樣率(NUC029xAN)
–300 KSPS (VDD4.5V - 5.5V) 、200 KSPS (VDD2.5V - 5.5V)轉(zhuǎn)換率(NUC029FAE)
– 四種操作模式 (NUC029FAE只支持單次模式)
單次模式: A/D在指定通道完成一次轉(zhuǎn)換
Burst模式: A/D轉(zhuǎn)換器采樣和轉(zhuǎn)換指定單個通道,并將結(jié)果循序的儲存在FIFO中
單周期掃描模式: A/D按順序從編號最小的通道到編號最大的通道轉(zhuǎn)換一次所有選定的通道。
連續(xù)掃描模式: A/D轉(zhuǎn)換器連續(xù)執(zhí)行單周期掃描模式直到軟件停止A/D轉(zhuǎn)換。
– A/D轉(zhuǎn)換可以開始于:
通過軟件寫1到ADST位(ADCR[11])
PWM觸發(fā),可選擇延時多少周期開始轉(zhuǎn)換
外部STADC引腳
– 每個通道的轉(zhuǎn)換結(jié)果存儲在相應(yīng)數(shù)據(jù)寄存器內(nèi),并帶有有效和溢出標志
–每個通道擁有獨立的數(shù)據(jù)寄存器(NUC029xAN)
– 轉(zhuǎn)換結(jié)果可以和指定的值相比較, 當轉(zhuǎn)換結(jié)果和比較寄存器的設(shè)定值相匹配時,用戶可設(shè)定是否產(chǎn)生中斷請求.
– 通道 7 支持 3 個輸入源:
外部模擬電壓
內(nèi)部 Band-gap 電壓
內(nèi)部溫度傳感器輸出(NUC029xAN)
基本配置
ADC引腳功能在P1_MFP寄存器配置。建議關(guān)閉模擬輸入引腳的數(shù)字輸入通道,以避免漏電。用戶
可以通過配置P1_OFFD 寄存器關(guān)閉數(shù)字輸入通道。ADC外設(shè)時鐘可以在ADC_EN(APBCLK[28]) 使能。ADC外設(shè)時鐘源在ADC_S(CLKSEL1[3:2]) 選擇。時鐘預(yù)分頻在ADC_N(CLKDIV[23:16])設(shè)置。
功能描述
NUC029xAN:
該A/D轉(zhuǎn)換器通過逐次逼近的方式運行,分辨率為12位。該ADC有四種操作模式:單次模式、Burst
模式、單次周期掃描模式和連續(xù)周期掃描模式。當用戶想要改變操作模式或者模擬輸入通道,為了
避免錯誤的操作,軟件必須提前清除ADST(ADCR[11])位為0。
操作模式
NUC029xAN A/D轉(zhuǎn)換器支持四種操作模式: 單次模式, Burst模式, 單周期掃描模式和連續(xù)掃描模式
單次模式
A/D轉(zhuǎn)換器只對指定的一個通道進行一次轉(zhuǎn)換。操作流程如下:
當軟件設(shè)置ADST(ADCR[11])位為1或外部觸發(fā)輸入,A/D轉(zhuǎn)換器開始轉(zhuǎn)換。
當A/D轉(zhuǎn)換器轉(zhuǎn)換結(jié)束,NUC029xAN 的轉(zhuǎn)換結(jié)果儲存在對應(yīng)通道的A/D數(shù)據(jù)寄存器中,而
NUC029FAE 的轉(zhuǎn)換結(jié)果存儲在A/D數(shù)據(jù)寄存器中。
ADF(ADSR[0])位置1. 如果ADIE(ADCR[1]) 位置1, ADC中斷將產(chǎn)生。
在A/D轉(zhuǎn)換過程中,ADST(ADCR[11])位保持為1。在A/D轉(zhuǎn)換結(jié)束后,ADST位自動清0且A/D
轉(zhuǎn)換器進入空閑狀態(tài)。
注 1: 如果在單次模式,軟件使能不止一個通道,只有編號最小的通道被選中,其他使能的通道將被忽略。
注 2: 在ADC轉(zhuǎn)換時,如果ADST位被清0,BUSY位將被立即清0,ADC不能完成當前轉(zhuǎn)換且A/D轉(zhuǎn)
換器直接進入空閑狀態(tài)。
Burst模式
在Burst模式,A/D轉(zhuǎn)換器采樣和轉(zhuǎn)換指定單個通道并將轉(zhuǎn)換結(jié)果按序存放在FIFO中(最多8次采樣)。操作步驟如下:
當ADCR 的ADST(ADCR[11])位通過軟件或外部觸發(fā)輸入設(shè)置為1,A/D開始轉(zhuǎn)換編號做小的通
道
當指定通道的A/D轉(zhuǎn)換完成后,轉(zhuǎn)換結(jié)果按順序傳輸?shù)紽IFO中,只能通過A/D數(shù)據(jù)寄存器0訪
問。
當在FIFO中超過4次采樣結(jié)果,ADF(ADSR[0]) 位將置1。這個時候,如果ADIE(ADCR[1])位置
1,在A/D轉(zhuǎn)換結(jié)束后,將產(chǎn)生一個ADC中斷。
如果ADST(ADCR[11]) 位保持為1,將一直重復(fù)步驟2和3。當ADST(ADCR[11])位清0后,ADC
將不能完成當前轉(zhuǎn)換且A/D轉(zhuǎn)換器直接進入空閑狀態(tài)。
注: 在Burst模式,如果軟件使能不止一個通道,只有編號最小的通道被轉(zhuǎn)換,其他使能的通道將被
忽略。
單周期掃描模式
在單周期掃描模式,A/D轉(zhuǎn)換器按編號從小到大采樣和轉(zhuǎn)換所有指定的通道一次。操作流程如下:
當ADST(ADCR[11])位通過軟件或外部觸發(fā)輸入設(shè)置為1,編號最小的通道將開始A/D轉(zhuǎn)換。
當每一個使能的通道A/D轉(zhuǎn)換完成,轉(zhuǎn)換結(jié)果按順序傳輸?shù)矫總通道相應(yīng)的A/D數(shù)據(jù)寄存器
當所有使能的通道轉(zhuǎn)換完成,ADF(ADSR[0]) 位將置1。如果ADC中斷功能使能,ADC中斷產(chǎn)
生。
在ADC完成一次周期轉(zhuǎn)換,ADST(ADCR[11])位將自動清除為0且A/D轉(zhuǎn)換進入空閑狀態(tài)。如果
在所有使能的ADC通道轉(zhuǎn)換完成之前,ADST(ADCR[11])位清為0,ADC將不能完成當前轉(zhuǎn)換
且A/D轉(zhuǎn)換器直接進入空閑狀態(tài)。
連續(xù)掃描模式
在連續(xù)掃描模式下,A/D轉(zhuǎn)換器循環(huán)轉(zhuǎn)換CHEN(ADCR[7:0])使能的通道(最多8個通道),操作流程如下:
當ADST(ADCR[11])位通過軟件或外部觸發(fā)輸入置1,A/D開始轉(zhuǎn)換編號最小的通道。
當每個使能的通道A/D轉(zhuǎn)換完成,每個使能通道的轉(zhuǎn)換結(jié)果存儲在每個使能通道對應(yīng)的A/D寄存
器中。
當A/D轉(zhuǎn)換器按順序完成所有使能通道的轉(zhuǎn)換,ADF(ADSR[0])將置1 。如果ADC中斷功能使
能,ADC中斷發(fā)生。如果軟件沒有清除ADST(ADCR[11])位,使能的通道將再一次從編號最小
的通道開始轉(zhuǎn)換。
如果ADST(ADCR[11])位保持為1,將重復(fù)執(zhí)行步驟2~3。當ADST(ADCR[11])清0后,ADC不能
完成當前轉(zhuǎn)換且A/D轉(zhuǎn)換器直接進入空閑狀態(tài)。
外部觸發(fā)輸入采樣和A/D轉(zhuǎn)換時間
NUC029xAN:
在單次掃描模式,可以通過外部引腳觸發(fā)A/D轉(zhuǎn)換。TRGEN(ADCR[8]) 位設(shè)置為0使能ADC外部觸發(fā)功能,設(shè)置TRGS(ADCR[5:4]) 為00b 選擇外部觸發(fā)輸入為STADC 引腳。軟件可以通過設(shè)置TRGCOND(ADCR[7:6]) 選擇觸發(fā)條件為下降/上升沿或低/高電平。如果選擇電平觸發(fā),STADC引腳必須保持指定狀態(tài)至少8個PCLK。在第9個PCLK,ADST(ADCR[11]) 位將被置1且開始轉(zhuǎn)換。在電平觸發(fā)模式下,如果外部觸發(fā)輸入保持有效狀態(tài),轉(zhuǎn)換將持續(xù)進行。只有在外部觸發(fā)條件消失,轉(zhuǎn)換才會停止。如果選擇邊沿觸發(fā)條件,高和低狀態(tài)都至少持續(xù)4個PLCK。如果脈沖滿足不了該條件,將被忽略。
注: 使能ADC外設(shè)時鐘后,用戶須在至少4個PCLK之后方能使能外部觸發(fā)功能或使能ADC。
PWM 觸發(fā)
NUC029xAN:
在單周期掃描模式,A/D可以通過PWM觸發(fā)轉(zhuǎn)換。設(shè)置TRGEN(ADCR[8])位為1使能ADC外部觸發(fā)功能,設(shè)置TRGS(ADCT[5:4]為11b選擇外部硬件觸發(fā)輸入源為PWM。當PWM觸發(fā)使能時,設(shè)置PTDT(ADTDCR[7:0])位可以在PWM觸發(fā)和ADC開始轉(zhuǎn)換之間插入一個延時時間。
通過比較模式功能監(jiān)控轉(zhuǎn)換結(jié)果
NuMicro®NUC029系列ADC控制器提供兩個比較寄存器(ADCMPR0 和 ADCMPR1)來監(jiān)控最多兩個通道。軟件可以通過設(shè)置 CMPCH(ADCMPRx[5:3]) 選 擇 監(jiān) 控 哪 個 通 道 。
CMPCOND(ADCMPRx[2]) 位指定比較條件。如果CMPCOND(ADCMPRx[2]) 位為0,當轉(zhuǎn)換結(jié)果小于CMPD[11:0](NUC029xAN)/ CMPD[9:0](NUC029xAN)的值時,內(nèi)部匹配計數(shù)器將加1;如果CMPCOND(ADCMPRx[2]) 位為 1 ,當轉(zhuǎn)換結(jié)果大于或等于 CMPD[11:0] ( NUC029xAN ) /CMPD[9:0](NUC029xAN)的值時,內(nèi)部匹配計數(shù)器將減1。當CMPCH(ADCMPRx[5:3])指定的通道轉(zhuǎn)換完成時,將自動觸發(fā)一次比較。當比較結(jié)果和設(shè)定值相匹配,比較匹配寄存器加1,否則比較匹配計數(shù)器將清0。當匹配計數(shù)器到達(CMPMATCNT+1) 設(shè)置的值時,CMPF 位將置1,如果CMPIE(ADCMPRx[1])位設(shè)置為1,將產(chǎn)生一個ADC_INT 中斷。在掃描模式,軟件可以通過該功能監(jiān)控外部輸入引腳電壓變化而不會增加軟件負載。詳細邏輯框圖如下:
中斷源
ADC 中斷有 3 個中斷源。當 ADC 完成轉(zhuǎn)換, A/D 轉(zhuǎn)換完成標志 ADF(ADSR[0]) 將被置 1 。
CMPF0(ADSR[1])和CMPF1(ADSR[2])為比較功能的比較標志位。當轉(zhuǎn)換結(jié)果與ADCMPR0/1設(shè)置的條件匹配時,相應(yīng)的位將置1。當ADF(ADSR[0]), CMPF0(ADSR[1]) 和 CMPF1(ADSR[2])標志有一個置1且相應(yīng)中斷使能位ADIE(ADCR[1])和CMPIE(ADCMPRx[1])置1,ADC中斷將產(chǎn)生。軟件可以清除這些標志位來取消中斷請求。
如需要了解更多新唐MCU產(chǎn)品,請聯(lián)系新唐核心代理商,穎特新科技,或者掃碼聯(lián)系我們!
在之前的介紹中,我們也為大家介紹了《新唐史上最速ADC,帶你進入傳說般的領(lǐng)域》
編輯:zzy 最后修改時間:2022-05-10