本發(fā)明涉及一種單片機(jī)技術(shù)領(lǐng)域,尤其涉及一種單片機(jī)輸出互補(bǔ)脈沖調(diào)制波的方法、裝置及設(shè)備。
背景技術(shù):
一般的單片機(jī)內(nèi)部均含有高級定時器,由于高級定時器已配置好多項參數(shù),因此通過簡單的配置即可輸出互補(bǔ)脈沖寬度調(diào)制(pwm)波。每一個高級定時器可以實現(xiàn)輸出三組互補(bǔ)pwm波,該三組互補(bǔ)pwm波可以驅(qū)動一路電機(jī)。由于單片機(jī)中包含的高級定時器數(shù)量有限,因此輸出的互補(bǔ)pwm波通道數(shù)也受到限制。例如,目前的stm32單片機(jī)中只含有兩個高級定時器,其只能輸出六組互補(bǔ)pwm波,因此,一個stm32單片機(jī)最多只能驅(qū)動兩路電機(jī)。
可見,目前的單片機(jī)存在輸出互補(bǔ)pwm波通道數(shù)受高級定時器個數(shù)限制的問題。
技術(shù)實現(xiàn)要素:
基于此,本申請?zhí)峁┮环N單片機(jī)輸出互補(bǔ)pwm波的方法、裝置及設(shè)備用于解決上述單片機(jī)輸出互補(bǔ)pwm波通道數(shù)受高級定時器個數(shù)限制的問題。
一方面,本申請?zhí)峁┮环N單片機(jī)輸出互補(bǔ)pwm波的方法,其中,所述方法包括:
選擇通用定時器及與所述通用定時器連接的偶數(shù)個gpio接口;
配置所述通用定時器及所述gpio接口的工作參數(shù);
使能通用定時器的時鐘以及gpio接口的時鐘;
開啟所述通用定時器按照所配置的工作參數(shù)工作,使所述偶數(shù)個gpio接口中的每兩個接口輸出互補(bǔ)pwm波。
上述的單片機(jī)輸出互補(bǔ)pwm波的方法,通過對通用定時器以及gpio接口的工作參數(shù)進(jìn)行配置,使得單片機(jī)能夠利用通用定時器輸出互補(bǔ)pwm波。因此,為了輸出多組的互補(bǔ)pwm波,可以通過配置更多的通用定時器實現(xiàn),以驅(qū)動更多的電路元件,從而使得單片機(jī)輸出互補(bǔ)pwm波的通道數(shù)不再受高級定時器的數(shù)目限制。
在其中一個實施例中,選擇所述通用定時器的偶數(shù)個gpio接口包括:
根據(jù)需要輸出的互補(bǔ)pwm波的通道數(shù),選取所述通道數(shù)兩倍個數(shù)的gpio接口。
在其中一個實施例中,配置所述通用定時器及所述gpio接口的工作參數(shù)包括:
配置所述通用定時器工作的時鐘頻率;
配置所述通用定時器的計數(shù)模式為向上向下計數(shù)模式;
配置所述通用定時器的輸出模式為pwm模式;
配置所述gpio接口的工作模式為推挽式復(fù)用;
配置所述gpio接口的輸出極性,使所述gpio接口中兩個一組,每組gpio接口輸出的兩路pwm波互補(bǔ);及
根據(jù)所配置的時鐘頻率設(shè)置每個pwm波的重裝載值。
在其中一個實施例中,所述配置通用定時器工作的時鐘頻率包括:配置通用定時器的預(yù)分頻值和時鐘分割值。
在其中一個實施例中,所述配置所述gpio接口的輸出極性,使所述gpio接口中兩個一組,每組gpio接口輸出的兩路pwm波互補(bǔ)包括:
配置每組gpio接口中的第一gpio接口的極性為高,以輸出上橋pwm波;
配置每組gpio接口中的第二gpio接口的極性為低,以輸出下橋pwm波,并且上橋pwm波與下橋pwm波電平相反。
在其中一個實施例中,所述根據(jù)所配置的時鐘頻率設(shè)置每個pwm波的重裝載值的步驟包括:
根據(jù)通用定時器工作的時鐘頻率,設(shè)置上橋pwm波的重裝載值及下橋pwm波的重裝載值,使上橋pwm波與下橋pwm波的重裝載值相差預(yù)設(shè)值,并使上橋pwm波與下橋pwm波的開啟時間間隔預(yù)設(shè)時長。
另一方面,本申請還提供一種單片機(jī)輸出互補(bǔ)pwm波的方法,所述方法應(yīng)用于無人機(jī),其中,所述方法包括:
利用上述所述的方法輸出互補(bǔ)pwm波;
選擇三路輸出的互補(bǔ)pwm波用于驅(qū)動所述無人機(jī)的一電機(jī)。
在其中一個實施例中,所述單片機(jī)為stm32單片機(jī)。
在其中一個實施例中,所述電機(jī)包括以下任一功能的電機(jī):
螺旋槳的驅(qū)動電機(jī);
云臺的驅(qū)動電機(jī)。
另一方面,本申請還提供一種單片機(jī)的互補(bǔ)pwm波輸出裝置,其中,所述裝置包括:
選擇模塊,用于選擇通用定時器及與所述通用定時器連接的偶數(shù)個gpio接口;
工作參數(shù)配置模塊,用于配置所述通用定時器及所述gpio接口的工作參數(shù);
時鐘使能模塊,用于使能通用定時器的時鐘以及gpio接口的時鐘;
啟動模塊,用于開啟所述通用定時器按照所配置的工作參數(shù)工作,使所述偶數(shù)個gpio接口的每兩個接口輸出互補(bǔ)pwm波。
上述的單片機(jī)輸出互補(bǔ)pwm波的裝置,通過對通用定時器以及gpio接口的工作參數(shù)進(jìn)行配置,使得利用通用定時器即可實現(xiàn)輸出互補(bǔ)pwm波。因此,為了輸出多組的互補(bǔ)pwm波,可以通過配置更多的通用定時器實現(xiàn),以驅(qū)動更多的電路元件,從而使得單片機(jī)輸出互補(bǔ)pwm波的通道數(shù)不再受高級定時器的數(shù)目限制。
在其中一個實施例中,所述選擇模塊還用于根據(jù)需要輸出的互補(bǔ)pwm波的通道數(shù),選取所述通道數(shù)兩倍個數(shù)的gpio接口。
作為其中一個實施例,所述工作參數(shù)配置模塊包括:
時鐘頻率配置模塊,用于配置所述通用定時器工作的時鐘頻率;
計數(shù)模式配置模塊,用于配置所述通用定時器的計數(shù)模式為向上向下計數(shù)模式;
輸出模式配置模塊,用于配置所述通用定時器的輸出模式為pwm模式;
工作模式配置模塊,用于配置所述gpio接口的工作模式為推挽式復(fù)用;
輸出極性配置模塊,用于配置所述gpio接口的輸出極性,使所述gpio接口中兩個一組,每組gpio接口輸出的兩路pwm波互補(bǔ);及
重裝載值設(shè)置模塊,用于根據(jù)所設(shè)置的時鐘頻率設(shè)置每個pwm波的重裝載值。
作為其中一個實施例,所述時鐘頻率配置模塊包括:
預(yù)分頻值配置模塊,用于配置通用定時器的預(yù)分頻值;
時鐘分割值配置模塊,用于配置通用定時器的時鐘分割值。
作為其中一個實施例,所述輸出極性配置模塊包括:
第一接口配置模塊,用于配置每組gpio接口中的第一gpio接口的極性為高,以輸出上橋pwm波;
第二接口配置模塊,用于配置每組gpio接口中的第二gpio接口的極性為低,以輸出下橋pwm波,并且上橋pwm波與下橋pwm波電平相反。
作為其中一個實施例,所述重裝載值設(shè)置模塊還用于:
根據(jù)通用定時器工作的時鐘頻率,設(shè)置上橋pwm波的重裝載值及下橋pwm波的重裝載值,使上橋pwm波與下橋pwm波的重裝載值相差預(yù)設(shè)值,并使上橋pwm波與下橋pwm波的開啟時間間隔預(yù)設(shè)時長。
另一方面,本申請還提供一種單片機(jī),其中,包含上述單片機(jī)的互補(bǔ)pwm波輸出裝置。
另一方面,本申請還提供一種無人機(jī),包括電機(jī)及單片機(jī),其中,所述單片機(jī)包含上述單片機(jī)的互補(bǔ)pwm波輸出裝置;
所述電機(jī)與所述裝置相連,每三路所述裝置輸出的互補(bǔ)pwm波,用于驅(qū)動所述無人機(jī)的一電機(jī)。
作為其中一個實施例,所述單片機(jī)為stm32單片機(jī)。
作為其中一個實施例,所述電機(jī)包括以下任一功能的電機(jī):
螺旋槳的驅(qū)動電機(jī);
云臺的驅(qū)動電機(jī)。
上述的單片機(jī)及無人機(jī),通過對單片機(jī)中的通用定時器以及gpio接口的工作參數(shù)進(jìn)行配置,使得利用通用定時器即可實現(xiàn)輸出互補(bǔ)pwm波。因此,為了輸出多組的互補(bǔ)pwm波,可以通過配置單片機(jī)中更多的通用定時器實現(xiàn),以驅(qū)動更多的電路元件,從而使得單片機(jī)輸出互補(bǔ)pwm波的通道數(shù)不再受高級定時器的數(shù)目限制。
附圖說明
圖1為本發(fā)明實施例提供的stm32單片機(jī)最小系統(tǒng)的結(jié)構(gòu)示意圖;
圖2為本發(fā)明實施例提供的單片機(jī)輸出互補(bǔ)pwm波的方法的流程框圖;
圖3為本發(fā)明實施例提供的通用定時器及gpio接口工作參數(shù)配置方法的流程圖;
圖4為本發(fā)明實施例提供的利用單片機(jī)輸出兩組互補(bǔ)pwm波的波形示意圖;
圖5為圖4所示的互補(bǔ)pwm波中死區(qū)的波形示意圖;
圖6為本發(fā)明實施例提供的單片機(jī)的互補(bǔ)pwm波輸出裝置的結(jié)構(gòu)示意圖;
圖7為本發(fā)明實施例提供的工作參數(shù)配置模塊的結(jié)構(gòu)示意圖;
圖8為本發(fā)明實施例提供的利用單片機(jī)驅(qū)動電機(jī)的結(jié)構(gòu)示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
可以理解,本發(fā)明所使用的術(shù)語“第一”、“第二”等可在本文中用于描述各種元件,但這些元件不受這些術(shù)語限制。這些術(shù)語僅用于將第一個元件與另一個元件區(qū)分。
為描述方便,本申請以下實施例僅以stm32單片機(jī)為例對本申請的技術(shù)方案進(jìn)行說明,可以理解的是,本申請并不限定于此。
請參閱圖1,圖1為本發(fā)明一個實施例中采用的stm32單片機(jī)的結(jié)構(gòu)示意圖,該stm32單片機(jī)包括兩個高級定時器(tim1、tim8)及多個通用定時器(tim2-tim5),每個通用定時器可與四個通用輸入輸出(gpio)接口連接(圖1中僅示例性的示出了與tim2及與tim4連接的四個gpio接口,其他通用定時器所連接的gpio接口圖中未示出),每個gpio接口對應(yīng)pa0-pa15以及pb0-pb15中的一個引腳。通過配置通用定時器以及gpio接口的參數(shù),可實現(xiàn)利用該通用定時器輸出互補(bǔ)pwm波。另外,通過對多個通用定時器進(jìn)行配置,并選擇多個gpio接口,可輸出多組互補(bǔ)pwm波,以驅(qū)動不同的電路元件。
請一并參閱圖2,本實施例提供的利用單片機(jī)輸出互補(bǔ)pwm波的方法,包括:
步驟s10,選擇通用定時器及與該通用定時器連接的偶數(shù)個gpio接口。
在單片機(jī)中,一個通用定時器可與多個gpio接口連接,每一個gpio接口可輸出一路pwm波,所以產(chǎn)生一組互補(bǔ)pwm波至少需要兩個gpio接口。因此,可以根據(jù)需要,選擇多組gpio接口,每組gpio接口均包含兩個gpio接口,以輸出多組互補(bǔ)pwm波,且所選擇的gpio接口的數(shù)量始終為偶數(shù)。
步驟s20,配置該通用定時器及該gpio接口的工作參數(shù)。
為了輸出互補(bǔ)pwm波,需要對通用定時器及gpio接口的工作參數(shù)進(jìn)行配置,包括通用定時器工作所需的時鐘頻率、計數(shù)模式、輸出模式等,以及gpio接口的工作模式、輸出極性等。同時,還需要根據(jù)通用定時器的時鐘頻率,對通用定時器的重裝載值進(jìn)行設(shè)置。
步驟s30,使能通用定時器的時鐘以及gpio接口的時鐘。
使能gpio接口的時鐘是gpio口可以被使用的前提,通用定時器時鐘的使能是使通用定時器正常工作的前提,為通用定時器提供基本時鐘信號。
一般通用定時器共用同一個時鐘源,故其輸出pwm時鐘為同步的,如果不是共用同一個時鐘源,則需將通用定時器的時鐘通過外部信號做成同步模式。
步驟s40,開啟該通用定時器按照所配置的工作參數(shù)工作,使該偶數(shù)個gpio接口的每兩個接口輸出互補(bǔ)pwm波。
在對該通用定時器及與該通用定時器連接的gpio接口的工作參數(shù)配置完成以后,開啟該通用定時器,使得每兩個gpio接口,輸出互補(bǔ)pwm波。
本發(fā)明實施例提供的單片機(jī)輸出互補(bǔ)pwm波的方法,通過對通用定時器以及gpio接口的工作參數(shù)進(jìn)行配置,使得利用通用定時器即可輸出互補(bǔ)pwm波。因此,為了輸出多組的互補(bǔ)pwm波,可以通過配置更多的通用定時器實現(xiàn),以驅(qū)動更多的電路元件,從而單片機(jī)輸出的互補(bǔ)pwm波通道數(shù)不再受該單片機(jī)中高級定時器的數(shù)目限制。
作為其中一個實施例,在步驟s10中,選擇該通用定時器的偶數(shù)個gpio接口包括:根據(jù)需要輸出的互補(bǔ)pwm波的通道數(shù),選擇該通道數(shù)兩倍個數(shù)的gpio接口。
具體而言,stm32單片機(jī)中一個通用定時器一般與四個gpio接口連接。當(dāng)需要利用通用定時器產(chǎn)生多組互補(bǔ)pwm波時,可以根據(jù)所需驅(qū)動的電路元件所需要輸出的互補(bǔ)pwm波的通道數(shù),選擇兩倍于pwm波通道數(shù)的gpio接口。所選擇的gpio接口中,每兩個gpio接口輸出一組互補(bǔ)pwm波。
在stm32單片機(jī)中,一個通用定時器一般與四個gpio接口連接,因此每兩個通用定時器即可實現(xiàn)最多四組互補(bǔ)pwm波的輸出。如果產(chǎn)生的互補(bǔ)pwm用于驅(qū)動電機(jī),每一個電機(jī)需要六路pwm波,形成三組互補(bǔ)pwm波,即需要選擇六個gpio接口,因此至少需要對兩個通用定時器進(jìn)行配置。作為一種選擇方式,可以選擇與一個通用定時器連接的三個gpio接口,再選擇與另一個通用定時器連接的三個gpio接口來實現(xiàn)六路pwm波的輸出。另外,作為另外一種選擇方式,也可以選擇與一個通用定時器連接的四個gpio接口,再選擇與另一個通用定時器連接的兩個gpio接口,來實現(xiàn)六路pwm波的輸出,可見兩個通用定時器可產(chǎn)生六路用于驅(qū)動電機(jī)的互補(bǔ)pwm波,當(dāng)然,對gpio接口的選擇方式并不局限于此。
請一并參閱圖3,作為其中一個實施例,在步驟s20中,該配置通用定時器及gpio接口的工作參數(shù)包括以下步驟:
步驟s21,配置通用定時器工作的時鐘頻率;
步驟s22,配置通用定時器的計數(shù)模式為向上向下計數(shù)模式;
步驟s23,配置通用定時器的輸出模式為pwm模式;
步驟s24,配置gpio接口的工作模式為推挽式復(fù)用;
步驟s25,配置gpio接口的輸出極性,使gpio接口中兩個一組,每組gpio接口輸出的兩路pwm波互補(bǔ);以及
步驟s26,根據(jù)所配置的時鐘頻率設(shè)置每個pwm波的重裝載值。
需要說明的是,上述各步驟只是用于說明對通用定時器以及gpio接口進(jìn)行配置的參數(shù)項,并非對具體設(shè)置順序進(jìn)行限定。
在步驟s21中,可以根據(jù)所需驅(qū)動的電路元件的需要,設(shè)置通用定時器工作的時鐘頻率。由于stm32單片機(jī)中的通用定時器可共用一個時鐘源,因此通用定時器可具有相同的時鐘頻率,輸出的pwm波也為同步模式??梢岳斫猓绻鹲tm32單片機(jī)中的通用定時器不是共用同一個時鐘源,則可以將通用定時器通過外部信號配置成同步模式。
在步驟s22中,可通過配置通用定時器的計數(shù)模式為向上向下計數(shù)模式,在pwm波輸出表象中為中心對齊,以實現(xiàn)互補(bǔ)pwm波的輸出。
在步驟s24中,通過對選取的至少兩個gpio接口的輸出極性高低進(jìn)行配置,可使所選取的至少兩個gpio接口輸出的兩個pwm波互補(bǔ)。
在步驟s25中,通過開啟通用定時器重裝載功能,設(shè)置每個pwm波的重裝載值,即可輸出互補(bǔ)pwm波。
本發(fā)明實施例提供的利用stm32單片機(jī)輸出互補(bǔ)pwm波的方法,通過對通用定時器以及gpio接口進(jìn)行配置,使得利用stm32單片機(jī)中的通用定時器即可輸出互補(bǔ)pwm波;同時,通過配置更多的通用定時器,能夠輸出多組的互補(bǔ)pwm波,因此能夠驅(qū)動更多的電路元件,從而不再受高級定時器的數(shù)目限制。
作為其中一個實施例,在步驟s21中,該設(shè)置通用定時器工作的時鐘頻率的步驟包括:配置通用定時器的預(yù)分頻值和時鐘分割值,以設(shè)置通用定時器工作的時鐘頻率。
具體而言,通過配置通用定時器的預(yù)分頻值和時鐘分割值,可以確定通用定時器工作的時鐘頻率。該時鐘分割值是將初始來自于apb1的時鐘源進(jìn)行分頻,然后預(yù)分頻值的實際作用同時鐘分割值一致,但預(yù)分頻值僅可為1、2、4分頻,即對時鐘源進(jìn)行1、2、4分頻;時鐘分割值可為0~65535的任意整數(shù)。經(jīng)過二者共同作用,實現(xiàn)通用定時器的輸出時鐘頻率的配置。比如在stm32f103單片機(jī)中apb1時鐘源為72mhz,若選擇時鐘分割值為0即1分頻,則相當(dāng)于保持時鐘頻率。
作為其中一個實施例,在步驟s25中,對選取的gpio接口的極性進(jìn)行配置,通過配置所述gpio接口的輸出極性,使所述gpio接口中兩個一組,每組gpio接口輸出的兩路pwm波互補(bǔ)包括:
配置每組gpio接口中的第一gpio接口的極性為高,以輸出上橋pwm波;
配置每組gpio接口中的第二gpio接口的極性為低,以輸出下橋pwm波,并且上橋pwm波與下橋pwm波電平相反。
第一gpio接口與第二gpio接口輸出極性的配置高或低,可以理解為預(yù)輸出的pwm占空比對應(yīng)的電平為高或低。例如:設(shè)定極性高,pwm波輸出占空比為20%,則輸出波形20%為高電平,80%為低電平;設(shè)定極性低,pwm波輸出占空比同為20%,則輸出波形20%為低電平,80%為高電平。請一并參閱圖4,在第一組互補(bǔ)pwm波中,高電平占空比為20%,第二組互補(bǔ)pwm波中,高電平占空比為60%。
作為其中一個實施例,在步驟s26中,根據(jù)所配置的時鐘頻率設(shè)置每個pwm波的重裝載值的步驟包括:
根據(jù)通用定時器工作的時鐘頻率,設(shè)置上橋pwm波的重裝載值及下橋pwm波的重裝載值,使上橋pwm波與下橋pwm波的重裝載值相差預(yù)設(shè)值,并使上橋pwm波與下橋pwm波的開啟時間間隔預(yù)設(shè)時長。
請一并參閱圖5,該配置的間隔的預(yù)設(shè)時長為死區(qū)d,死區(qū)d是指在互補(bǔ)pwm波中,上半橋關(guān)斷后,延遲一段時間再打開下半橋;或在下半橋關(guān)斷后,延遲一段時間再打開上半橋,從而避免將電源正負(fù)極直接連接導(dǎo)致功率元件燒毀或損壞電源,這段延遲時間就是死區(qū)。具體的,可將下橋pwm的重加載值高于上橋pwm重加載值預(yù)設(shè)閾值,該預(yù)設(shè)閾值在電機(jī)的應(yīng)用上即為防止上下mos管同時導(dǎo)通致電源短路而加的預(yù)設(shè)時長,該預(yù)設(shè)時長可為0.5us-1.5us中的任意值,比如500ns、1us等,可根據(jù)定時器時鐘頻率進(jìn)行選擇。
進(jìn)一步,本發(fā)明實施例還提供一種無人機(jī)的驅(qū)動方法,將單片機(jī)輸出互補(bǔ)pwm波的方法應(yīng)用于無人機(jī),該方法包括:
利用上述單片機(jī)輸出互補(bǔ)pwm波的方法輸出互補(bǔ)pwm波;
選擇三路輸出的互補(bǔ)pwm波,用于驅(qū)動無人機(jī)中的一個電機(jī)。
無人機(jī)中可采用stm32單片機(jī)。輸出的互補(bǔ)pwm波可用于驅(qū)動無人機(jī)中用于驅(qū)動螺旋槳的驅(qū)動電機(jī),也可用于驅(qū)動云臺的驅(qū)動電機(jī),還可用于驅(qū)動無人機(jī)中其他的驅(qū)動電機(jī)等。
請一并參閱圖6,本發(fā)明進(jìn)一步提供與上述單片機(jī)輸出互補(bǔ)pwm波的方法對應(yīng)的單片機(jī)輸出互補(bǔ)pwm波的裝置1000,該裝置包括:
選擇模塊100,用于選擇通用定時器及與所述通用定時器連接的偶數(shù)個gpio接口;
工作參數(shù)配置模塊200,用于配置所述通用定時器及所述gpio接口的工作參數(shù);
時鐘使能模塊300,用于使能通用定時器的時鐘以及gpio接口的時鐘;以及
啟動模塊400,用于開啟所述通用定時器按照所配置的工作參數(shù)工作,使所述偶數(shù)個gpio接口的每兩個接口輸出互補(bǔ)pwm波。
具體地,該選擇模塊100用于根據(jù)需要,選擇多組gpio接口,每組gpio接口均包含兩個gpio接口,以輸出多個互補(bǔ)pwm波,且所選擇的gpio接口的數(shù)量始終為偶數(shù)。
該工作配置模塊200用于對通用定時器及gpio接口的工作參數(shù)進(jìn)行配置,包括通用定時器工作所需的時鐘頻率、計數(shù)模式、輸出模式等,以及gpio接口的工作模式、輸出極性等。同時,還需要根據(jù)通用定時器的時鐘頻率,對通用定時器的重裝載值進(jìn)行設(shè)置。
該始終使能模塊300用于使能通用定時器時鐘以及gpio接口的時鐘,為通用定時器提供基本時鐘信號。
該啟動模塊400用于在對該通用定時器及與該通用定時器連接的gpio接口的工作參數(shù)配置完成以后,開啟該通用定時器,以使得每兩個gpio接口,輸出互補(bǔ)pwm波。
本發(fā)明實施例提供的單片機(jī)的互補(bǔ)pwm波的輸出裝置,通過選擇模塊、工作參數(shù)配置模塊、時鐘使能模塊、啟動模塊的配置,使得利用單片機(jī)的通用定時器即可輸出互補(bǔ)pwm波。因此,為了輸出多組的互補(bǔ)pwm波,可以通過配置更多的通用定時器實現(xiàn),以驅(qū)動更多的電路元件,從而不再受高級定時器的數(shù)目限制,驅(qū)動方式更加靈活。
作為其中一個實施例,選擇模塊100還用于根據(jù)需要輸出的互補(bǔ)pwm波的通道數(shù),選取所述通道數(shù)兩倍個數(shù)的gpio接口。
請一并參閱圖7,作為其中一個實施例,工作參數(shù)配置模塊200還可包括:
時鐘頻率配置模塊210,用于配置所述通用定時器工作的時鐘頻率;
計數(shù)模式配置模塊220,用于配置所述通用定時器的計數(shù)模式為向上向下計數(shù)模式;
輸出模式配置模塊230,用于配置所述通用定時器的輸出模式為pwm模式;
工作模式配置模塊240,用于配置所述gpio接口的工作模式為推挽式復(fù)用;
輸出極性配置模塊250,用于配置所述gpio接口的輸出極性,使所述gpio接口中兩個一組,每組gpio接口輸出的兩路pwm波互補(bǔ);及
重裝載值設(shè)置模塊260,用于根據(jù)所設(shè)置的時鐘頻率設(shè)置每個pwm波的重裝載值。
該時鐘頻率配置模塊210可以根據(jù)所需驅(qū)動的電路元件的需要,設(shè)置通用定時器工作的時鐘頻率。由于stm32單片機(jī)中的通用定時器可共用一個時鐘源,例如apb1時鐘源,因此通用定時器可具有相同的時鐘頻率,輸出的pwm波也為同步模式。
該輸出極性配置模塊240可以用于通過對選取的至少兩個gpio接口的輸出極性高低進(jìn)行配置,可使所選取的至少兩個gpio接口輸出的兩個pwm波互補(bǔ)。
該重裝載值設(shè)置模塊260可用于根據(jù)所設(shè)置的時鐘頻率設(shè)置每個pwm波的重裝載值,避免將電源正負(fù)極直接連接導(dǎo)致功率元件燒毀或損壞電源,提高該裝置的安全性能。
作為其中一個實施例,該時鐘頻率配置模塊210還包括:
預(yù)分頻值配置模塊211,用于配置通用定時器的預(yù)分頻值;以及
時鐘分割值配置模塊213,用于配置通用定時器的時鐘分割值。
其中,該預(yù)分頻值配置模塊211以及時鐘分割值配置模塊213可用于配置通用定時器的預(yù)分頻值和時鐘分割值,以確定通用定時器工作的時鐘頻率。
作為其中一個實施例,輸出極性配置模塊250包括:
第一接口配置模塊251,用于配置每組gpio接口中的第一gpio接口的極性為高,以輸出上橋pwm波;以及
第二接口配置模塊253,用于配置每組gpio接口中的第二gpio接口的極性為低,以輸出下橋pwm波,并且上橋pwm波與下橋pwm波電平相反。
其中,該第一接口配置模塊251及第二接口配置模塊253通過對gpio接口的極性進(jìn)行配置,實現(xiàn)不同互補(bǔ)pwm波的輸出,從而可用于根據(jù)需要驅(qū)動不同類型的電路元件,使得該互補(bǔ)pwm波的輸出裝置能夠同時驅(qū)動不同種類的電路元件,擴(kuò)展了應(yīng)用范圍。
作為其中一個實施例,重裝載值設(shè)置模塊260還用于根據(jù)通用定時器工作的時鐘頻率,設(shè)置上橋pwm波的重裝載值及下橋pwm波的重裝載值,使上橋pwm波與下橋pwm波的重裝載值相差預(yù)設(shè)值,并使上橋pwm波與下橋pwm波的開啟時間間隔預(yù)設(shè)時長。
該重裝載值設(shè)置模塊260可用于配置重裝載值,實現(xiàn)死區(qū)的配置,從而使得在互補(bǔ)pwm波中,上半橋關(guān)斷后,延遲一段時間再打開下半橋;或在下半橋關(guān)斷后,延遲一段時間再打開上半橋,從而避免將電源正負(fù)極直接連接導(dǎo)致功率元件燒毀或損壞電源。
本發(fā)明實施例還提供一種單片機(jī),該單片機(jī)包括互補(bǔ)pwm波輸出裝置,用于輸出互補(bǔ)pwm波。具體地,該單片機(jī)可包括上述任何一個實施例中所述的互補(bǔ)pwm波輸出裝置。該單片機(jī)能夠通過通用定時器輸出互補(bǔ)pwm波,而且該單片機(jī)中包括多個通用定時器,因此可用于對多個元件進(jìn)行驅(qū)動。
請一并參閱圖8,為利用stm32單片機(jī)驅(qū)動一個電機(jī)的示意圖。所采用的單片機(jī)具體為stm32f103c8t6單片機(jī),采用cortex-m3內(nèi)核f1系列小內(nèi)存處理器,加入電源、時鐘及復(fù)位電路實現(xiàn)最小的工作電路系統(tǒng)。其中,采用通用定時器tim2作為上橋pwm波的輸出,該通用定時器tim2對應(yīng)引腳為pa0、pa1、pa2、pa3四個gpio口,采用的gpio接口為pa0、pa1、pa2;采用通用定時器tim4作為下橋pwm波的輸出,該通用定時器tim4對應(yīng)引腳為pb6、pb7、pb8、pb9四個gpio口,所采用的gpio接口為pb6、pb7、pb8。同時,tim2和tim4共用同一個時鐘源為72mhz,故時鐘同步;配置兩個定時器重加載值為1000,分頻值為36時鐘分割,輸出1k(72m/36/1000=2k,由于向上向下計數(shù)故為1k)頻率的pwm波;將作為下橋的通用定時器tim4的重加載值比通用定時器tim2的重加載值數(shù)值上多2,時鐘頻率為2mhz,2*1/2m=1us,計算可知死區(qū)為1μs。
本發(fā)明實施例還提供一種無人機(jī),該無人機(jī)包括互補(bǔ)pwm波輸出裝置及電機(jī),該電機(jī)與互補(bǔ)pwm波輸出裝置相連,每三路互補(bǔ)pwm波輸出裝置輸出的互補(bǔ)pwm波,用于驅(qū)動所述無人機(jī)的一電機(jī)。具體地,無人機(jī)中可包括多個電機(jī),該互補(bǔ)pwm波輸出裝置可用于驅(qū)動無人機(jī)中的各個電機(jī),無人機(jī)中的電機(jī)與該互補(bǔ)pwm波輸出裝置連接,該互補(bǔ)pwm波輸出裝置輸出的三路互補(bǔ)pwm波,用于驅(qū)動無人機(jī)中的一個電機(jī)。該互補(bǔ)pwm波輸出裝置可用于驅(qū)動無人機(jī)中,螺旋槳的驅(qū)動電機(jī)、云臺的驅(qū)動電機(jī)等中的任一功能的電機(jī),也可用于同時驅(qū)動螺旋槳的驅(qū)動電機(jī)和云臺的驅(qū)動電機(jī),可以根據(jù)實際需要進(jìn)行選擇,使得驅(qū)動方式更加的靈活。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機(jī)程序來指令相關(guān)的硬件來完成,該的程序可存儲于一非易失性計算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,該的非易失性存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(read-onlymemory,rom)等。
以上該實施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡潔,未對上述實施例中的各個技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。
以上該實施例僅表達(dá)了本發(fā)明的幾種實施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。