<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發網

      電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
      搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 嵌入式系統 >> ARM >> 正文

      S3C2410中的脈寬調制定時器(PWM)

      作者:佚名    文章來源:本站原創    點擊數:    更新時間:2008-11-3

          S3C2410有5個16bit定時器。定時器0-3有脈寬調制功能(Pulse Width Modulation,PWM),定時器4是內部定時器,沒有輸出引腳。定時器0有Dead-zone發生器,可以保證一對反向信號不會同時改變狀態,常用于大電流設備中。
          定時器0-1共用一個8bit prescaler,定時器2-4共用另外一個。每個定時器有一個時鐘分頻器,可以選擇5種分頻方法。每個定時器從各自的時鐘分頻器獲取時鐘信號。prescaler是可編程的,并依據TCFG0-1寄存器數值對PCLK進行分頻。
          當定時器被使能之后,定時器計數緩沖寄存器(TCNTBn)中初始的數值就被加載到遞減計數器中。定時器比較緩沖寄存器(TCMPBn)中的初始數值被加載到比較寄存器中,以備與遞減計數器數值進行比較。這種雙緩沖特點可以讓定時器在頻率和占空比變化時輸出的信號更加穩定。
          每個定時器都有一個各自時鐘驅動的16bit遞減計數器,當計數器數值為0時,產生一個定時中斷,同時TCNTBn中的數值被再次載入遞減計數器中再次開始計數。只有關閉定時器才不會重載。TCMPBn的數值用于PWM,當遞減計數器的數值和比較寄存器數值一樣時,定時器改變輸出電平,因此,比較寄存器決定了PWM輸出的開啟和關閉。
          S3C2410的PWM定時器采用雙buffer機制,可以不停止當前定時器的情況下設置下一輪定時操作。定時器值可以寫到TCNTBn,而當前定時的計數值可以從TCNTOn獲得,即,從TCNTBn獲得的不是當前數值而是下一次計數的初始值。
          自動加載功能被打開后,當TCNTn數值遞減到0時,芯片自動將TCNTBn的數值拷貝到TCNTn,從而開始下一次循環,若TCNTBn數值為0,則不會有遞減操作,定時器停止。
          第一次啟動定時器的過程如下:

      1. 初始化TCNTBn和TCMPBn的數值;
      2. 設置定時器的人工加載位,不管是否使用極性轉換功能,都將極性轉換位打開;
      3. 設置定時器的啟動位來啟動定時器,同時清除人工加載位。

             若定時器在計數過程中被停止,則TCNTn保持計數值,若需要設置新的數值需要人工加載。定時器的工作過程可以用下圖表示。
       

      1. 使能自動加載功能,設置TCNTBn=160,TCMPBn=110,設置人工加載位并配置極性轉換位,人工加載位將時TCNTBn、TCMPBn的數值加載到TCNTn、TCMPn。然后,設置TCNTBn、TCMPBn為80和40,作為下一次定時的參數。
      2. 設置啟動位,若人工加載位為0,極性轉換關閉,自動加載開啟,則定時器開始遞減計數(計數前有一個設定時間,可以理解為與setup time類似)。
      3. 當TCNTn的數值和TCMPn一致時,TOUTn從低變為高。
      4. 當TCNTn計數至0,定時器產生中斷請求,同時TCNTBn、TCMPBn的數值被自動加載到TCNTn、TCMPn,前者為80,后者為40。
      5. 中斷服務向量(ISR)將TCNTBn、TCMPBn設置為80和60。
      6. 與3相似。
      7. 與4相似,TCNTn、TCMPn,前者為80,后者為60。
      8. ISR服務程序中,將自動加載和中斷請求關閉。
      9. 與6、3相似。
      10. TCNTn為0,TCNTn不會自動加載新的數值,定時器被關閉。
      11. 沒有新的中斷發生。

          同時,由上面的工作過程可以看出,通過ISR或別的方法寫入不同的TCMPBn的數值,就可以調節輸出信號的占空比,實現脈寬調制(PWM)。      
           Dead Zone主要用在控制外設的使能,其功能主要是在關閉一個設備和開啟另一個設備之間,插入一個時間間隙,以防止兩個設備同時改變狀態。(有利于減小系統干擾?)
          定時器可以通過TCFG1寄存器的DMA模式位配置為DMA請求源信號(nDMA_REQ)發生器,當定時器被這樣配置后,它將nDMA_REQ信號一直置低,直到接收到ACK信號。當定時器收到ACK信號,它將nDMA_REQ信號置高(無效)。當定時器被設置為DMA請求模式時,不會產生中斷請求。只能有一個定時器被配置為DMA請求源。

      Tags:arm,脈沖調制,定時器  
      責任編輯:admin
      相關文章列表
      沒有相關文章
      請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網友評論
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 狠狠综合久久AV一区二区三区| 亚洲综合中文字幕无线码| 色88久久久久高潮综合影院| 色噜噜狠狠色综合日日| 亚洲国产欧洲综合997久久| 国产精品成人免费综合| 亚洲AV综合色一区二区三区| 久久综合九色综合97_久久久| 国产精品天天影视久久综合网 | 好了av第四综合无码久久| 国产综合无码一区二区色蜜蜜| 久久久综合九色合综国产| 色综合久久一本首久久| 一本色道久久88亚洲综合| 国产色丁香久久综合| 久久婷婷五月国产色综合| 精品综合久久久久久蜜月| 91色综合综合热五月激情| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 中文字幕亚洲综合久久男男| 色欲人妻综合AAAAAAAA网| 亚洲国产成人久久综合一 | 婷婷激情狠狠综合五月| 伊人丁香狠狠色综合久久| 国产色综合一区二区三区| 亚洲国产综合精品中文字幕 | 色欲综合一区二区三区| 99久久国产综合精品女同图片| 国产综合视频在线观看一区| 狠狠色婷婷丁香综合久久韩国| 久久久久久综合网天天| 亚洲av永久综合在线观看尤物| 亚洲人成在久久综合网站| 亚洲综合亚洲国产尤物| 一本一道久久综合久久| 亚洲欧洲国产综合AV无码久久| 精品无码综合一区二区三区| 色综合久久中文字幕网| 伊人久久大香线蕉综合Av| 亚洲国产精品综合久久久| 天天综合色一区二区三区|