STM32學習之路 X 八步掌握ADC

STM32外設之ADC

ADC是我們可開發工程中必須掌握的外設。

ADC簡介(具體看stm32中文參照手冊)

STM32f103 系列有 3 個 ADC,精度爲 12 位,每個 ADC 最多有 16 個外部通道。其中ADC1 和 ADC2 都有 16 個外部通道, ADC3 根據 CPU 引腳的不同通道數也不同,一般都有8 個外部通道。

*今天我們例八步驅動ADC,掌握如何看參考資料和庫函數指導
根據功能框圖分成八步!!*重點內容*
這裏寫圖片描述
(引用自野火零角度玩轉STM32)

1. 第一步:電壓輸入

這裏寫圖片描述
我們這裏的VDD=3.3V,Vref- 、’Vref+其實就是接着我們的轉換通道

2. 第二步:輸入通道選擇

● 規則組:就是我們平時用的通道,老老實實的。選用應寫入ADC_CR1的DISCEN位。
● 注入組:就是可以插隊轉換。由應寫入ADC_CR1的JDISCEN。
這裏寫圖片描述

3. *第三步:確定轉換順序

這裏寫圖片描述
規則組轉換順序是通過SQR1、2、3控制決定的
SQR3控制第1-6次轉換;
SQR2控制7-12次轉化;
SRQ1控制第13-18次轉換;
(我也不知道爲什麼會反過來的)
那麼我們有十六個通道要轉換,(通道1、2、3。。。16)
如果通道8想最轉換,就配置SQR3的SQ1【4:0】爲8
同理通道2想第8個轉換 ,就配置SQR2的SQ8【4:0】爲2
(自己可以對着寄存器帶代入)
這裏寫圖片描述
注入組轉換順序由JSQR決定,如果 JL 的 值小於 4 的話,則 JSQR 跟 SQR 決定轉換順序的設置,當JL=4的時候跟SQR一樣
例如:
有一個轉換通道的時候,第一個轉換應該是配置JSQR4-1即是JSQR3,
有四個的時候就配置JSQR1.

4. 第四步:觸發源配置

ADC有三個打開方式:
1直接控制ADC_CR2的ADON、STRT、JSTRT
2外部io觸發
3定時器觸發
具體根據需求進行選擇
這裏寫圖片描述

5. 第五步:轉換時間

時鐘配置
根據時鐘樹可知道,ADC_CLK有PCLK2分頻得到,最大爲14M這裏寫圖片描述
通過配置ADCPRC這是2/4/6/8分頻。(我們的PCLK2一般爲72M)
採樣時間配置:
採樣的週期數可通過 ADC採樣時間寄存器 ADC_SMPR1 和 ADC_SMPR2 中的 SMP[2:0]位設置, ADC_SMPR2 控制的是通道 0~9, ADC_SMPR1 控制的是通道 10~17。
這裏寫圖片描述
公式爲: Tconv = 採樣時間 +12.5 個週期。
假如配置爲100 則Tconv=12.5+41.5=54個週期(12M下大約4.5us)
!!轉換時間越短,誤差越大。

7. 第七步:數據寄存器

規則組:ADC_DR。
這裏寫圖片描述
由手冊我們知道這話四32位的寄存器,而我們的轉換精度是12位,所以單模式下只用低16位置,一般要右對齊。
注入組:ADC_JDRX(有四個,自行查詢手冊)
8. 第七步:中斷
轉換結束後有三種中斷:規則通道結束中斷,注入通道結束中斷,模擬看門狗中斷。前兩個中斷跟平常的中斷很相似,我們講一下模擬看門狗中斷。模擬看門狗就是設定一個高低閾值,由ADC_LCR和ADC_HTR決定,超過閾值同樣發生中斷。
9.第八步:電壓轉換
前面也提到過ADC精度爲12位數字。我們把它轉換成模擬電壓。
輸入電壓是3.3v,假設轉換後數值x,模擬電壓:y
公式

x212=y3.3

我們通過寄存器瞭解整個ADC的轉換過程,看起來很複雜,其實我們用到庫函數的時候就很簡答了。在這個學習過程中,我們要學會查看寄存器,查看庫函數幫助手冊。下次將更新庫函數配置ADC!!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章