眾所周知,模數(shù)轉(zhuǎn)換,即Analog-to-Digital Converter,常稱ADC,是指將連續(xù)變量的模擬信號(hào)轉(zhuǎn)換為離散的數(shù)字信號(hào)的器件。主要用于對模擬信號(hào)進(jìn)行數(shù)字采集,以進(jìn)行數(shù)據(jù)處理。通常情況下,在轉(zhuǎn)換完成時(shí)讀取轉(zhuǎn)換結(jié)果。而ADC中的窗口比較功能,會(huì)檢測ADC結(jié)果是否低于或高于特定閾值,當(dāng)轉(zhuǎn)換結(jié)果在某一個(gè)范圍時(shí)可以觸發(fā)中斷,幾乎無需軟件干預(yù)。該配置非常實(shí)用,它可以監(jiān)視信號(hào)是否按照要求保持在特定范圍內(nèi),或者在電池電量不足/過充時(shí)發(fā)出信號(hào)。
RA MCU中一般都會(huì)包括12位逐次逼近型A/D轉(zhuǎn)換器(ADC12)單元,最多可選擇13路模擬量輸入通道、溫度傳感器輸出、內(nèi)部參考電壓進(jìn)行轉(zhuǎn)換。
同時(shí),ADC12還提供比較功能(窗口A和窗口B)。比較功能分別指定窗口A和窗口B的參考值上限和的參考值下限,當(dāng)所選通道的A/D轉(zhuǎn)換值滿足比較條件時(shí)輸出中斷。窗口A和窗口B的主要區(qū)別在于它們的中斷輸出信號(hào)不同以及對窗口B只能選擇一個(gè)通道的限制。
窗口A比較功能相關(guān)的寄存器有ADCMPCR、ADCMPLR0/1和ADCMPDR0/1寄存器,詳情請參考RA硬件手冊。
ADC數(shù)據(jù)與可設(shè)置的高低閾值進(jìn)行比較,并可為AD數(shù)據(jù)在設(shè)定的門限值內(nèi)、外、高或低自動(dòng)生成比較中斷。需要設(shè)置三個(gè)選項(xiàng)位置,接下來我們將逐個(gè)介紹各種情況下屬性設(shè)置和用戶代碼。
A/D轉(zhuǎn)換結(jié)果高于門限值時(shí)產(chǎn)生窗口比較A中斷(ADC120_CMPAI)
若想實(shí)現(xiàn)上面的比較功能,請按照下圖中所示,在FSP中設(shè)置ADC屬性。
(1)Input → Window Compare → Window A
Enable:選擇Enabled
Lower Reference:請?jiān)谶@里設(shè)定閾值
(2) Input → Window Compare
Window Mode:選擇Disabled
當(dāng)AD轉(zhuǎn)換結(jié)果 > ADCMPDR0(Lower Reference 設(shè)定值時(shí))時(shí),產(chǎn)生Compare中斷。
A/D轉(zhuǎn)換結(jié)果低于門限值時(shí)產(chǎn)生窗口比較A中斷(ADC120_CMPAI)
若想實(shí)現(xiàn)上圖的比較功能,請按照下圖中所示,在FSP中設(shè)置ADC屬性。
(1)Input → Window Compare → Window A
Enable:選擇Enabled
Lower Reference:請?jiān)谶@里設(shè)定閾值
(2) Input → Window Compare
Window Mode:選擇Disabled
(3)代碼中將CMPLCHA0位置為“0”
R_ADC0->ADCMPLR_b->CMPLCHA0 = 0;
當(dāng)AD轉(zhuǎn)換結(jié)果 < ADCMPDR0(Lower Reference 設(shè)定值時(shí)),產(chǎn)生Compare中斷。
A/D轉(zhuǎn)換結(jié)果在門限值內(nèi)
若想實(shí)現(xiàn)上圖的比較功能,請按照下圖中所示,在FSP中設(shè)置ADC屬性。
(1)Input → Window Compare → Window A
Enable:選擇Enabled
Lower Reference、Upper Reference:請?jiān)谶@里設(shè)定閾值
(2) Input → Window Compare
Window Mode:選擇Enabled
當(dāng)ADCMPDR0(Lower Reference設(shè)定值時(shí))< AD轉(zhuǎn)換結(jié)果< ADCMPDR1(Upper Reference設(shè)定值時(shí))時(shí),產(chǎn)生Compare中斷。
A/D轉(zhuǎn)換結(jié)果在門限值外
若想實(shí)現(xiàn)上圖的比較功能,請按照下圖中所示,在FSP中設(shè)置ADC屬性。
(1)Input → Window Compare → Window A
Enable:選擇Enabled
Lower Reference、Upper Reference:請?jiān)谶@里設(shè)定閾值
(2) Input → Window Compare
Window Mode:選擇Enabled
(3)代碼中將CMPLCHA0位置為“0”
R_ADC0->ADCMPLR_b->CMPLCHA0 = 0;
當(dāng)AD轉(zhuǎn)換結(jié)果<ADCMPDR0(Lower Reference 設(shè)定值時(shí))或者>ADCMPDR1(Upper Reference設(shè)定值時(shí))時(shí),產(chǎn)生Compare中斷。
-
mcu
+關(guān)注
關(guān)注
146文章
17148瀏覽量
351182 -
adc
+關(guān)注
關(guān)注
98文章
6498瀏覽量
544629 -
模擬信號(hào)
+關(guān)注
關(guān)注
8文章
1130瀏覽量
52458 -
數(shù)字信號(hào)
+關(guān)注
關(guān)注
2文章
970瀏覽量
47549
發(fā)布評論請先 登錄
相關(guān)推薦
評論