一種突破MCU硬件的限制輸出pwm的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及脈寬調(diào)制領(lǐng)域,尤其涉及一種突破MCU硬件的限制輸出pwm的方法。
【背景技術(shù)】
[0002]目前各種電子設(shè)備中MCU的功能完善,其中就包含pwm輸出功能;其1(^硬件支持pwm的輸出功能,只需要對(duì)當(dāng)前MCU進(jìn)行pwm配置,即可得到相應(yīng)的頻率的pwm輸出。
[0003]但是針對(duì)該MCU選擇的晶振和電子電路限制了該MCU硬件pwm輸出的頻率,為了提高Pwm的輸出的頻率,現(xiàn)有的技術(shù)有三種:
(1)更改硬件電路,將pwm輸出口更改為其他pwm功能輸出口。缺陷是:產(chǎn)品升級(jí)更改電路和軟件同時(shí)進(jìn)行,升級(jí)開(kāi)發(fā)周期長(zhǎng),負(fù)價(jià)值多;
(2)添加高速外部晶振,使pwm輸出頻率增加。缺陷是:需升級(jí)電路和大部分軟件配置,升級(jí)開(kāi)發(fā)周期長(zhǎng),產(chǎn)品成本升高,負(fù)價(jià)值多;
(3)更換更高速M(fèi)CU。缺陷是:產(chǎn)品成本升高,軟件重新開(kāi)發(fā),周期長(zhǎng)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是提供一種突破MCU硬件的限制輸出pwm的方法,在增加硬件裝置和電路結(jié)構(gòu)的情況下提升pwm輸出頻率。
[0005]本發(fā)明的技術(shù)方案是一種突破MCU硬件的限制輸出pwm的方法,包括如下步驟:
51、初始化時(shí)鐘配置,在MCU中配置一個(gè)8位的連續(xù)的時(shí)鐘溢出中斷;
52、正常運(yùn)行,經(jīng)過(guò)設(shè)定的時(shí)間后,出現(xiàn)一個(gè)中斷;以及
53、判斷I/O輸出標(biāo)志是否為真,當(dāng)I/O輸出標(biāo)志為真時(shí),重載pwm中低電平時(shí)間給時(shí)鐘定時(shí)器,I/O輸出標(biāo)志設(shè)為假,I/O 口輸出低電平,然后重復(fù)步驟S2 ;當(dāng)I/O輸出標(biāo)志為假時(shí),重載pwm中高電平時(shí)間給時(shí)鐘定時(shí)器,I/O輸出標(biāo)志設(shè)為真,I/O 口輸出高電平,然后重復(fù)步驟S2。
[0006]本技術(shù)方案采用8位時(shí)鐘定時(shí)器進(jìn)行模擬pwm輸出功能,使得可以將MCU中I/O口可調(diào)占空比個(gè)數(shù)Dc進(jìn)行任意設(shè)定。如將Dc=100,那么Dc〈255 ;使得頻率升高,突破了原有的MCU硬件的pwm輸出功能。產(chǎn)品升級(jí)開(kāi)發(fā)周期短,不需要更改硬件電路、添加高速外部晶振或更換高速M(fèi)CU,降低了成本。
[0007]進(jìn)一步地,步驟S2中,所述設(shè)定的時(shí)間滿足下述公式:
Tx=255*t
公式中,Tx表示距離下一個(gè)中斷的時(shí)間,t表示MCU的指令周期。程序運(yùn)行到時(shí)間Tx時(shí),出現(xiàn)一個(gè)中斷;未運(yùn)行到Tx時(shí),繼續(xù)運(yùn)行。
[0008]進(jìn)一步地,步驟S3中,重載pwm中低電平時(shí)間滿足下述公式:
Tl= (255-Dc+Dd) *t
公式中,Tl表示pwm中低電平時(shí)間,t表示MCU的指令周期,Dc表示可調(diào)占空比個(gè)數(shù),Dd表示占空比對(duì)應(yīng)的數(shù)值。
[0009]進(jìn)一步地,步驟S3中,重載pwm中高電平時(shí)間滿足下述公式:
Th= (255-Dd)*t
公式中,Th表示pwm中高電平時(shí)間,t表示MCU的指令周期,Dd表示占空比對(duì)應(yīng)的數(shù)值。
[0010]進(jìn)一步地,MCU的I/O 口最終輸出穩(wěn)定的周期為T的pwm波形,所述周期T滿足公式:
T=Th+Tl=Dc*t(I)
公式中,T表示pwm的周期,t表示MCU指令周期,Dc表示可調(diào)占空比個(gè)數(shù);
所述pwm波形的占空比為(Dd/Dc) *100% ;
根據(jù)公式(I)可得出,MCU的I/O 口最終輸出pwm波形的頻率滿足公式:
Fpwm=I/T=I/(Dc*t)
公式中,Dc表示可調(diào)占空比個(gè)數(shù),t表示MCU的指令周期
有益效果:通過(guò)采用8位時(shí)鐘定時(shí)器進(jìn)行模擬pwm輸出功能,使得可以將MCU中I/O 口可調(diào)占空比個(gè)數(shù)Dc進(jìn)行任意設(shè)定,使得頻率升高,突破了原有的MCU硬件的pwm輸出功能。產(chǎn)品升級(jí)開(kāi)發(fā)周期短,不需要更改硬件電路、添加高速外部晶振或更換高速M(fèi)CU,降低了成本。
【附圖說(shuō)明】
[0011]圖1是本發(fā)明一種實(shí)施例的工作流程圖。
【具體實(shí)施方式】
[0012]下面結(jié)合附圖,對(duì)本發(fā)明的較優(yōu)的實(shí)施例作進(jìn)一步的詳細(xì)說(shuō)明:
參見(jiàn)圖1,一種突破MCU硬件的限制輸出pwm的方法,包括如下步驟:
51、初始化時(shí)鐘配置,在MCU中配置一個(gè)8位的連續(xù)的時(shí)鐘溢出中斷;
52、正常運(yùn)行,經(jīng)過(guò)設(shè)定的時(shí)間后,出現(xiàn)一個(gè)中斷;以及
53、判斷I/O輸出標(biāo)志是否為真,當(dāng)I/O輸出標(biāo)志為真時(shí),重載pwm中低電平時(shí)間給時(shí)鐘定時(shí)器,I/O輸出標(biāo)志設(shè)為假,I/O 口輸出低電平,然后重復(fù)步驟S2 ;當(dāng)I/O輸出標(biāo)志為假時(shí),重載pwm中高電平時(shí)間給時(shí)鐘定時(shí)器,I/O輸出標(biāo)志設(shè)為真,I/O 口輸出高電平,然后重復(fù)步驟S2。
[0013]步驟S2中,所述設(shè)定的時(shí)間滿足下述公式:
Tx=255*t
公式中,Tx表示距離下一個(gè)中斷的時(shí)間,t表示MCU的指令周期。程序運(yùn)行到時(shí)間Tx時(shí),出現(xiàn)一個(gè)中斷;未運(yùn)行到Tx時(shí),繼續(xù)運(yùn)行。
[0014]步驟S3中,重載pwm中低電平時(shí)間滿足下述公式:
Tl= (255-Dc+Dd) *t
公式中,Tl表示pwm中低電平時(shí)間,t表示MCU的指令周期,Dc表示可調(diào)占空比個(gè)數(shù),Dd表示占空比對(duì)應(yīng)的數(shù)值。
[0015]步驟S3中,重載pwm中高電平時(shí)間滿足下述公式:
Th= (255-Dd)*t公式中,Th表示pwm中高電平時(shí)間,t表示MCU的指令周期,Dd表示占空比對(duì)應(yīng)的數(shù)值。
[0016]MCU的I/O 口最終輸出穩(wěn)定的周期為T的pwm波形,所述周期T滿足公式: T=Th+Tl=Dc*t(I)
公式中,T表示pwm的周期,t表示MCU指令周期,Dc表示可調(diào)占空比個(gè)數(shù);
所述pwm波形的占空比為(Dd/Dc) *100% ;
根據(jù)公式(I)可得出,MCU的I/O 口最終輸出pwm波形的頻率滿足公式:
Fpwm=I/T=I/(Dc*t)
公式中,Dc表示可調(diào)占空比個(gè)數(shù),t表示MCU的指令周期。
[0017]本實(shí)施例中,MCU型號(hào)為MB95F564K,t=0.25,假設(shè)Dd=50,Dc=100,那么p碰波形的占空比為:
50/100*100=50%,
MCU的I/O 口最終輸出pwm波形的頻率為:
(1/100*0.25)MHz=40KHzo
[0018]因此,在軟件中將50賦值給Dd,就可以使該MCU輸出一個(gè)40KHz的占空比為50%的pwm波形。
[0019]本實(shí)施例采用8位時(shí)鐘定時(shí)器進(jìn)行模擬pwm輸出功能,使得可以將MCU中I/O 口可調(diào)占空比個(gè)數(shù)Dc進(jìn)行任意設(shè)定。如將Dc=100,那么Dc〈255 ;使得頻率升高,突破了原有的MCU硬件的pwm輸出功能。產(chǎn)品升級(jí)開(kāi)發(fā)周期短,不需要更改硬件電路、添加高速外部晶振或更換高速M(fèi)CU,降低了成本。
[0020]以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說(shuō)明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡(jiǎn)單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種突破MCU硬件的限制輸出pwm的方法,其特征在于,包括如下步驟: 51、初始化時(shí)鐘配置,在MCU中配置一個(gè)8位的連續(xù)的時(shí)鐘溢出中斷; 52、正常運(yùn)行,經(jīng)過(guò)設(shè)定的時(shí)間后,出現(xiàn)一個(gè)中斷;以及 53、判斷I/O輸出標(biāo)志是否為真,當(dāng)I/O輸出標(biāo)志為真時(shí),重載pwm中低電平時(shí)間給時(shí)鐘定時(shí)器,I/O輸出標(biāo)志設(shè)為假,I/O 口輸出低電平,然后重復(fù)步驟S2 ;當(dāng)I/O輸出標(biāo)志為假時(shí),重載pwm中高電平時(shí)間給時(shí)鐘定時(shí)器,I/O輸出標(biāo)志設(shè)為真,I/O 口輸出高電平,然后重復(fù)步驟S2。
2.根據(jù)權(quán)利要求1所述的突破MCU硬件的限制輸出pwm的方法,其特征在于,步驟S2中,所述設(shè)定的時(shí)間滿足下述公式:Tx=255*t 公式中,Tx表示距離下一個(gè)中斷的時(shí)間,t表示MCU的指令周期。
3.根據(jù)權(quán)利要求2所述的突破MCU硬件的限制輸出pwm的方法,其特征在于,步驟S3中,重載pwm中低電平時(shí)間滿足下述公式:Tl= (255-Dc+Dd) *t 公式中,Tl表示pwm中低電平時(shí)間,t表示MCU的指令周期,Dc表示可調(diào)占空比個(gè)數(shù),Dd表示占空比對(duì)應(yīng)的數(shù)值。
4.根據(jù)權(quán)利要求3所述的突破MCU硬件的限制輸出pwm的方法,其特征在于,步驟S3中,重載pwm中高電平時(shí)間滿足下述公式:Th= (255-Dd)*t 公式中,Th表示pwm中高電平時(shí)間,t表示MCU的指令周期,Dd表示占空比對(duì)應(yīng)的數(shù)值。
5.根據(jù)權(quán)利要求4所述的突破MCU硬件的限制輸出pwm的方法,其特征在于,MCU的I/O 口最終輸出穩(wěn)定的周期為T的pwm波形,所述周期T滿足公式: T=Th+Tl=Dc*t(I) 公式中,T表示pwm的周期,t表示MCU指令周期,Dc表示可調(diào)占空比個(gè)數(shù); 所述pwm波形的占空比為(Dd/Dc) *100% ; 根據(jù)公式(I)可得出,MCU的I/O 口最終輸出pwm波形的頻率滿足公式:Fpwm=I/T=I/(Dc*t) 公式中,Dc表示可調(diào)占空比個(gè)數(shù),t表示MCU的指令周期。
【專利摘要】本發(fā)明公開(kāi)了一種突破MCU硬件的限制輸出pwm的方法,其特征在于,包括如下步驟:S1、初始化時(shí)鐘配置,在MCU中配置一個(gè)8位的連續(xù)的時(shí)鐘溢出中斷;S2、正常運(yùn)行,經(jīng)過(guò)設(shè)定的時(shí)間后,出現(xiàn)一個(gè)中斷;以及S3、判斷I/O輸出標(biāo)志是否為真,當(dāng)I/O輸出標(biāo)志為真時(shí),重載pwm中低電平時(shí)間給時(shí)鐘定時(shí)器,I/O輸出標(biāo)志設(shè)為假,I/O口輸出低電平,然后重復(fù)步驟S2;當(dāng)I/O輸出標(biāo)志為假時(shí),重載pwm中高電平時(shí)間給時(shí)鐘定時(shí)器,I/O輸出標(biāo)志設(shè)為真,I/O口輸出高電平,然后重復(fù)步驟S2。產(chǎn)品升級(jí)開(kāi)發(fā)周期短,不需要更改硬件電路、添加高速外部晶振或更換高速M(fèi)CU,降低了成本。
【IPC分類】G06F1-10, H03K7-08, H03K5-135
【公開(kāi)號(hào)】CN104796118
【申請(qǐng)?zhí)枴緾N201510211221
【發(fā)明人】宋志超, 陳志杰
【申請(qǐng)人】深圳市振邦智能科技有限公司
【公開(kāi)日】2015年7月22日
【申請(qǐng)日】2015年4月29日