STM32的ADC取樣頻率及相應時間的確定

2021-10-19 18:17:40 字數 2124 閱讀 4827

stm32 adc 是乙個12 位精度、 一種逐次逼近型模擬數字轉換器。它有多達18個通道,可測量16個外部和2個內部訊號源。各通道的a/d轉換可以單次、連續、掃瞄或間斷模式執行。 adc的結果可以左對齊或右對齊方式儲存在16位資料暫存器中。

adc的輸入時鐘不得超過14mhz,它是由pclk2經分頻產生。轉換時最快為1us,當adc的輸入時鐘超過14mhz 時其會損失一些精度。當然如果可以達到我們的精度,輸入時鐘高點也沒事。

若所看的程式頻率是超過14m,也沒有錯,可能作者的目的在於快速而寧願損失一些精度,adc的解析度是12位,若是超過這個頻率也是工作的,只不過取樣到的精度可能僅到10位,若這個已到 作者的要求,也無錯誤之說了。

1)adc 時鐘 adc 接在apb2 上,apb2的時鐘為72mhz,通過分頻的方式給adc 提供時鐘,預分頻主要有2、4、6、8 四種分頻方式。

2)通道取樣時間 通道取樣時間會影響取樣的精度。

3、轉換時間

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

例如:當

adcclk=14mhz和1.5週期的取樣時間

tconv = 1.5 + 12.5 = 14

週期=1μs

例如:當adcclk=14mhz 和1.5 週期的取樣時間 tconv = 1.5 + 12.5 = 14 週期 = 1μs

1)一般情況,如果是軟體啟動,那麼轉換時間即是取樣週期。

2)若通過定時器進行觸發啟動adc,則還需要加上定時器的相關時間。

4、確定取樣率

1)如果我們的輸入訊號是 20khz (週期為 50us),若要將它恢復出來,乙個週期最少取樣20個點,此時取樣率要達到400khz,所以adc的取樣率必須在400khz 以上。為

了達到最好的精度,我們選取adc時鐘為12mhz,即6分頻。在12mhz 以及保證取樣率的情況下,取樣時間越長其,準確性就越好。

可以計算 2.5us = (12.5 + 取樣時間)/ 12mhz ,可以求得取樣時間為17.5;所以取樣時間的選擇必須小於等於17.5個週期,才能保證取樣率在400khz 以上。所以我們可以選

擇1.5、7.5、13.5,為獲得更高的精準度,我們可以選擇13.5個週期。

切記取樣點數必須達到要求。

1.首先確定adc 的時鐘,這裡需要看你的rcc的設定。在採用韌體庫的基礎上,設定adc的取樣頻率相對來說是很容易的。

(1)由時鐘控制器提供的adcclk 時鐘和pclk2(apb2 時鐘)同步。clk 控制器為adc 時鐘提供乙個專用的可程式設計預分頻器。

(2) 一般情況下在程式 中將 pclk2 時鐘設為 與系統時鐘 相同

rcc_hclkconfig(rcc_sysclk_div1);

rcc_pclk2config(rcc_hclk_div1);

rcc_pclk1config(rcc_hclk_div2);

(3)在時鐘配置暫存器(rcc_cfgr) 中 有 為adc 時鐘提供乙個專用的可程式設計預分器

位15:14 adcpre:adc預分頻

由軟體設定來確定adc時鐘頻率

00:pclk2 2分頻後作為adc時鐘

01:pclk2 4分頻後作為adc時鐘

10:pclk2 6分頻後作為adc時鐘

11:pclk2 8分頻後作為adc時鐘

我們可對其進行設定 例如:

rcc_adcclkconfig(rcc_pclk2_div4);

另外 還有 adc 時鐘使能設定

rcc_apb2periphclockcmd(rcc_apb2periph_adc1 | rcc_apb2periph_adc2 |

rcc_apb2periph_gpioc, enable);

(4)取樣時間和轉換時間

adc 使用若干個adc_clk 週期對輸入電壓取樣,取樣週期數目可以通過

adc_smpr1 和adc_smpr2 暫存器中的smp[2:0]位而更改。每個通道可以以

不同的時間取樣。

總轉換時間如下計算:

tconv = 取樣時間+ 12.5 個週期

例如:當adcclk=36mhz 和239.5 週期的取樣時間

tconv = 239.5 + 12.5 = 252週期 = 7μs

若你取樣的是1khz的正弦波訊號,取樣了10000個點,則其中就有70個週期。

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

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

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

定時器觸發就是兩次採集之間的時間間隔,比如定時器觸發的時間我設定為2s,即間隔2s的時間採集一次。那麼採集一次需要的時間是多少呢,這個是可以設定的,也被叫做轉換時間,一般都是us級別。這個就是通過這個函式可以進行配置的 adc regularchannelconfig adc1,adc channe...

STM32的ADC多通道取樣

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