基於i.MX6UL實現PWM脈衝計數

1.適用範圍

    本文檔介紹了基於i.MX6UL實現PWM脈衝計數的基本實現原理。


2.客戶需求

2.1 基本需求

   基本需求爲在i.MX6UL上利用PWM輸出固定頻率的脈衝波形,並嚴格控制該頻率下的脈衝輸出個數。應用程序調用系統接口設置PWM輸出的頻率和脈衝輸出個數,之後PWM啓動脈衝輸出,當輸出指定的脈衝個數後,產生中斷提示應用程序。此時應用程序再次設置最新的PWM輸出頻率和脈衝個數,循環往復工作。

2.2 參數需求

  • PWM頻率範圍 :最小0Hz,最大25KHz;

  • 計數個數範圍:最小0,最大60000。


3.原理簡介

   由於i.MX6UL的PWM脈衝輸出本身不具備計數功能,所以採用了PWM+EPIT結合使用的方式。

   EPIT(Enhanced Period Interrupt Timer)爲i.MX6UL實現的高精度週期性中斷定時器,其和PWM採用的是同一個時鐘源。

   基本思路爲:當應用程序設置PWM計數值時啓動PWM輸出,將PWM計數值換算爲EPIT的定時週期,並啓動EPIT開始計時,當定時週期到時產生中斷, 在EPIT中斷中禁用PWM輸出,此時PWM脈衝輸出的個數也應該達到理論輸出個數。

3.1 用戶調用流程

   用戶調用流程如圖 3-1所示。

3-1用戶調用流程

3.2 ControlLib庫實現

3.2.1 ControlOpen操作

   打開PWM設備、EPIT設備,設置PWM設備和EPIT工作的默認頻率。將PWM設備與EPIT設備關聯,以使EPIT中斷中可以禁用對應的PWM脈衝輸出。

3.2.2 ControlClose操作

   關閉PWM設備、EPIT設備。

3.2.3 ControlSet操作

   按照如下公式,根據用戶設置的PWM頻率和計數數值,換算爲EPIT定時的數值。



   之後設置PWM工作的頻率,啓動PWM輸出;設置EPIT定時時長,啓動EPIT定時。

3.2.4 ControlEventWait操作

   調用EPIT設備提供的接口,阻塞等待定時器到期後的中斷。

3.3 參數有效範圍

3.3.1 PWM頻率範圍

  • PWM輸出的最大頻率爲50KHz,最小爲25Hz。

  • PWM佔空比默認爲50%,目前暫不支持調整。

3.3.2 計數有效範圍

   PWM脈衝計數理論最大值爲0xFFFFFFFF,但計數值Count實際受以下關係制約:


   Freq爲PWM實際設置的輸出頻率,當Freq減小時,Count最大可計數值隨之減小。


4.測試結果

   當設置50KHz頻率,20次輸出時,示波器抓到如圖 4-1所示波形。

4-1 50KHz,輸出20


    當設置25KHz頻率,33次輸出時,示波器抓到如圖 4-2所示波形。 

4-2 25KHz,輸出33


    當設置10KHz頻率,60次輸出時,示波器抓到如圖 4-3所示波形。

4-3 10KHz,輸出60

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章