1. 程式人生 > >STM32F103ZET6 之 ADC 取樣率的確定

STM32F103ZET6 之 ADC 取樣率的確定

1、STM32 ADC 介紹

STM32 ADC 是一個12 位精度、 一種逐次逼近型模擬數字轉換器。它有多達18個通道,可測量16個外部和2個內部訊號源。各通道的A/D轉換可以單次、連續、掃描或間斷模

式執行。 ADC的結果可以左對齊或右對齊方式儲存在16位資料暫存器中。

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

高點也沒事。

在網上看到一回答ADC不超過14MHz 的答案:資料上的都是推薦,事實上很多晶片的設計都是有超額餘量的,很多人都會超額的利用這些資源,並且很好的工作。

若所看的程式頻率是超過14M,也沒有錯,可能作者的目的在於快速而寧願損失一些精度,ADC的解析度是12位,若是超過這個頻率也是工作的,只不過取樣到的精度可能僅到10

位,若這個已到 作者的要求,也無錯誤之說了。

2、看參考手冊,確定ADC 的時鐘以及通道取樣時間:

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個週期。

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