關(guān)于STM32的com事件概念
COM事件是用于同時控制所有通道的輸出轉(zhuǎn)換,在電機控制中同時轉(zhuǎn)換所有通道的輸出是十分必要的
比如無刷電機換向時,一般是三相要同時換向的,但是你在軟里設(shè)置換向時肯定是一次只能設(shè)置一相,這就達不到三相同時換向了不。其實簡單的辦法就是啟用 STM32的COM事件,你先逐個設(shè)置好每相的換向(注意:此時雖然設(shè)置了,但實際上并不會進行換向),然后再調(diào)用COM事件,此時,三相將同時換向,就這么來的。阿呆版主,這夠清楚了吧
COM事件發(fā)生在STM32的高級控制定時器(TIM1、TIM8)的“六步PWM的產(chǎn)生”,而6-step PWM用于驅(qū)動三相電機,對應(yīng)著直流無刷電機(BLDC)的六步換相。驅(qū)動三相電機需要什么波形,可參考有關(guān)電機驅(qū)動方面的資料,STM32的資料中沒有介紹這些背景知識。
六步PWM的產(chǎn)生:當(dāng)在一個通道上應(yīng)用了互補輸出時,OCxM、CCxE和CCxNE位的預(yù)裝位有效。在COM通信事件發(fā)生時,預(yù)裝載位被傳送到影子位;因而可以預(yù)先設(shè)置好下一步的配置,并在同一時間更改所有通道的配置。COM事件可以通過硬件(在TRGI的上升沿)設(shè)置或者軟件修改TIM1_EGR寄存其中的COM位來產(chǎn)生。當(dāng)COM事件發(fā)生時會設(shè)置一個標(biāo)志位(TIM1_SR寄存器中的COMIF位),這時如果已設(shè)置了TIM1_DIER寄存器的COMIE位,則產(chǎn)生一個中斷;或者如果已設(shè)置了TIM1_DIER寄存器的COMDE位,則產(chǎn)生一個DMA請求。
評論