在STM32家族里,多數系列芯片內含2到3個ADC模塊,有的甚至更多,比方G4系列可以有5個ADC模塊。其中,通道數因不同的系列或型號多少不等,幾個到幾十個的都有。有時,我們可能需要多個ADC模塊同時工作,比方3個ADC模塊同時采樣轉換。這時如果芯片內含有3個ADC模塊,并支持同時采樣轉換就很方便。比方STM32F4系列、STM32F7等其它系列都含有3個ADC模塊,并支持同時AD采樣轉換。
這里就3個ADC模塊同時進行采樣轉換應用,做個簡單實現示例,以供有需要的用戶參考。此時3個ADC模塊會建立主從關系。以STM32F4芯片為例。內部大致框架如下:
采樣轉換時按如下圖示操作,每次對分別屬于3個ADC模塊的3個通道進行AD轉換。
各通道轉換結束時產生DMA請求,DMA按照ADC1、ADC2、ADC3的順序依次將數據取走,然后放到指定的內存空間。
好,大致原理就介紹這么多。更多細節還是請閱讀STM32參考手冊的ADC相關章節。這里在ADC1/ADC2/ADC3三個模塊各選2個通道,它們的通道號及相關輸入連接如下:【注:ADC模塊的參考電壓選用VDD.下面實驗基于STM32F407 DISCOVERY板來進行。】
另外,我這里使用STM32的TIM3的更新事件觸發ADC轉換。
一、使用STM32CubeMx圖形化配置工具完成基本配置
1.1RCC/SYS等必需配置項目【略】
1.2 對ADC進行配置。
1.2.1 對ADC1及相關DMA進行配置。
至于對ADC2和ADC3及相關DMA進行配置,主要參數和配置流程跟ADC1一樣。注意選擇對應的ADC通道及采樣時間。考慮到版面,這里就不重復貼圖了。
1.3 對TIM3進行配置。
對TIM3的配置比較簡單,安排你需要的時基參數,選擇合適的觸發輸出即可。ADC轉換靠它定期觸發。
上面配置中,DMA傳輸中斷默認使能了,至于其它,根據需要選擇使能。
2、基于上面的CubeMx配置生成C代碼工程。
3、添加用戶代碼。代碼基于Stm32Cube庫。
3.1 為DMA傳輸準備一個內存數組,用來存放轉換結果。
__IO uint32_t ADC_Result[6];
3.2 添加啟動ADC3/ADC2/ADC1以及TIM3的相關代碼。
4、編譯、運行、驗證。
結果如下,結果是正確的。整個演示過程完畢。
毋庸置疑,這個過程很簡單。只要你愿意對STM32手冊做認真閱讀并把握相關原理,你也可以輕松實現。當你把握了原理,也就可以靈活運用。
看到最后的結果,或許有人會對結果產生疑問。DMA搬到數組的數據怎么是00,00,00,fff,fff,fff,而不是00,fff,00,fff,00,fff呢?不妨結合上面的介紹和參考手冊自行思考下。
-
adc
+關注
關注
99文章
6533瀏覽量
545752 -
內存
+關注
關注
8文章
3055瀏覽量
74328 -
STM32
+關注
關注
2272文章
10923瀏覽量
357567
原文標題:STM32多個ADC模塊同時采樣轉換的應用示例
文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
stm32f407zgt6如何通過spi通訊同時控制多個adc?
ADC模塊是什么?ADC模塊設計
STM32_ADC采樣時間_采樣周期_采樣頻率計算方法分析
STM32F30x 的ADC 采樣的傅立葉變換
![<b class='flag-5'>STM32</b>F30x 的<b class='flag-5'>ADC</b> <b class='flag-5'>采樣</b>的傅立葉變換](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32 ADC采樣時間、采樣周期、采樣頻率計算方法
![<b class='flag-5'>STM32</b> <b class='flag-5'>ADC</b><b class='flag-5'>采樣</b>時間、<b class='flag-5'>采樣</b>周期、<b class='flag-5'>采樣</b>頻率計算方法](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32 HAL庫:ADC+DMA應用(連續采樣、觸發采樣)
![<b class='flag-5'>STM32</b> HAL庫:<b class='flag-5'>ADC</b>+DMA應用(連續<b class='flag-5'>采樣</b>、觸發<b class='flag-5'>采樣</b>)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32F4時鐘觸發ADC雙通道采樣DMA傳輸進行FFT+測頻率+采樣頻率可變+顯示波形(詳細解讀)...
![<b class='flag-5'>STM32</b>F4時鐘觸發<b class='flag-5'>ADC</b>雙通道<b class='flag-5'>采樣</b>DMA傳輸進行FFT+測頻率+<b class='flag-5'>采樣</b>頻率可變+顯示波形(<b class='flag-5'>詳細</b>解讀)...](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論