您好,登錄后才能下訂單哦!
本文檔介紹了基于i.MX6UL實現(xiàn)PWM脈沖計數(shù)的基本實現(xiàn)原理。
基本需求為在i.MX6UL上利用PWM輸出固定頻率的脈沖波形,并嚴(yán)格控制該頻率下的脈沖輸出個數(shù)。應(yīng)用程序調(diào)用系統(tǒng)接口設(shè)置PWM輸出的頻率和脈沖輸出個數(shù),之后PWM啟動脈沖輸出,當(dāng)輸出指定的脈沖個數(shù)后,產(chǎn)生中斷提示應(yīng)用程序。此時應(yīng)用程序再次設(shè)置最新的PWM輸出頻率和脈沖個數(shù),循環(huán)往復(fù)工作。
PWM頻率范圍 :最小0Hz,最大25KHz;
計數(shù)個數(shù)范圍:最小0,最大60000。
由于i.MX6UL的PWM脈沖輸出本身不具備計數(shù)功能,所以采用了PWM+EPIT結(jié)合使用的方式。
EPIT(Enhanced Period Interrupt Timer)為i.MX6UL實現(xiàn)的高精度周期性中斷定時器,其和PWM采用的是同一個時鐘源。
基本思路為:當(dāng)應(yīng)用程序設(shè)置PWM計數(shù)值時啟動PWM輸出,將PWM計數(shù)值換算為EPIT的定時周期,并啟動EPIT開始計時,當(dāng)定時周期到時產(chǎn)生中斷, 在EPIT中斷中禁用PWM輸出,此時PWM脈沖輸出的個數(shù)也應(yīng)該達(dá)到理論輸出個數(shù)。
用戶調(diào)用流程如圖 3-1所示。
圖 3-1用戶調(diào)用流程
打開PWM設(shè)備、EPIT設(shè)備,設(shè)置PWM設(shè)備和EPIT工作的默認(rèn)頻率。將PWM設(shè)備與EPIT設(shè)備關(guān)聯(lián),以使EPIT中斷中可以禁用對應(yīng)的PWM脈沖輸出。
關(guān)閉PWM設(shè)備、EPIT設(shè)備。
按照如下公式,根據(jù)用戶設(shè)置的PWM頻率和計數(shù)數(shù)值,換算為EPIT定時的數(shù)值。
之后設(shè)置PWM工作的頻率,啟動PWM輸出;設(shè)置EPIT定時時長,啟動EPIT定時。
調(diào)用EPIT設(shè)備提供的接口,阻塞等待定時器到期后的中斷。
PWM輸出的最大頻率為50KHz,最小為25Hz。
PWM占空比默認(rèn)為50%,目前暫不支持調(diào)整。
PWM脈沖計數(shù)理論最大值為0xFFFFFFFF,但計數(shù)值Count實際受以下關(guān)系制約:
Freq為PWM實際設(shè)置的輸出頻率,當(dāng)Freq減小時,Count最大可計數(shù)值隨之減小。
當(dāng)設(shè)置50KHz頻率,20次輸出時,示波器抓到如圖 4-1所示波形。
圖 4-1 50KHz,輸出20次
當(dāng)設(shè)置25KHz頻率,33次輸出時,示波器抓到如圖 4-2所示波形。
圖 4-2 25KHz,輸出33次
當(dāng)設(shè)置10KHz頻率,60次輸出時,示波器抓到如圖 4-3所示波形。
圖 4-3 10KHz,輸出60次
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。