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次