眾所周知,模數(shù)轉(zhuǎn)換,即Analog-to-Digital Converter,常稱(chēng)ADC,是指將連續(xù)變量的模擬信號(hào)轉(zhuǎn)換為離散的數(shù)字信號(hào)的器件。主要用于對(duì)模擬信號(hào)進(jìn)行數(shù)字采集,以進(jìn)行數(shù)據(jù)處理。通常情況下,在轉(zhuǎn)換完成時(shí)讀取轉(zhuǎn)換結(jié)果。而ADC中的窗口比較功能,會(huì)檢測(cè)ADC結(jié)果是否低于或高于特定閾值,當(dāng)轉(zhuǎn)換結(jié)果在某一個(gè)范圍時(shí)可以觸發(fā)中斷,幾乎無(wú)需軟件干預(yù)。該配置非常實(shí)用,它可以監(jiān)視信號(hào)是否按照要求保持在特定范圍內(nèi),或者在電池電量不足/過(guò)充時(shí)發(fā)出信號(hào)。
(資料圖片)
本文以RA4M2為例介紹如何設(shè)置ADC窗口比較功能。
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)不同以及對(duì)窗口B只能選擇一個(gè)通道的限制。
這里以窗口A為例進(jìn)行介紹。窗口A有以下4種比較模式。
? 結(jié)果低于閾值
? 結(jié)果高于閾值
? 結(jié)果在窗口內(nèi)
? 結(jié)果在窗口外
窗口A比較功能相關(guān)的寄存器有ADCMPCR、ADCMPLR0/1和ADCMPDR0/1寄存器,詳情請(qǐng)參考RA硬件手冊(cè)。
ADC數(shù)據(jù)與可設(shè)置的高低閾值進(jìn)行比較,并可為AD數(shù)據(jù)在設(shè)定的門(mén)限值內(nèi)、外、高或低自動(dòng)生成比較中斷。需要設(shè)置三個(gè)選項(xiàng)位置,接下來(lái)我們將逐個(gè)介紹各種情況下屬性設(shè)置和用戶(hù)代碼。
1A/D轉(zhuǎn)換結(jié)果高于門(mén)限值時(shí)產(chǎn)生窗口比較A中斷(ADC120_CMPAI)
若想實(shí)現(xiàn)上面的比較功能,請(qǐng)按照下圖中所示,在FSP中設(shè)置ADC屬性。
(1)Input → Window Compare → Window A
Enable:選擇Enabled
Lower Reference:請(qǐng)?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中斷。
2A/D轉(zhuǎn)換結(jié)果低于門(mén)限值時(shí)產(chǎn)生窗口比較A中斷(ADC120_CMPAI)
若想實(shí)現(xiàn)上圖的比較功能,請(qǐng)按照下圖中所示,在FSP中設(shè)置ADC屬性。
(1)Input → Window Compare → Window A
Enable:選擇Enabled
Lower Reference:請(qǐng)?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中斷。
3A/D轉(zhuǎn)換結(jié)果在門(mén)限值內(nèi)
若想實(shí)現(xiàn)上圖的比較功能,請(qǐng)按照下圖中所示,在FSP中設(shè)置ADC屬性。
(1)Input → Window Compare → Window A
Enable:選擇Enabled
Lower Reference、Upper Reference:請(qǐng)?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中斷。
4
A/D轉(zhuǎn)換結(jié)果在門(mén)限值外
若想實(shí)現(xiàn)上圖的比較功能,請(qǐng)按照下圖中所示,在FSP中設(shè)置ADC屬性。
(1)Input → Window Compare → Window A
Enable:選擇Enabled
Lower Reference、Upper Reference:請(qǐng)?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中斷。
另外,使用窗口比較功能時(shí)請(qǐng)注意以下限制:
比較功能不能與自診斷功能或雙觸發(fā)模式一起使用。(比較功能不適用于ADRD、ADDBLDR、ADDBLDRA和ADDBLDRB。)
使用匹配/不匹配事件輸出時(shí)請(qǐng)使用單次掃描模式。
當(dāng)溫度傳感器輸出時(shí),窗口A選擇內(nèi)部參考電壓,窗口B操作被禁用。
當(dāng)溫度傳感器輸出時(shí),窗口B選擇內(nèi)部參考電壓,窗口A操作被禁用。
禁止為窗口A和窗口B設(shè)置相同的通道。
設(shè)置參考電壓值時(shí),請(qǐng)將高電位參考電壓值設(shè)置為大于或等于低電位參考電壓值。
審核編輯:湯梓紅標(biāo)簽: