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μs1)一般情況,如果是軟體啟動,那麼轉換時間即是取樣週期。
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個週期。
切記取樣點數必須達到要求。