STM32-ADC模數(shù)轉(zhuǎn)換概述
ADC簡(jiǎn)介
?ADC的概念
Analog-to-Digital Converter的縮寫(xiě)。指模/數(shù)轉(zhuǎn)換器或者模擬/數(shù)字轉(zhuǎn)換器。是指將連續(xù)變量的模擬信號(hào)轉(zhuǎn)換為離散的數(shù)字信號(hào)的器件。
?ADC的作用
采集傳感器的數(shù)據(jù),測(cè)量輸入電壓,檢查電池電量剩余,監(jiān)測(cè)溫濕度等。
典型的模擬數(shù)字轉(zhuǎn)換器將模擬信號(hào)轉(zhuǎn)換為表示一定比例電壓值的數(shù)字信號(hào)。
ADC的性能指標(biāo)
?量程:能測(cè)量的電壓范圍
?分辨率:ADC的分辨率通常以輸出二進(jìn)制數(shù)的位數(shù)表示,位數(shù)越多,分辨率越高,一般來(lái)說(shuō)分辨率越高,轉(zhuǎn)化時(shí)間越長(zhǎng)。
?轉(zhuǎn)化時(shí)間:模擬輸入電壓在允許的最大變化范圍內(nèi),從轉(zhuǎn)換開(kāi)始到獲得穩(wěn)定的數(shù)字量輸出所需要的時(shí)間稱(chēng)為轉(zhuǎn)換時(shí)間
STM32F4-ADC特性
?STM32F4-ADC配置
?STM32F40X有3個(gè)ADC,每個(gè)可配置 12 位、10 位、8 位或 6 位分辨率
?每個(gè)ADC 有16個(gè)外部通道。另外還有兩個(gè)內(nèi)部 ADC 源 和 V BAT 通道掛在 ADC1上
?這些通道的 A/D 轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。
?ADC具有獨(dú)立模式、雙重模式和三重模式,對(duì)于不同 AD轉(zhuǎn)換要求幾乎都有合適的模式可選
?ADC 的結(jié)果可以左對(duì)齊或右對(duì)齊方式存儲(chǔ)在 16 位數(shù)據(jù)寄存器中。
ADC的功能框圖
1、電壓輸入范圍
?ADC 輸入范圍為:V REF-≤ V IN ≤ V REF+ 。由 V REF- 、VREF+ 、V DDA 、V SSA 、這四個(gè)外部引腳決定。
?我們?cè)谠O(shè)計(jì)原理圖的時(shí)候一般把 V SSA 和 V REF- 接地,把 VREF+ 和 V DDA 接 3.3V,得到ADC 的輸入電壓范圍為:0~3.3V
?如果我們想讓輸入的電壓范圍變寬,去到可以測(cè)試負(fù)電壓或者更高的正電壓,我們可以在外部加一個(gè)電壓調(diào)理電路,把需要轉(zhuǎn)換的電壓抬升或者降壓到 0~3.3V,這樣 ADC 就可以測(cè)量了
2、輸入通道
?每個(gè)ADC 有16個(gè)外部通道。另外還有兩個(gè)內(nèi)部 ADC 源和 V BAT 通道掛在 ADC1上
3、轉(zhuǎn)換順序
?規(guī)則通道組:
顧名思意,規(guī)則通道就是很規(guī)矩的意思,我們平時(shí)一般使用的就是這個(gè)通道。相當(dāng)正常運(yùn)行的程序。最多16個(gè)通道。規(guī)則通道和它的轉(zhuǎn)換順序在ADC_SQRx寄存器中選擇,規(guī)則組轉(zhuǎn)換的總數(shù)應(yīng)寫(xiě)入ADC_SQR1寄存器的L[3:0]中
?注入通道組:
注入,可以理解為插入,插隊(duì)的意思,是一種不安分的通道。相當(dāng)于中斷。最多4個(gè)通道。
注入組和它的轉(zhuǎn)換順序在ADC_JSQR寄存器中選擇。注入組里轉(zhuǎn)化的總數(shù)應(yīng)寫(xiě)入ADC_JSQR寄存器的L[1:0]中
4、轉(zhuǎn)換時(shí)間
?ADC時(shí)鐘
ADC 輸入時(shí)鐘ADC_CLK由 PCLK2經(jīng)過(guò)分頻產(chǎn)生,最大值是36MHz,典型值為30MHz。對(duì)于 STM32F407我們一般設(shè)置PCLK2=HCLK/2=84MHz。所以程序一般使用4分頻或者 6分頻。
5、數(shù)據(jù)寄存器\
?規(guī)則數(shù)據(jù)寄存器 ADC_DR
????????ADC_DR只有一個(gè),是一個(gè) 32 位的寄存器,只有低16 位有效并且只是用于獨(dú)立模式存放轉(zhuǎn)換完成數(shù)據(jù)。因?yàn)?ADC 的最大精度是 12 位,ADC_DR 是16 位有效,這樣允許 ADC存放數(shù)據(jù)時(shí)候選擇左對(duì)齊或者右對(duì)齊,具體是以哪一種方式存放,由ADC_CR2的 11 位 ALIGN 設(shè)置。
?使用 DMA
由于規(guī)則通道組只有一個(gè)數(shù)據(jù)寄存器,因此,對(duì)于多個(gè)規(guī)則通道的轉(zhuǎn)換,使用DMA非常有幫助。這樣可以避免丟失在下一次寫(xiě)入之前還未被讀出的 ADC_DR 寄存器中的數(shù)據(jù)。
在使能 DMA 模式的情況下(ADC_CR2 寄存器中的 DMA 位置 1),每完成規(guī)則通道組中的一個(gè)通道轉(zhuǎn)換后,都會(huì)生成一個(gè) DMA請(qǐng)求。
6、中斷
?轉(zhuǎn)換結(jié)束
中斷規(guī)則通道和注入通道的數(shù)據(jù)轉(zhuǎn)換結(jié)束后,都可以產(chǎn)生中斷
?模擬看門(mén)狗
中斷當(dāng)被ADC 轉(zhuǎn)換的模擬電壓低于低閾值或者高于高閾值時(shí),就會(huì)產(chǎn)生中斷
?溢出中斷
如果發(fā)生DMA傳輸數(shù)據(jù)丟失,會(huì)置位 ADC狀態(tài)寄存器 ADC_SR的OVR位,如果同時(shí)使能了溢出中斷,那在轉(zhuǎn)換結(jié)束后會(huì)產(chǎn)生一個(gè)溢出中斷。
?DMA請(qǐng)求
規(guī)則和注入通道轉(zhuǎn)換結(jié)束后,除了產(chǎn)生中斷外,還可以產(chǎn)生DMA請(qǐng)求,把轉(zhuǎn)換好的數(shù)據(jù)直接存儲(chǔ)在內(nèi)存里面。
7、觸發(fā)源
?軟件觸發(fā)
ADC轉(zhuǎn)換可以由ADC控制寄存器 2:ADC_CR2的ADON這個(gè)位來(lái)控制,寫(xiě) 1的時(shí)候開(kāi)始轉(zhuǎn)換,寫(xiě) 0的時(shí)候停止轉(zhuǎn)換
?外部事件觸發(fā)
觸發(fā)包括內(nèi)部定時(shí)器觸發(fā)和外部 IO觸發(fā)。觸發(fā)源有很多,具體選擇哪一種觸發(fā)源,由 ADC控制寄存器ADC_CR2的 EXTSEL[2:0]和JEXTSEL[2:0]位來(lái)控制
*ADC的工作模式
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-807705.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-807705.html
到了這里,關(guān)于STM32-ADC模數(shù)轉(zhuǎn)換的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!