1、ADC 簡介
STM32H5xx 系列有 2 個 ADC,都可以獨立工作,其中 ADC1 和 ADC2 還可以組成雙模式(提高采樣率)。每個 ADC
最多可以有 20 個復用通道。這些 ADC 外設與 AHB 總線相連。
STM32H5xx 的 ADC 模塊主要有如下幾個特性:
1、可配置 12 位、10 位、8 位、6 位分辨率,ADC 的轉換時間與 AHB 總線時鐘頻率無關,分辨率越低轉換時間越短。
2、每路 ADC 支持多達 20 個采集通道,其中 18 個外部通道,2 個內部通道。18 路外部通道中有 6 路快速通道和 12
路慢速通道。
3、ADC 的結果可左對齊/右對齊的方式存儲在 16 位數據寄存器中
4、ADC 具有四條專用的內部通道,一路用于內部溫度傳感器、一路用于內部參考電壓,一路用于監控外部 VBAT 的電
源引腳、一道用于監控內部 VDDCORE 電源。
5、支持過采樣,過采樣比 2~256x 可調,每個 ADC 支持三路模擬看門狗
6、支持單獨輸入和差分輸入(可按通道進行編程),ADC 輸入電壓范圍 VREF-≤VIN≤VREF+。一般把 VSSA 和 VREF-接地,把
V<sub>REF+</sub>和 V<sub>DDA</sub> 接到 3.3V,所以一般得到 ADC 輸入電壓范圍是:0~3.3V。
7、最多 4 條注入轉換序列,16 條常規轉換序列。
2、ADC 功能描述
ADC 功能框圖如下:
2.1、VREF+參考電壓
2.2、ADC Clocks
ADC 模塊的時鐘如上圖 2 的雙時鐘域結構,ADC 輸入時鐘可以在兩個不同的時鐘源之間選擇。ADC
時鐘獨立于 AHB 總線時鐘。
1、adc_ker_ck_input 是一個特定的時鐘源與 AHB 時鐘獨立且異步。若要選擇此時鐘必須將 ADC_CCR
寄存器的 CKMODE[1:0] 位設置為 00。
2、adc_hclk 時鐘經過 AHB 時鐘分頻得到,可配置分頻因子 1/2/4。若選擇此時鐘,ADC_CCR 寄存器
的 CKMODE[1:0] 位不能為 00。
選擇 adc_ker_ck_input 的優點是無論選擇何種 AHB 時鐘方案,都可以實現最大 ADC 時鐘頻率。ADC
時鐘最終可按如下比例劃分: 1/2/4/6/8/12/16/32/64/128/256。根據 ADC_CCR 寄存器中的 PRESC[3:0]
位配置分頻。
選擇 adc_hclk 時鐘的優點是可繞過時鐘域的重新同步。
2.3、輸入通道
每路 ADC 總共有 20 個輸入通道,STM32H5 的 ADC 支持單端和差分轉換,由寄存器 ADC_DIFSEL
控制,該寄存器默認是 0(單端模式),配置為 1(則為差分模式)。因 STM32H5 支持差分輸入,所以
有 ADC_INP[19:0] 和 ADC_INN[19:0] 兩組通道。其中 INP 是差分正向輸入,INN 是差分反向輸入。
ADC_INP[0:5] 和 ADC_INN[0:5] 是快速模擬輸入,ADC_INP[6:19] 和 ADC_INN[6:19] 是慢速模擬輸入。
若使用單端輸入,則只有 ADC_INP[19:0] 這二十個輸入通道有效,ADC_INN[19:0] 內部自動接 VSSA。
ADC 連接的 4 路內部模擬輸入,如下表所示:
VSENSE:內部溫度傳感器通道
VREFINT:內部參考電壓通道
VBAT/4:外部 VBAT 電源通道
VDDCORE:監控內部 VDDCORE 電源
2.4、轉換序列
ADC 可將轉換分兩組:常規轉換組和注入轉換組。對于常規轉換組最多允許 16 個通道進行轉換。注入轉換最多
允許 4 個通道進行轉換。注入轉換可打斷常規轉換組的轉換,獲得優先轉換的權力。如下示意圖:
對于常規轉換組的轉換順序由寄存器 ADCx_SQRy(y = 1~4) 中設置,以 ADC_SQR1 寄存器為例介紹如下圖:
L[3:0]:設置常規轉換組要轉換的通道數。
SQR1[4:0]:設置第一個轉換的通道(0~19)
SQR2[4:0]:設置第二個轉換的通道(0~19)
SQR3[4:0]:設置第三個轉換的通道(0~19)
SQR4[4:0]:設置第四個轉換的通道(0~19)
按照 ADC_SQR1 寄存器一樣設置 ADC_SQR2、ADC_SQR3、ADC_SQR4;
對于注入轉換組的轉換順序由 JSQR 寄存器配置。如下圖:
JL[1:0]:設置注入轉換組要轉換的通道數。
JSQ1[4:0]:設置第一個轉換的通道 (0~19)
JSQ2[4:0]:設置第二個轉換的通道 (0~19)
JSQ3[4:0]:設置第三個轉換的通道 (0~19)
JSQ4[4:0]:設置第四個轉換的通道 (0~19)
2.5、觸發源
ADC 的觸發轉換有兩種:軟件觸發或外部事件觸發(硬件)
軟件觸發:常規通道由 ADCx_CR 寄存器的 ADSTART 位觸發,注入通