新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > S3C2410中的脈寬調制定時器(PWM)

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

        作者: 時間:2016-11-09 來源:網絡 收藏
        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,則不會有遞減操作,定時器停止。
        第一次啟動定時器的過程如下:

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


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 孙吴县| 汨罗市| 奉节县| 赤城县| 蚌埠市| 仁布县| 淮北市| 云浮市| 宁陕县| 讷河市| 蚌埠市| 田阳县| 三原县| 米脂县| 社会| 桦川县| 东平县| 沂南县| 荆门市| 清丰县| 仙居县| 东城区| 天镇县| 岚皋县| 广安市| 如皋市| 霸州市| 老河口市| 大丰市| 靖西县| 湖州市| 城市| 铁力市| 绥中县| 兴仁县| 格尔木市| 长武县| 通州市| 无为县| 潜江市| 韩城市|