本章為大家?guī)?a href="http://m.hljzzgx.com/tags/模數(shù)轉(zhuǎn)換器/" target="_blank">模數(shù)轉(zhuǎn)換器(ADC)的使用教學(xué),按照慣例,我們先來說一下模數(shù)轉(zhuǎn)換器本身。
首先是功能,模數(shù)轉(zhuǎn)換器接收電壓信號并輸出一個數(shù)字信號,該數(shù)字信號是一個數(shù)字,這個數(shù)字指示了電壓信號的大小。通常來說,想要判斷大小就需要有對比,因此該數(shù)字指示的電壓大小實際上是一個比較的結(jié)果。ADC將需要測量的電壓信號Ut與已知電壓的信號U作比較,并最終輸出一個數(shù)字表示Ut相當(dāng)于多少比例的U。
接下來就可以看看CW32的ADC外設(shè)結(jié)構(gòu)框圖了,圖中按塊劃分了ADC外設(shè)的不同功能區(qū)。
ADC會將左側(cè)紅框中某一指定通道(由程序指定)所連接的電信號與下方紅框中選定的參考電壓(由程序選定)進行比較,完成紫色方框中的步驟后,最終輸出一個數(shù)字(暫記為value)并存放在右側(cè)紅框中的寄存器里面。Value的范圍取決于ADC的位數(shù),若ADC為12位,則value最大為2^12=4096,最小值為0,value指示了相比于參考電壓U,輸入電壓Ut的值,計算方法如下:可以認為ADC將參考電壓分成了4096份,最終輸出的結(jié)果反映了輸入電壓夠得上其中多少份,例如參考電壓選擇2.5V,最終轉(zhuǎn)換的結(jié)果數(shù)據(jù)為2048,那么就認定輸入通道的實際電壓值是2.5/4096*2048=1.25V,其他情況以此類推。由于參考電壓的存在,ADC無法直接測量比參考電壓值高的信號,輸入通道連接的電壓不能高于參考電壓。
現(xiàn)在來簡單說說紫色方框內(nèi)的部分,這一部分是ADC的核心部分,根據(jù)ADC轉(zhuǎn)換原理的不同,這一部分的電路結(jié)構(gòu)也不一樣,CW32的ADC是逐次逼近型ADC,它會先把通道中的電壓信號采樣并被內(nèi)部的采樣保持放大器輸出且保持穩(wěn)定(這一步叫采樣保持),隨后ADC用逐次逼近的方法得到一個12位的數(shù)字(這一步叫量化編碼),需要重點關(guān)心的是采樣保持階段的持續(xù)時間,這個時間越久,最終用于量化編碼階段的采樣電壓值就越精確,我們就能得到更精確的轉(zhuǎn)換結(jié)果。
從上述步驟來看,使用ADC需要進行如下操作:
1.必要的IO初始化和外設(shè)時鐘初始化;
2.正確設(shè)置ADC的采樣通道和參考電壓;
3.選擇合適的ADC采樣時間;
4.啟動ADC并等待轉(zhuǎn)換完成;
5.讀取轉(zhuǎn)換結(jié)果寄存器得到電壓值;
首先需要說明的是IO初始化的問題。對于使用ADC功能的IO,它本質(zhì)上并不是“將這個IO復(fù)用為ADC功能”,而是把這個IO設(shè)置為模擬輸入,也就是不將IO上的電信號量化成數(shù)字信號,這一點在GPIO電路結(jié)構(gòu)圖里面可以看到。
這個模擬功能從結(jié)果上來看就是ADC復(fù)用,不過還是請大家理解其本質(zhì)。
下一個要說的是采樣通道。ADC一般都會有多個采樣通道,開發(fā)者從中挑選一些通道接入電路來使用。ADC外設(shè)同一時間只能對某一個通道上的電壓進行轉(zhuǎn)換,所以如果需要采樣四個通道的電壓,只能順序轉(zhuǎn)換,這個轉(zhuǎn)換順序是可以手動設(shè)置的。ADC擁有4個可填入的配置項,暫且稱為序列0~3,ADC會根據(jù)另外一個配置項(ADC_SQR寄存器的ENS位段)來判斷該轉(zhuǎn)換這4個序列中的哪些,序列里面需要填寫的內(nèi)容就是AD采樣的通道號,配置完成之后ADC就會按照這4個序列內(nèi)填的通道號按順序進行AD轉(zhuǎn)換。更具體的配置方法直接參考ADC_SQR寄存器描述即可
圖中有一些前文沒說到的配置項,因為這些配置項是一些ADC附帶的特殊功能。具體的功能在手冊ADC章節(jié)的寄存器描述中有詳細說明,代碼中的注釋也已經(jīng)詳細標注。
該配置中,ADC被配置為單通道單次轉(zhuǎn)換模式,也就是說ADC一次轉(zhuǎn)換只能轉(zhuǎn)換一個ADC通道,并且轉(zhuǎn)換完成之后就會停下來等待CPU發(fā)出下一次轉(zhuǎn)換開始的指令(相對的,還有連續(xù)模式和掃描模式)。
配置完成后,再編寫一個啟動ADC的函數(shù)就行了,該函數(shù)需要包含啟動、等待轉(zhuǎn)換完成、返回數(shù)據(jù)的功能,如圖所示:
上圖的具體步驟對應(yīng)了手冊中描述的步驟,詳細說明見用戶手冊22.5.1章節(jié)。
ADC一般用法的介紹到此就結(jié)束了,但ADC還有很多其他功能,比如連續(xù)模式、掃描模式、硬件觸發(fā)采集和DMA訪問,這些模式可以幫助我們更好地使用ADC功能,后續(xù)的章節(jié)會介紹一種不消耗CPU資源的ADC采集方法,真正實現(xiàn)全自動采集。
審核編輯 黃宇
-
adc
+關(guān)注
關(guān)注
98文章
6495瀏覽量
544460 -
模數(shù)轉(zhuǎn)換器
+關(guān)注
關(guān)注
26文章
3200瀏覽量
126810 -
CW32
+關(guān)注
關(guān)注
1文章
203瀏覽量
626
發(fā)布評論請先 登錄
相關(guān)推薦
評論