<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32系列ADC采樣頻率及相應(yīng)時間的確定

          STM32系列ADC采樣頻率及相應(yīng)時間的確定

          作者: 時間:2016-11-28 來源:網(wǎng)絡(luò) 收藏
          一、采樣頻率的確定

          1.首先確定ADC 的時鐘,這里需要看你的RCC的設(shè)置。在采用固件庫的基礎(chǔ)上,設(shè)定ADC的采樣頻率相對來說是很容易的。

          本文引用地址:http://www.ex-cimer.com/article/201611/322992.htm

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

          (2) 一般情況下在程序 中將 PCLK2 時鐘設(shè)為 與系統(tǒng)時鐘 相同

          RCC_HCLKConfig(RCC_SYSCLK_Div1);

          RCC_PCLK2Config(RCC_HCLK_Div1);

          RCC_PCLK1Config(RCC_HCLK_Div2);

          (3)在時鐘配置寄存器(RCC_CFGR) 中 有 為ADC 時鐘提供一個專用的可編程預(yù)分器

          位15:14 ADCPRE:ADC預(yù)分頻

          由軟件設(shè)置來確定ADC時鐘頻率

          00:PCLK2 2分頻后作為ADC時鐘

          01:PCLK2 4分頻后作為ADC時鐘

          10:PCLK2 6分頻后作為ADC時鐘

          11:PCLK2 8分頻后作為ADC時鐘

          我們可對其進(jìn)行設(shè)置 例如:

          RCC_ADCCLKConfig(RCC_PCLK2_Div4);

          另外 還有 ADC 時鐘使能設(shè)置

          RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_ADC2 |

          RCC_APB2Periph_GPIOC, ENABLE);

          (4)采樣時間和轉(zhuǎn)換時間

          ADC 使用若干個ADC_CLK 周期對輸入電壓采樣,采樣周期數(shù)目可以通過

          ADC_SMPR1 和ADC_SMPR2 寄存器中的SMP[2:0]位而更改。每個通道可以以

          不同的時間采樣。

          總轉(zhuǎn)換時間如下計(jì)算:

          TCONV = 采樣時間+ 12.5 個周期

          例如:

          當(dāng)ADCCLK=36MHz 和239.5 周期的采樣時間

          TCONV = 239.5 + 12.5 = 252周期 = 7μs

          若你采樣的是1KHz的正弦波信號,采樣了10000個點(diǎn),則其中就有70個周期。



          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();