STM32的ADC採樣頻率及相應時間的確定

2020-12-25 電子發燒友

  STM32 ADC 介紹

  STM32 ADC 是一個12 位精度、 一種逐次逼近型模擬數字轉換器。它有多達18個通道,可測量16個外部和2個內部信號源。各通道的A/D轉換可以單次、連續、掃描或間斷模式執行。 ADC的結果可以左對齊或右對齊方式存儲在16位數據寄存器中。

  ADC的輸入時鐘不得超過14MHz,它是由PCLK2經分頻產生。轉換時最快為1us,當ADC的輸入時鐘超過14MHz 時其會損失一些精度。當然如果可以達到我們的精度,輸入時鐘高點也沒事。

  在網上看到一回答ADC不超過14MHz 的答案:資料上的都是推薦,事實上很多晶片的設計都是有超額餘量的,很多人都會超額的利用這些資源,並且很好的工作。

  若所看的程序頻率是超過14M,也沒有錯,可能作者的目的在於快速而寧願損失一些精度,ADC的解析度是12位,若是超過這個頻率也是工作的,只不過採樣到的精度可能僅到10位,若這個已到 作者的要求,也無錯誤之說了。

  2、看參考手冊,確定ADC 的時鐘以及通道採樣時間:

  1)ADC 時鐘 ADC 接在APB2 上,APB2的時鐘為72MHz,通過分頻的方式給ADC 提供時鐘,預分頻主要有2、4、6、8 四種分頻方式。

  2)通道採樣時間 通道採樣時間會影響採樣的精度。

  3、轉換時間

  公式:TCONV = 採樣時間+ 12.5 個周期

  例如:當

  ADCCLK=14MHz和1.5周期的採樣時間

  TCONV = 1.5 + 12.5 = 14

  周期=1μs

  例如:當ADCCLK=14MHz 和1.5 周期的採樣時間 TCONV = 1.5 + 12.5 = 14 周期 = 1μs

  1)一般情況,如果是軟體啟動,那麼轉換時間即是採樣周期。

  2)若通過定時器進行觸發啟動ADC,則還需要加上定時器的相關時間。

  4、確定採樣率

  1)如果我們的輸入信號是 20KHz (周期為 50us),若要將它恢復出來,一個周期最少採樣20個點,此時採樣率要達到400KHz,所以ADC的採樣率必須在400KHz 以上。為

  了達到最好的精度,我們選取ADC時鐘為12MHz,即6分頻。在12MHz 以及保證採樣率的情況下,採樣時間越長其,準確性就越好。

  可以計算 2.5us = (12.5 + 採樣時間)/ 12MHz ,可以求得採樣時間為17.5;所以採樣時間的選擇必須小於等於17.5個周期,才能保證採樣率在400KHz 以上。所以我們可以選

  擇1.5、7.5、13.5,為獲得更高的精準度,我們可以選擇13.5個周期。

  切記採樣點數必須達到要求。

  採樣頻率的確定

  1.首先確定ADC 的時鐘,這裡需要看你的RCC的設置。在採用固件庫的基礎上,設定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)採樣時間和轉換時間

  ADC 使用若干個ADC_CLK 周期對輸入電壓採樣,採樣周期數目可以通過

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

  不同的時間採樣。

  總轉換時間如下計算:

  TCONV = 採樣時間+ 12.5 個周期

  例如:

  當ADCCLK=36MHz 和239.5 周期的採樣時間

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

  若你採樣的是1KHz的正弦波信號,採樣了10000個點,則其中就有70個周期。

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 一STM32 ADC 採樣 頻率的確定
    LDO 具有較高的電源抑制(以比率表示,PSRR),其減弱了寬帶頻率下 LDO 輸入的噪聲。  除上電期間的鎖閉問題以外,如果每個電源的最終工作 DC 電壓隨時間而變化,則電源會對系統性能產生影響。電源輸出會因線電壓、負載電流變化和溫度變化而不同。電源輸出會在其精度規範內有所不同,其一般為額定輸出電壓的 3% 到 5%。  儘管這些電源電壓的變化很小,但卻會改變運算放大器的輸入共模電壓點,其通常被建模為運算放大器輸入的額外補償電壓。
  • 重疊頻率計算器
    本應用筆記提供一種快速、容易使用的工具,用來確定鏡像信號的真實位置和重疊頻率的位置,以及典型頻譜中的諧波頻率。所得數據用於分析模/數轉換器(adc)和數/模轉換器(dac)的動態特性。
  • STM32單片機的定時器和ADC的應用方法介紹
    _timer_stop(tim_num); TIM_TimeBaseStructure.TIM_Period = tim_us; //設置在下一個更新事件裝入活動的自動重裝載寄存器周期的值計數到5000為500ms TIM_TimeBaseStructure.TIM_Prescaler =(72-1); //設置用來作為TIMx時鐘頻率除數的預分頻值 10Khz的計數頻率
  • 採樣頻率、採樣點數、頻率解析度
    所以NTs就是採樣前模擬信號的時間長度T,所以信號長度越長,頻率解析度越好。是不是採樣點數越多,頻率分辨力提高了呢?其實不是的,因為一段數據拿來就確定了時間T,注意:f0=1/T,而T=NTs,增加N必然減小Ts ,因此,增加N時f0是不變的。只有增加點數的同時導致增加了數據長度T才能使解析度越好。
  • STM32ADC使用方法解析
    因項目需要使用到STM32的ADC功能,雖然對ADC的使用並不陌生,但是第一接觸stm32的ADC功能還是有種無從下手的感覺,主要是因為STM32ADC設計較為複雜,一時對相關的專業術語較為生疏,此外固件庫中涉及到的函數雖都進行了分門別類但是還是感覺函數較多,難以很快掌握,現就將個人理解寫出,以便大家共同進步。
  • 速度採樣頻率
    這一點可以使用車模從速度為零加速到最高速度的時間,或者從最高速度減速到0 的時間來衡量。這個時間的倒數與速度的頻帶寬度成正比。比如車模使用0.2秒從靜止加速到最高速度並保持勻速運行,對於這樣一個斜邊速度信號,它的頻譜本身是無窮大的,但可以認為其主要頻譜能量集中在5Hz(0.2秒的倒數)以內。對於速度信號的採樣可以使用5Hz的兩倍以上的頻率完成採樣,即10Hz以上的採樣頻率。
  • STM32 ADC 模數轉換的簡單實現
    //掃描通道數ADC_Init(ADC1, &ADC_InitStructure);ADC_RegularChannelConfig(ADC1, ADC_Channel_9, 1, ADC_SampleTime_1Cycles5);//通道X,採樣時間為
  • ESP8266_22基於自身ADC的電壓採樣
    這一節內容比較簡單,就是電壓採樣,在傳統設計中應用還是比較多的。首先看下支持ADC採樣的管腳,找到你手裡模塊的原理圖,我的如下所示:       如上所示,U1的2腳為ADC管腳,而且整個模塊有且僅有這一個電壓採集管腳。CDS1是一個光敏電阻,它和R1組成一個分壓電路。不同強度的光照在CDS1上時,會導致它的阻值變化,最終導致ADC管腳上的電壓發生變化。
  • RT-Thread ADC設備學習筆記
    1、實踐需求1.1 硬體配置LED、煙感模塊1.2 軟體需求設備開機,當在串口終端輸入adc_cmd on時,adc數據開始列印,LED燈熄滅,當在串口終端輸入adc_cmd off,adc數據關閉列印,LED燈開始閃爍。本節,我們將會學習到RT-Thread ADC設備的基本使用。接下來,我們將基於RT-Thread Studio來構建。
  • 基礎知識:採樣頻率和頻率解析度
    其中N為採樣點數,fs為採樣頻率,Ts為採樣間隔。所以NTs就是採樣前模擬信號的時間長度T,信號長度越長,頻率解析度越好。是不是採樣點數越多,頻率分辨力提高了呢?其實不是的,因為一段數據拿來就確定了時間T,注意:f0=1/T,而T=NTs,增加N必然減小Ts,因此,增加N時f0是不變的。只有增加點數的同時導致增加了數據長度T才能使解析度越好。還有容易搞混的一點,我們在做DFT時,常常在有效數據後面補零達到對頻譜做某種改善的目的,我們常常認為這是增加了N,從而使頻率解析度變好了,其實不是這樣的,補零並沒有增加有效數據的長度,仍然為T。
  • STM32實例-ADC 模數轉換實驗
    我們知道 APB2 總線時鐘為72M,而ADC最大工作頻率為 14M,所以一般設置分頻因子為 6,這樣 ADC 的輸入時鐘為12M。    ADC 要完成對輸入電壓的採樣需要若干個 ADC_CLK 周期,採樣的周期數可通過 ADC 採樣時間寄存器 ADC_SMPR1 和 ADC_SMPR2 中的 SMP[2:0]位設置,ADC_SMPR2 控制的是通道 0~9, ADC_SMPR1 控制的是通道 10~17。每個通道可以分別用不同的時間採樣。
  • adc0809引腳圖及功能詳解,adc0809與51單片機連接電路分析
    adc0809是採樣頻率為8位的、以逐次逼近原理進行模—數轉換的器件。其內部有一個8通道多路開關,它可以根據地址碼鎖存解碼後的信號,只選通8路模擬輸入信號中的一個進行A/D轉換。   1.主要特性   1)8路8位A/D轉換器,即解析度8位。   2)具有轉換起停控制端。
  • SAR ADC與Sigma Delta ADC有什麼不一樣?
    工程師郭婷 發表於 2018-08-16 00:15:00 sigma-delta adc的原理
  • stm32定時器觸發adc
    stm32的ADC特點   STM32的ADC有單次轉換和連續轉換2種模式,這兩種模式又可以選擇是否結合掃描模式。 如何使stm32定時器觸發adc      STM32 ADC的常規通道可以由以上圖6個信號觸發任何一個,我們以使用TIM2_CH2觸發ADC1,獨立模式
  • 關於STM32 ADC速度的問題
    STM32F101xx系列稱為基本型產品,基本型產品的最高時鐘頻率可以達到36MHz。基本型產品的英文名稱為Access Line。根據設計,當ADC模塊的頻率為14MHz時,可以達到ADC的最快採樣轉換速度。
  • 如何在STM32中得到最佳的ADC精度
    當我們在做STM32的ADC應用遇到轉換結果不如意時,常有人提醒或建議你對採樣時間或外部採樣電路做調整。這裡調整的最終目的就是讓信號進入ADC模塊的充電時間與內部採樣時間匹配,保證採得的電壓儘量真實,最終得到符合精度要求的轉換結果。下面就聊聊相關話題。一、模擬信號源阻抗的影響
  • 交織型採樣ADC的基本原理
    這種情況下,如果兩個ADC的每一個採樣速率均為fS且呈交織型,則最終採樣速率為2× fS。這兩個ADC必須具有確定的時鐘相位差關係,才能正確交織。時鐘相位關係由等式1給出,其中:n是某個特定的ADC,m是ADC總數。
  • Stellaris系列微控制器的ADC過採樣技術(一)
    模擬信號採樣的標準約定指出:採樣頻率fS至少是輸入信號的最高頻率成分fH的兩倍。>只要所選的採樣頻率高於fS就被看作是過採樣。>S0)/2+tprocesstS0為進行平均時第一個採樣點出現的時間,tSn為最後一個採樣點出現的時間。
  • 基於12位採樣精度ADC晶片ADC12062實現數據採集測控系統的設計
    數據採集的任務,具體地說,就是採集傳感器輸出的模擬信號並轉換成計算機能識別 的數位訊號,然後送入計算機或相應的信號處理系統,根據不同需要進行相應的計算和處 理,得出所需的數據;與此同時,將計算機得到的數據進行顯示或列印,以便實現對某些 物理量的監視,其中一部分數據還將被控制生產過程中的計算機控制系統用來控制某些物 理量。