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