STM32 ADC 轉換時間

本文轉載自 http://www.cnblogs.com/LJWJL/p/4593246.html

ADC時鐘:

這個ADC時鐘是從哪來的呢。我們看下面這個STM32的時鐘結構圖:

 

 

我們大多使用STM32的最快PCLK2系統時鐘72MHz。

ADCCLK的時鐘由72MHz的6分頻能瞞住14MHz以下的要求 爲12MHz。

RCC_ADCCLKConfig(RCC_PCLK2_Div6); //72M/6=12,ADC最大時間不能超過14M

ADC轉換時間:

有如下公式: TCONV = 採樣時間+ 12.5 個週期

其中12.5個週期是採集12位AD時間是固定的,另外一個採樣時間可以取下面幾個參數由SMPx[2:0]寄存器控制,每個通道可以單獨配置。

   000:1.5週期

        100:41.5週期

        001:7.5週期

        101:55.5週期

        010:13.5週期

        110:71.5週期

        011:28.5週期

        111:239.5週期

 

當我們選擇1.5週期時。轉換時間 = 1.5+12.5 = 14週期。

當時鍾配置爲12MHz時 轉換時間 = 14/12 = 1.167us.

 

其中有人就有疑問 爲什麼系統時鐘72MHz 竟然達不到手冊上說的1MHz- 1us的採樣 。

其實我們要了解,真正決定ADC轉換速度的不是系統時鐘72MHz 而是不超過14MHz的 ADCCLK。 當我們配置系統時鐘爲72MHz的時候 ADCCLK 最大爲12MHz.所以轉換速度稍微慢了。

當我們把系統時鐘設置爲56MHz的時候,經過4div正好爲14MHz,此時就能達到1us的採樣。但是測試發現如果按照最快速度轉換ADC結果不是很準確。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章