STM32F103之ADC學習記錄


1、問題

1)10位ADC的誤差是多少?

首先要分清分辨率與精度的區別。

10cm的尺子,有100個等分刻度,則該尺子的分辨率為1mm。

但不能說這把尺子的精度是1mm。

在冬天,尺子會熱脹冷縮,依然有100格刻度,每格刻度代表1mm,但每格刻度與真實的1mm是不同的,精度在變化。

實際上,10位的ADC將會把基准電壓分成1024份,分辨率為:基准電壓/1024。

 

2)ADC的采樣頻率是多少?

芯片開發手冊上轉換時間公式為:

例子中,采樣頻率為1MHz。

 

3)STM32F103這款芯片有多少個ADC采集通道?

 

芯片內有3個ADC控制器:ADC1、ADC2、ADC3,每個ADC控制器有16個通道,另外還有兩個內部通道,一個測量內部溫度,一個測量參考電壓。

 一個ADC控制器每個時刻只能測一個通道,測完可以切換到另一個通道。

4)ADC以什么為參考電壓?

上述表格說明了參考正電壓與參考負電壓。

 

 

5)ADC測量電壓的范圍是多少?

ADC模塊中有一個模擬看門狗,通過程序可以設置上下閾值。

 

(6)規則通道與注入通道

 

 注入通道類似中斷。

 

 

 

 

 

//===============閱讀開發手冊筆記====================//

11 模擬到數字轉換器(ADC)

11.1 ADC介紹

12位ADC是逐次逼近的模數轉換器。

芯片有18路測量通道。

其中16路可以單獨測量信號,2路測量內部信號。

模數轉換器可以應用在單一、連續、掃描以及不連續模式下。

ADC測量轉換的結果存放在一個左對齊或右對齊的16位寄存器里。

當輸入電壓在用戶定義的閾值外,模擬看門狗能夠允許程序檢測到。

ADC的輸入時鍾是由PCLK2時鍾除以一個預分頻系數得到的,

頻率不能超過14MHz。

 

11.2 ADC主要特征

12位的精度。

在轉換結束時,輸入轉換結束時,模擬看門狗事件時都會觸發中斷。

離散或連續模式。

掃描模式自動轉換通道0到通道n。

自校准。

數據對齊與內部數據一致性。

通道到通道編程采樣時間。

常規轉換還是注入轉換,都是外部觸發選項。

不連續模式。

雙重模式。

ADC的轉換時間。

ADC供電范圍:2.4 - 3.6V。

ADC電壓輸入范圍:VREF-  ≤ VIN ≤ VREF+ 。
在常規通道轉換時,DMA請求產生。

注意:如果允許的話,VREF-要與VSSA綁定。

 

11.3 ADC功能描述

ADC模塊圖

 

 

 

 

 

 

 

 

 

 

 

 

 注意:ADC3與ADC1和ADC2不同的觸發條件。

11.3.1 ADC開關控制

可以通過在ADC_CR2寄存器中設置ADON位來啟動ADC。

當ADON位第一次被置1的時候,它從電源關閉模式喚醒ADC。

在ADC上升時間后,ADON位被軟件再一次置位后,轉換開始。

轉換可以被停止,並且清除ADON位后,ADC會進入關機模式。

 

11.3.2 ADC時鍾

時鍾控制器提供的ADCCLK時鍾與PCLK2(APB2時鍾)是同步的。

RCC控制器有一個專門用於ADC時鍾的可編程預調器。

 

11.3.3 通道選擇

有16個多路復用通道。

可以將轉換組織在兩個組中:常規和注入。

組由一系列轉換組成,任何通道任何順序都可以轉換。

例如:可以用如下順序進行轉換:Ch3, Ch8, Ch2, Ch2, Ch0, Ch2, Ch2, Ch15。

常規組由最多16個轉換組成。

常規通道和他們在轉換次序的順序必須在ADC_SQRx寄存器中設置。

常規組轉換的總數必須在ADC_SQR1寄存器里設置L[3:0]位。

注入組由最多四個轉換組成。

注入通道和它們在轉換中的次序必須在ADC_JSQR寄存器中選擇。

在注入組中轉換的總數必須在ADC_JSQR寄存器的L[1:0]位寫。

如果在轉換的過程中修改了ADC_SQRx或者ADC_JSAQR寄存器,

當前的轉換會被重置,一個新的開始脈沖被發送給ADC,去轉換新選擇的組。

溫度傳感器內部通道

溫度傳感器與ADCx_IN16通道相連,並且內部參考電壓VREFINT與ADCx_IN17相連。

可以選擇這兩個內部通道,將其轉換為注入通道或常規通道。

傳感器和VREFINT只能在主ADC1外設上使用。

 

11.3.4 單次轉換模式

在單次轉換模式下,ADC進行一次轉換。

啟動這種模式的條件:當CONT位是0,設置ADC_CR2寄存器的ADON位或者通過外部的觸發。

一旦選定通道的轉換完成:

如果是常規通道轉換:

轉換的數據就存儲在16位的ADC_DR寄存器里。

結束轉換標志位(EOC)會被設置。

如果EOCIE被設置了,會產生一個中斷。

如果是注入通道轉換:

轉換的數據會被存儲在16位的ADC_DRJ1寄存器內。

內部轉換完成(JEOC)標志會被設置。

如果JEOCIE標志設置了,會產生一個中斷。

然后ADC就會停止。

 

11.3.5 連續轉換模式

在連續轉換的模式下,ADC在一次轉換完成后立即進行下一次轉換。

這種模式可以由外部觸發器啟動,也可以通過設置ADC_CR2寄存器的ADON位來啟動,這些都是在CONT位為1的情況下。

在每一次轉換后:

如果是常規通道轉換:

轉換的數據會被存儲在16位的ADC_DR寄存器里。

轉換結束(EOC)標志會被設置。

如果EOCIE被設置,會產生一個中斷。

如果是注入通道轉換:

轉換數據會被存儲在16位的ADC_DRJ1寄存器里。

注入轉換結束(JEOC)標志會被設置。

如果JEOCIE位被設置,會產生一個中斷。

 

11.3.6 時序圖

在ADC進行精確轉換之前需要一段穩定的時間(tSTAB)。

ADC開始轉換后經歷14個時鍾周期,EOC標志位會被置位,

16位的ADC數據寄存器就包含了轉換的結果。

 

 

 

 

11.3.7 模擬看門狗

如果模擬轉換電壓高於最高閾值或低於最低閾值,AWD模擬看門狗狀態位會被設置。

這些閾值是可以通過編程改變的,在ADC_HTR和ADC_LTR寄存器里。

在ADC_CR1寄存器里通過使用AWDIE位可以使能中斷。

閾值與ADC_CR2寄存器里的ALIGN位無關。

對比是在對齊之前完成的。

設置ADC_CR1寄存器可以使能一個或多個的看門狗通道。

 

 

 

 

 

 

 

 

 

 

11.3.8 掃描模式

該模式用於掃描一組模擬通道。

掃描模式可以通過設置ADC_CR1寄存器中的SCAN位來啟動。

一旦這位被設置了,

11.3.9 注入通道管理

11.3.10 不連續模式

 

 

 

 

 

 

 

 

 

11.4 校准

11.5 數據轉換

11.6 采樣時間

11.7 以外觸發的方式轉換

11.8 DMA請求

11.9 雙ADC模式

11.10 溫度傳感器

11.11 ADC中斷

11.12 ADC寄存器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM