新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32的ADC采樣周期確定

        STM32的ADC采樣周期確定

        作者: 時間:2016-11-27 來源:網絡 收藏
        STM32ADC采樣頻率的確定

        1.

        本文引用地址:http://www.104case.com/article/201611/322486.htm

        先看一些資料,確定一下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)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。

        將PCLK28分 頻后作為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


        關鍵詞: STM32ADC采樣周

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 玉龙| 苍梧县| 四子王旗| 丰城市| 襄垣县| 沂水县| 汪清县| 荆门市| 广东省| 南江县| 仪陇县| 曲靖市| 江油市| 英吉沙县| 秦安县| 西充县| 宁远县| 青州市| 闽清县| 定陶县| 尚义县| 湟中县| 洛阳市| 满洲里市| 澄江县| 逊克县| 巫山县| 南城县| 吉隆县| 金山区| 饶平县| 大荔县| 山东| 新野县| 威远县| 会理县| 和田市| 阿合奇县| 正宁县| 永平县| 密云县|