新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32 ADC時鐘配置

        STM32 ADC時鐘配置

        作者: 時間:2016-11-20 來源:網絡 收藏
        STM32 ADC 采樣頻率的確定
        先看一些資料,確定一下STM32 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。
        將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


        關鍵詞: STM32ADC時鐘配

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 吐鲁番市| 仲巴县| 罗平县| 安丘市| 汕头市| 延安市| 休宁县| 瓦房店市| 且末县| 安陆市| 新河县| 肥城市| 碌曲县| 任丘市| 奉节县| 尤溪县| 化州市| 华宁县| 田林县| 雷州市| 儋州市| 夏津县| 鱼台县| 望城县| 麻城市| 五寨县| 道真| 德阳市| 清水河县| 灯塔市| 米林县| 阿鲁科尔沁旗| 海城市| 桐梓县| 平度市| 娱乐| 崇阳县| 台南县| 古交市| 安阳市| 福贡县|