三相永磁同步無(wú)刷電機(jī)驅(qū)動(dòng)電路形式有幾種,其中比較高效的是上三下三六路輸出形式。 下圖為其中一種一相的驅(qū)動(dòng)電,其它二路與之相同。其中CH1為高電平導(dǎo)通,CH1N為低電平導(dǎo)通,這樣做是為了避免單片機(jī)在復(fù)位時(shí),驅(qū)動(dòng)引腳同時(shí)為相同電平,導(dǎo)致上下管同時(shí)導(dǎo)通,導(dǎo)致?lián)p壞開(kāi)關(guān)管。 關(guān)于三相六路驅(qū)動(dòng)無(wú)刷電機(jī)的時(shí)序,可以自行百度,本文只討論如何用STM32的高級(jí)定時(shí)器產(chǎn)生控制時(shí)序。 1.設(shè)定定時(shí)器的輸出引腳,用STM32CubeMX。用這個(gè)軟件可以不關(guān)注芯片型號(hào),可移植性很強(qiáng)。配置如下圖. 在引腳配置圖中設(shè)定輸出引腳后,首先要設(shè)定引腳的GPIO狀態(tài)。需設(shè)定為全部輸出管為截止?fàn)顟B(tài),這樣就保證驅(qū)動(dòng)開(kāi)關(guān)管在上電復(fù)位至配置好GPIO期都不會(huì)導(dǎo)通。接下來(lái)要配置PWM輸出,這是驅(qū)動(dòng)時(shí)序的重點(diǎn)。Stm32的高級(jí)定時(shí)器功能很多,使用起來(lái)比一般的定時(shí)器配置要復(fù)雜。用作產(chǎn)生控制無(wú)刷電機(jī)的六步換相時(shí)序,需要用到其中的三個(gè)模塊:時(shí)基產(chǎn)生模塊,PWM信號(hào)生成模塊和三路互補(bǔ)輸出模塊。時(shí)基產(chǎn)生模塊與PWM模塊與其它單機(jī)的定時(shí)器區(qū)別不大,也很容易設(shè)置。三路互補(bǔ)輸出比較復(fù)雜,這里依照我的理解寫(xiě)出來(lái)供參考。先看下輸出電路框圖輸出電路控制位有好幾位,只有使用好它們的組合控制功能,才能輸出想要的時(shí)序。 1.DBTR->MOE 主輸出使能位。當(dāng)為0時(shí),定時(shí)器斷開(kāi)。引腳狀態(tài)為GPIO設(shè)定的狀態(tài)。 設(shè)為1時(shí),輸出才會(huì)接入輸出引腳。這時(shí)的引腳輸出狀態(tài)由比較器的輸出模式,CCER相應(yīng)位的值,以及OSSI位的值決定。還有一種情況是,DBTR->OSSR為1時(shí),PWM信號(hào)已經(jīng)輸出(電機(jī)已經(jīng)啟動(dòng)),這時(shí)MOE由1變0(等同輸入剎車(chē)信號(hào)),這時(shí)先輸出一個(gè)死區(qū)時(shí)間,在死區(qū)時(shí)間的電平為GPIO配置,然后各輸出引腳電平等同CR2的OSIx,OSIxN位的設(shè)置。 2.在MOE=1時(shí),pwm輸出連至輸出引腳,CCRM1和CCRM2中的OCMx[2:0]設(shè)定四種輸出模式(強(qiáng)制高,強(qiáng)制低,PWM模式1,PWM模式2),CCER中的CCxP,CCxNP設(shè)定每一相中上下開(kāi)關(guān)管的驅(qū)動(dòng)輸出極性。CCxE,CCxNE為輸出允許位,設(shè)1接到定時(shí)器輸出,設(shè)0為GPIO設(shè)定的狀態(tài)。如果DBTR->OSSI位為1時(shí),當(dāng)CCxE,CCxNE為0時(shí),引腳輸出為“低電平”經(jīng)過(guò)CCxP,CCxNP相位選擇后的電平。OSSI在一般情況下設(shè)為0。例如:需要在A相的上開(kāi)關(guān)管輸出PWM,C相的下開(kāi)關(guān)管導(dǎo)通,各輸出寄存器配置: CCMR1=0x0060,CCMR2=0x0040,CCER=0X0401.接著MOE位置1。
3.三相同時(shí)換相,使能換相預(yù)裝載位(設(shè)定CR2->CCPC位為1),然后預(yù)先設(shè)定好下相的輸出信號(hào)。在要換相時(shí),設(shè)EGR->COMG位為1,三相導(dǎo)通狀態(tài)可按預(yù)先設(shè)定的同時(shí)轉(zhuǎn)換。
|