STM32定時觸發ADC 取樣頻率等問題總結

2021-09-25 19:52:00 字數 1007 閱讀 8260

定時器觸發就是兩次採集之間的時間間隔,比如定時器觸發的時間我設定為2s,即間隔2s的時間採集一次。那麼採集一次需要的時間是多少呢,這個是可以設定的,也被叫做轉換時間,一般都是us級別。這個就是通過這個函式可以進行配置的 adc_regularchannelconfig(adc1, adc_channel_1, 1, adc_sampletime_55cycles5);,adc_sampletime_55cycles5就是下文說到的取樣時間設定,轉換時間(單次取樣花費的時間)計算如下

公式:tconv = 取樣時間+ 12.5 個週期

例如:當adcclk=14mhz 和1.5 週期的取樣時間,tconv = 1.5 + 12.5 = 14 週期 = 1μs,所以定時器的觸發的間隔時間應該大於adc的最小轉換時間1us的,不然資料沒有及時被取走的話,資料就會被覆蓋。

如果我們的輸入訊號是 20khz (週期為 50us),若要將它恢復出來,乙個週期最少取樣20個點,所以兩個點之間的間隔時間為50us/20 = 2.5us,此時取樣率要達到1/2.5us*1000 000=400khz(1s = 1000 000us),所以adc的取樣率必須在400khz 以上。為了達到最好的精度,如果系統時鐘為72mhz,我們選取adc時鐘為12mhz,即6分頻。在12mhz 以及保證取樣率的情況下,取樣時間越長,準確性就越好。可以計算 2.5us = (12.5 + 取樣時間)/ 12mhz (定時觸發的間隔時間為2.5us,adc最大的轉換時間為2.5us,所以我們設定 取樣時間時候不能使得(12.5+取樣時間)/12mhz>2.5us,最多相等),根據等式可以求得取樣時間為17.5;所以取樣時間的選擇必須小於等於17.5個週期,才能保證取樣率在400khz 以上。所以我們可以選擇1.5、7.5、13.5,為獲得更高的精準度,我們可以選擇13.5個週期。

以上我是從很多人的理解中提煉出來的,我感覺是徹底說明白了定時器觸發adc取樣中涉及到的一些問題,希望不懂的人可以理解,高手別笑話。

STM32 TIM觸發ADC 定時取樣 筆記

用tim3的update觸發adc,只需勾選internal clock就可以了 adc設定,關鍵是選tim3 trigger out,圖中continuous coversion mode 應該選disable tim3 設定時間間隔然後關鍵選update event 程式 記得開啟tim3 ha...

STM32的ADC取樣與多通道ADC取樣

stm32庫開發實戰指南 劉火良,楊森著 原理性質的東西還是少講,因為上面那本書裡面講解的很詳細了,直接來看硬體電路圖 這裡使用的是3362電位器 10k 即用stm32來測量pb0和gnd兩端的電壓,這樣的電路設計比較簡單也容易理解,但是存在一定的弊端,下面給出 stm32庫開發實戰指南 上面配套...

STM32的ADC多通道取樣

用hal庫寫的好處就是可以不用進行配置io口發步驟.有良好的相容性,更換晶元的時候改 也簡單.rcc我在左側的 裡不用勾選,因為我用的是內部時鐘,不用選.下面是我配置的時鐘 之所以是48m,還要分頻呢.下面直接上 其他的都預設.然後按alt p,設定下工程,格式如下 這個可以把 格式更模組化。建議選...