STM32 ADC採樣時間、採樣週期、採樣頻率計算方法

ADC轉換就是輸入模擬的信號量,單片機轉換成數字量。讀取數字量必須等轉換完成後,完成一個通道的讀取叫做採樣週期。採樣週期一般來說=轉換時間+讀取時間

 

。而轉換時間=採樣時間+12.5個時鐘週期。採樣時間是你通過寄存器告訴stm32採樣模擬量的時間,設置越長越精確

一 STM32 ADC採樣頻率的確定

1. :先看一些資料,確定一下ADC的時鐘:

(1),由時鐘控制器提供的ADCCLK時鐘和PCLK2(APB2時鐘)同步。CLK控制器爲ADC時鐘提供一個專用的可編程預分頻器。

(2) 一般情況下在程序 中將 PCLK2 時鐘設爲 與系統時鐘 相同

/* HCLK = SYSCLK */

RCC_HCLKConfig(RCC_SYSCLK_Div1);

/* PCLK2 = HCLK */

RCC_PCLK2Config(RCC_HCLK_Div1);

/* PCLK1 = HCLK/2 */

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時鐘

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

/* ADCCLK = PCLK2/4 */

RCC_ADCCLKConfig(RCC_PCLK2_Div4);

另外 還有 ADC 時鐘使能設置

/* Enable ADC1, ADC2 and GPIOC clock */

RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_ADC2 |

RCC_APB2Periph_GPIOC, ENABLE);

(4)16.7 可編程的通道採樣時間

ADC 使用若干個ADC_CLK 週期對輸入電壓採樣,採樣週期數目可以通過ADC_SMPR1和ADC_SMPR2寄存器中的SMP[2:0]位而更改。每個通道可以以不同的時間採樣。

 

總轉換時間如下計算:

TCONV(轉換時間) = 採樣時間+ 12.5 個週期

例如:

當ADCCLK=14MHz 和 1.5週期的採樣時間:

TCONV = 1.5 + 12.5 = 14週期= 1μs

SMPx[2:0]:選擇通道x的採樣時間

這些位用於獨立地選擇每個通道的採樣時間。在採樣週期中通道選擇位必須保持不變。

000:1.5週期100:41.5週期

001:7.5週期101:55.5週期

010:13.5週期110:71.5週期

011:28.5週期111:239.5週期

注:

– ADC1的模擬輸入通道16和通道17在芯片內部分別連到了溫度傳感器和VREFINT。

– ADC2的模擬輸入通道16和通道17在芯片內部連到了VSS。

2. 具體分析如下:

(1)我們的輸入信號是50Hz (週期爲20ms),初步定爲1週期200個採樣點,(注:一週期最少採20個點,即採樣率最少爲1k) ,每2個 採樣點間隔爲 20ms /200 = 100 us

ADC可編程的通道採樣時間 我們選最小的 1.5 週期,則 ADC採樣週期一週期大小爲

100us /1.5=66us 。 ADC 時鐘頻率爲 1/66us =15 KHz。

ADC可編程的通道採樣時間 我們選71.5 週期,則 ADC採樣週期一週期大小爲

(100us /71.5) 。 ADC 時鐘頻率爲 7.15MHz。

(2)接下來我們要確定系統時鐘:我們 用的是 8M Hz 的外部晶振做時鐘源(HSE),估計得 經過 PLL倍頻 PLL 倍頻係數分別爲2的整數倍,最大72 MHz。爲了 提高數據 計算效率,我們把系統時鐘定爲72MHz,(PLL 9倍頻)。則PCLK2=72MHz,PCLK1=36MHz;

我們通過設置時鐘配置寄存器(RCC_CFGR) 中 有 爲ADC時鐘提供一個專用的可編程預分器,將PCLK2 8 分頻後作爲ADC 的時鐘,則可知ADC 時鐘頻率爲 9MHz

從手冊可知: ADC 轉換時間:

STM32F103xx增強型產品:ADC時鐘爲56MHz時爲1μs(ADC時鐘爲72MHz爲1.17μs)

(3)由以上分析可知:不太對應,我們重新對以上中 內容調整,提出如下兩套方案:

方案一:我們的輸入信號是50Hz (週期爲20ms),初步定爲1週期2500個採樣點,(注:一週期最少採20個點,即採樣率最少爲1k) ,每2個 採樣點間隔爲 20ms /2500 = 8 us

ADC可編程的通道採樣時間 我們選71.5週期,則 ADC採樣週期一週期大小爲

8us /71.5 。 ADC時鐘頻率約爲 9 MHz。

將PCLK2 8 分頻後作爲ADC 的時鐘,則可知ADC 時鐘頻率爲 9MHz

方案二:我們的輸入信號是50Hz (週期爲20ms),初步定爲1週期1000個採樣點,(注:一週期最少採20個點,即採樣率最少爲1k) ,每2個 採樣點間隔爲 20ms /1000= 20 us

ADC可編程的通道採樣時間 我們選239.5週期,則 ADC採樣週期一週期大小爲

20us /239.5 。 ADC時鐘頻率約爲 12 MHz。

將PCLK2 6 分頻後作爲ADC 的時鐘,則可知ADC 時鐘頻率爲 12MHz

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