• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      STM32F407VG模數轉換精準采樣速率的設計

      2012-12-17 10:48:58華北電力大學陳邵權范寒柏
      電子世界 2012年15期
      關鍵詞:外設存儲器時鐘

      華北電力大學 陳邵權 王 濤 范寒柏 王 磊

      1.引言

      對模擬信號進行頻譜分析時,一般需要對信號進行AD采樣,并確定采樣速率。而對頻率分辨率較高的場合,對采樣速率要求較為準確,但一般的模數轉換器并不能保證準確的采樣速率。由此,本文以STM32F407VG為模數轉換器,介紹其設定出準確的采樣速率的方案[1][2]。

      2.STM32F407VG資源

      (1)STM32F407VG數模轉換器

      STM32F407VG數模轉換器簡稱ADC,是12位逐次逼近模擬數字轉換器,擁有多個通道,每個通道可以單次、連續(xù)、掃描或間接模式進行模數轉換。轉換又可分為規(guī)則轉換和注入轉換,這兩種轉換均可以由外部觸發(fā)。在72MHz工作頻率下,一次的模數轉換的時間時間僅為1.17us。

      (2)STM32F407VG直接存儲器

      STM32F407VG直接存儲器簡稱DMA,DMA用來在外設和存儲器之間或者存儲器之間的高速數據傳輸。數據可以通過DMA快速移動,無須CPU干預,節(jié)省了CPU資源。擁有兩個DMA控制器,DMA1有七個通道,DMA2有5個通道,每個通道專門原來管理來自于一個或多個外設對存儲器訪問的請求。同時還有一個仲裁器來協調各個DMA請求的優(yōu)先權。

      (3)STM32F407VG高級控制定時器

      STM32F407VG高級控制定時器有兩個,為別為TIM1和TIM8。這兩個高級定時器由一個16位能夠向上、向下、向上向下自動裝載計數器組成,并由一個可編程的預分頻器驅動,預分頻系數可以從1~65535之間的任意數值,他們是完全獨立的,不共享任何資源。在主要功能中,可以作為ADC注入觸發(fā)的事件。

      3.ADC定時采樣設計思路

      由上面的介紹可知,STM32F407VG的ADC可以進行注入轉換,注入轉換可以由定時器產生,ADC轉換之后的結果可以通過DMA通道快速轉移。由此,ADC精準采樣的工作思路如圖1所示。

      由轉換圖知,只要保證了定時器的觸發(fā)速度不大于ADC的轉換速度,那么定時器的注入觸發(fā)ADC轉換就能夠及時的采樣數據,并保證了每次采樣的間隔同時,也即能夠由定時器的定時觸發(fā)設定出精準的采樣速率。

      4.軟件設計

      (1)ADC初始化設定

      ADC轉換需要基準源、輸入信號、轉換時鐘、轉換方式、轉換速率、轉換的分辨率、轉換結果數據對齊方式等,由此選擇ADC基準源設定了內部基準源,接著設定輸入信號的通道,開啟轉換的時鐘,轉換方式為定時器觸發(fā)的注入的轉換方式,并設定了定時器內部PWM上升沿觸發(fā),轉換速率設定了轉換時鐘的二分頻,轉換分辨率設定為12位,數據對齊方式為右對齊。

      (2)定時器初始化設定

      定時器初始化需要時鐘、計數方式、內部Trig頻率及咱空比等,這里我們只需要內部PWM的頻率以及上升沿能夠有效觸發(fā)ADC轉換即可,并且PWM的頻率可以隨時修改。

      (3)DMA初始化設定

      DMA數據轉移涉及DMA通道的選擇、數據的轉移地址、數據緩存大小等,這里只要選對相應的ADC對應的DMA通道即可。

      程序流程見圖2。

      ADC定時采樣ADC初始化設置代碼如下:

      ADC_InitTypeDef ADC_ACCInit;

      //定義結構體參數ADC_ACCInit

      ADC_ACCInit.ADC_Resolution=ADC_Resolution_12b;

      //設置ADC分辨率為12位;

      ADC_ACCInit.ADC_ScanConvMode=DISABLE;

      //ADC非掃描模式

      ADC_ACCInit.ADC_ContinuousConv-Mode=DISABLE;

      //ADC非連續(xù)轉換

      ADC_ACCInit.ADC_ExternalTrigConv-Edge=ADC_ExternalTrigConvEdge_Rising;

      //ADC轉換由Trig上升沿觸發(fā),也即定時器觸發(fā)的

      ADC_ACCInit.ADC_ExternalTrigConv=

      ADC_ExternalTrigConv_T8_CC1;

      //設置Trig產生的源為定時器8通道1

      圖1 注入轉換圖

      圖2 程序設計流程

      ADC_ACCInit.ADC_DataAlign=ADC_DataAlign_Right;

      //ADC轉換數據對齊方式為右對齊

      ADC_Init(ADC3,&ADC_ACCInit);

      //初始化ADC參數

      ADC_RegularChannelConfig(ADC3,ADC_Channel_12,1,ADC_SampleTime_3Cycles);

      //選擇ADC信號輸入通道

      ADC_DMARequestAfterLastTransferC md(ADC3,ENABLE);

      //使能DMA數據快速轉移

      ADC_DMACmd(ADC3,ENABLE);

      //使能ADC轉換數據的DMA請求

      ADC_ExternalTrigInjectedConvConf ig(ADC3,ENABLE);

      //使能外部Trig觸發(fā)源

      ADC_ExternalTrigInjectedConvEdge Config(ADC3,ENABLE);

      //使能外部Trig邊沿觸發(fā)

      ADC_InjectedDiscModeCmd(ADC3,ENA BLE);

      //使能ADC為注入轉換模式

      ADC_Cmd(ADC3,ENABLE);

      //使能ADC

      定時器初始化以及DMA初始化比較簡單就不一一列出。

      5.結語

      STM32F407VG模數轉換器ADC具有的注入轉換方式,可以配合自身的定時器TIM和快速數據轉移的DMA請求進行精準的信號采樣。本文對這三個資源進行分析的基礎上給出了實現模數轉換的精準采樣的方案。為需要精準采樣速率的數字信號處理過程提供了可靠保證。

      [1]STM3240G-MCU2.RM0090 Reference manual.2011.

      [2]STM32F10xxx參考手冊.2009.

      猜你喜歡
      外設存儲器時鐘
      別樣的“時鐘”
      靜態(tài)隨機存儲器在軌自檢算法
      古代的時鐘
      有趣的時鐘
      時鐘會開“花”
      存儲器——安格爾(墨西哥)▲
      基于Nand Flash的高速存儲器結構設計
      Microchip推出具備雙ADC外設的全新器件,擴展其低成本8位PIC?單片機產品線
      貼身呵護 必不可少的PSP外設
      外設天地行情
      現代計算機(2009年9期)2009-12-02 03:45:10
      海伦市| 阳城县| 含山县| 扎兰屯市| 奉化市| 鱼台县| 林州市| 衡山县| 雷波县| 那坡县| 秦安县| 亚东县| 凌海市| 长春市| 宁德市| 奉贤区| 逊克县| 读书| 福泉市| 大邑县| 南岸区| 黄石市| 漳浦县| 高碑店市| 宝应县| 怀宁县| 响水县| 博乐市| 潼南县| 义马市| 准格尔旗| 盐津县| 常山县| 威信县| 哈巴河县| 上林县| 河曲县| 雅江县| 张家口市| 灵川县| 石棉县|