您好,登錄后才能下訂單哦!
本文檔介紹了基于i.MX6UL實現PWM脈沖計數的基本實現原理。
基本需求為在i.MX6UL上利用PWM輸出固定頻率的脈沖波形,并嚴格控制該頻率下的脈沖輸出個數。應用程序調用系統接口設置PWM輸出的頻率和脈沖輸出個數,之后PWM啟動脈沖輸出,當輸出指定的脈沖個數后,產生中斷提示應用程序。此時應用程序再次設置最新的PWM輸出頻率和脈沖個數,循環往復工作。
PWM頻率范圍 :最小0Hz,最大25KHz;
計數個數范圍:最小0,最大60000。
由于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用戶調用流程
打開PWM設備、EPIT設備,設置PWM設備和EPIT工作的默認頻率。將PWM設備與EPIT設備關聯,以使EPIT中斷中可以禁用對應的PWM脈沖輸出。
關閉PWM設備、EPIT設備。
按照如下公式,根據用戶設置的PWM頻率和計數數值,換算為EPIT定時的數值。
之后設置PWM工作的頻率,啟動PWM輸出;設置EPIT定時時長,啟動EPIT定時。
調用EPIT設備提供的接口,阻塞等待定時器到期后的中斷。
PWM輸出的最大頻率為50KHz,最小為25Hz。
PWM占空比默認為50%,目前暫不支持調整。
PWM脈沖計數理論最大值為0xFFFFFFFF,但計數值Count實際受以下關系制約:
Freq為PWM實際設置的輸出頻率,當Freq減小時,Count最大可計數值隨之減小。
當設置50KHz頻率,20次輸出時,示波器抓到如圖 4-1所示波形。
圖 4-1 50KHz,輸出20次
當設置25KHz頻率,33次輸出時,示波器抓到如圖 4-2所示波形。
圖 4-2 25KHz,輸出33次
當設置10KHz頻率,60次輸出時,示波器抓到如圖 4-3所示波形。
圖 4-3 10KHz,輸出60次
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。