使用C8051F3xx MCU控制各類電機(jī)的軟件
運(yùn)行在300W以下的小功率電機(jī)被廣泛應(yīng)用于各類應(yīng)用,例如汽車系統(tǒng)、打印機(jī)、復(fù)印機(jī)、碎紙機(jī)、玩具、工廠自動(dòng)化、測(cè)試設(shè)備、機(jī)器人技術(shù)、航空航天與軍工以及其他應(yīng)用。zui流行的小功率電機(jī)類型是DC電機(jī)、無(wú)刷DC電機(jī)和步進(jìn)電機(jī)。電機(jī)的產(chǎn)量大致與功率大小成反比。量產(chǎn)的小功率電機(jī)數(shù)量遠(yuǎn)遠(yuǎn)高于大功率電機(jī)數(shù)量。
于電機(jī)控制的DSP設(shè)計(jì)旨在滿足大型離線式電機(jī)的需求。離線電機(jī)通常為AC感應(yīng)或無(wú)刷DC電機(jī),運(yùn)行在110-480VAC和1/4-100HP。于電機(jī)控制的DSP對(duì)于小功率電機(jī)控制系統(tǒng)來說成本太高。
本文展示了使用C8051F3xx MCU控制各類電機(jī)的軟件示例。雖然這些示例相對(duì)簡(jiǎn)單,但是他們?yōu)楦黝愲姍C(jī)展示了有效的解決方案。一個(gè)傳統(tǒng)的電機(jī)控制系統(tǒng)通常要求額外特性并且具有更高的復(fù)雜度。這些軟件示例能夠作為開發(fā)更復(fù)雜電機(jī)驅(qū)動(dòng)系統(tǒng)的起點(diǎn)。
DC電機(jī)控制
DC電機(jī)在小功率電機(jī)中是zui常見和*的。在本文中,術(shù)語(yǔ)“DC電機(jī)”特指有刷換向永磁DC電機(jī)。
DC電機(jī)的特性使得它成為變速系統(tǒng)中使用的zui簡(jiǎn)單電機(jī)。DC電機(jī)的轉(zhuǎn)矩—速度特性如圖1所示。DC電機(jī)的非負(fù)載速度與電機(jī)電源電壓成線性關(guān)系。驅(qū)動(dòng)穩(wěn)定扭矩負(fù)載、線性負(fù)載或指數(shù)負(fù)載的DC電機(jī)的電壓—速度特性也是連續(xù)的、正斜率的和可預(yù)測(cè)的。因此,在大多數(shù)情況下使用開環(huán)控制是可行的。
簡(jiǎn)單地改變通過電機(jī)的電壓,任何人都能夠控制電機(jī)的速度。PWM能夠用于改變電機(jī)供電電壓。加載到電機(jī)的平均電壓與PWM占空比成正比例關(guān)系(這里忽略電機(jī)自感和不連續(xù)運(yùn)行導(dǎo)致的次要影響)。
使用F3xx MCU提供簡(jiǎn)單的DC電機(jī)速度控制的一個(gè)簡(jiǎn)單的例子。在這個(gè)示例中使用ADC讀取電位器的位置信息,并且使用PCA 8位PWM模式輸出對(duì)應(yīng)的PWM信號(hào)。硬件配置如圖2所示。
單個(gè)N溝道功率MOSFET Q1用于驅(qū)動(dòng)DC電機(jī)。功率MOSFET應(yīng)當(dāng)根據(jù)特定的電機(jī)電壓和電流需求進(jìn)行選擇。單向?qū)ǖ亩O管D1跨連到DC電機(jī)。當(dāng)MOSFET關(guān)閉時(shí),電流通過電機(jī)自感繼續(xù)流動(dòng)。MOSFET漏極電壓將上升到超過電機(jī)電源電壓的一個(gè)二極管壓降。然后,電流通過單向?qū)ǘO管繼續(xù)流動(dòng)。
大多數(shù)低壓電機(jī)驅(qū)動(dòng)電路利用肖特基功率整流器實(shí)現(xiàn)單向?qū)ǘO管。肖特基整流器具有較低的正向電壓和極短的反向恢復(fù)時(shí)間。這兩者在電機(jī)驅(qū)動(dòng)應(yīng)用中都是非常重要的參數(shù)因子。
功率MOSFET由反向門驅(qū)動(dòng)器驅(qū)動(dòng)。F300的端口引腳默認(rèn)配置為輸入引腳,并且使能弱的100k歐姆上拉電阻。在端口被配置而且交叉開關(guān)器和外設(shè)使能之前,端口引腳一直保持高電平。當(dāng)復(fù)位引腳保持低電平時(shí),端口引腳也會(huì)被配置為弱上拉使能的輸入引腳。通過使用反向驅(qū)動(dòng)器,功率晶體管在默認(rèn)狀態(tài)下處于關(guān)閉狀態(tài)。如果使用非反相器驅(qū)動(dòng),10k歐姆下拉電阻應(yīng)當(dāng)連接端口引腳和地之間。
為了使用3V微控制器,門驅(qū)動(dòng)器應(yīng)當(dāng)具有3V兼容的輸入電平臨界值。如果電機(jī)電壓在5V和15V之間,門驅(qū)動(dòng)器能夠直接切斷電機(jī)電源電壓。如果電機(jī)電壓超過15V,分開的門驅(qū)動(dòng)器電源電壓是需要的,通常為5V或者12V。當(dāng)采用低于10V的門驅(qū)動(dòng)器電源電壓時(shí),應(yīng)當(dāng)使用邏輯電平功率MOSFET。
軟件實(shí)現(xiàn)非常簡(jiǎn)單。main()函數(shù)初始化時(shí)鐘、端口和外設(shè),然后進(jìn)入while(1)循環(huán)。在while(1)中使用avgADC()函數(shù)讀取電位器電壓值,然后輸出這個(gè)值到8位PWM。
PORT_Init()函數(shù)配置端口I/O、外設(shè)、使能數(shù)字交叉開關(guān)器。在這里,為8位PWM使能輸出引腳,為門驅(qū)動(dòng)器使能推挽式輸出引腳。
系統(tǒng)時(shí)鐘SYSCLK被配置運(yùn)行在24.5MHzzui大速率,這允許8位PWM可配置為160ns時(shí)鐘周期和24kHz頻率。
ADC0_Init()函數(shù)配置ADC為查詢模式。ADC增益設(shè)定為1,并且為ADC時(shí)鐘選擇1MHz保守頻率。重要的是這里也要初始化電壓參考,配置ADC使用VDD滿量程。
函數(shù)readADC()采用查詢模式讀取電壓值一次,并返回ADC值。函數(shù)avgADC()調(diào)用readADC()函數(shù),并且返回64個(gè)采樣值的平均值。平均化ADC讀數(shù)可以zui小化噪聲影響,減少PWM輸出抖動(dòng)。
當(dāng)使用PCA 8位PWM模式時(shí),在CEX0輸出0x00值對(duì)應(yīng)到100%的占空比,輸出0xFF值對(duì)應(yīng)到0.39%的占空比。0%的占空比可以通過清除PCA0CPM0 SFR中的ECOM0位來實(shí)現(xiàn)。
當(dāng)使用反相驅(qū)動(dòng)器時(shí),這種關(guān)系是相反的。在MOSFET門驅(qū)動(dòng)器上,0x00值對(duì)應(yīng)到0%的占空比,0xFF值對(duì)應(yīng)到99.6%的占空比。為了簡(jiǎn)單起見,本文中所有使用8位PWM的軟件示例都于使用99.6%PWM。
還有一些情況,100%的占空比是可取的。100%占空比將有效地消除開關(guān)損耗。由于MOSFET從不會(huì)關(guān)閉,因此在MOSFET上沒有開關(guān)損耗,在二極管上也沒有損失。*的功率損耗是功率MOSFET中的傳導(dǎo)損耗。如果電機(jī)預(yù)計(jì)在大部分時(shí)間里都處于全速運(yùn)行,那么100%的zui大占空比是合理的。100%的占空比可以通過清除PCA0CPM0 SFR中的ECOM0位來實(shí)現(xiàn)。
帶反轉(zhuǎn)能力的DC電機(jī)
永磁DC電動(dòng)機(jī)通常被用于需要反轉(zhuǎn)電機(jī)方向的應(yīng)用中。為了反轉(zhuǎn)旋轉(zhuǎn)方向,需要反轉(zhuǎn)電機(jī)上電壓的極性。這需要使用H橋。如圖3所示,H橋有4個(gè)晶體管。當(dāng)在正方向驅(qū)動(dòng)電機(jī)時(shí),Q4打開,PWM信號(hào)應(yīng)用于晶體管Q1。在反方向上驅(qū)動(dòng)電機(jī),Q3打開,PWM信號(hào)應(yīng)用于晶體管Q2。在這個(gè)示例中,下部的晶體管被用于PWM速度控制,上部的晶體管被用于轉(zhuǎn)向。使用這種拓?fù)浣Y(jié)構(gòu),可以在兩個(gè)方向上提供變速控制。