MC33035在直流無刷電機(jī)控制系統(tǒng)中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:安森關(guān)公司的芯片MC33035專門應(yīng)用于帶霍爾位置信號(hào)的直流無刷電機(jī)驅(qū)動(dòng)控制系統(tǒng)。它通過霍爾位置信號(hào)能夠?qū)崿F(xiàn)電子自動(dòng)換向,同時(shí)可作為MPC5604P處理器和MOSFET驅(qū)動(dòng)管的預(yù)驅(qū)動(dòng)IC。MC33035既可以實(shí)現(xiàn)開環(huán)控制,也可以配合電流采集電路實(shí)現(xiàn)電流閉環(huán)控制,以及配合霍爾信號(hào)實(shí)現(xiàn)位置和速度閉環(huán)控制。本文介紹了MC33035在常用的三相直流無刷電機(jī)驅(qū)動(dòng)控制系統(tǒng)中的典型應(yīng)用,給出了驅(qū)動(dòng)電路以及軟件設(shè)計(jì)。
關(guān)鍵詞:MC33035;直流無刷電機(jī);電機(jī)控制驅(qū)動(dòng)
1 MC33035功能介紹
MC33035是安森美公司推出的第二代無刷直流電機(jī)控制專用集成電路,主要組成部分包括轉(zhuǎn)子位置傳感器譯碼電路、帶溫度補(bǔ)償?shù)膬?nèi)部基準(zhǔn)電源、頻率可設(shè)定的鋸齒波振蕩器、誤差放大器、脈寬調(diào)制(PWM)比較器、輸出驅(qū)動(dòng)電路、欠壓封鎖保護(hù)、芯片過熱保護(hù)等故障輸出電路和限流電路等。MC33035的典型控制功能包括PWM速度控制、使能控制(啟動(dòng)或停止)、正反轉(zhuǎn)控制、相位選擇和制動(dòng)控制等。
芯片功能引腳定義如表1所列。
SA、SB、SC為霍爾信號(hào)輸入端,內(nèi)部上拉20 kΩ電阻,外接霍爾傳感器即可。Fwd/Rew、Brake、Output Enable和60°/120°Select分別為方向、制動(dòng)、使能和霍爾相位控制端口,內(nèi)部上拉40 kΩ電阻,MCU控制端只要通過光耦或者三極管開漏接地即可進(jìn)行控制。
如果不采用IC內(nèi)置的硬件速度環(huán),則將PIN12、13短接,通過PIN11端口輸入PWM即可對(duì)電機(jī)進(jìn)行調(diào)節(jié)控制。如果采用IC內(nèi)置的硬件速度環(huán)則將PIN12、13通過R、C連接,通過PIN11端口輸入PWM進(jìn)行電機(jī)控制,HALL換向反饋信號(hào)通過PIN12端口輸入。
2 基于MC33035的直流無刷電機(jī)控制驅(qū)動(dòng)電路設(shè)計(jì)
在本設(shè)計(jì)中主控制器以Freescale公司的基于PowerPC構(gòu)架的32位處理器MPC5604P為例,MPC5604P控制端口通過比較器和MC33035接口,設(shè)計(jì)了基于MC33035直流無刷電機(jī)控制驅(qū)動(dòng)電路。
傳統(tǒng)的直流無刷電機(jī)控制驅(qū)動(dòng)電路采用MPC5604P、預(yù)驅(qū)動(dòng)IC和MOSFET實(shí)現(xiàn),其中包括電壓泵即自舉電路。本設(shè)計(jì)是基于直流無刷電機(jī)控制芯片MC33035實(shí)現(xiàn)的,MC33035實(shí)現(xiàn)預(yù)驅(qū)動(dòng)和電子自動(dòng)換向功能,采用MC33035實(shí)現(xiàn)直流無刷電機(jī)的控制驅(qū)動(dòng)電路,既簡化了電路設(shè)計(jì),同時(shí)也減輕了MPC5604P的運(yùn)算量。MPC5604P和MC33035之間通過光耦或者比較器實(shí)現(xiàn)電平轉(zhuǎn)換。本設(shè)計(jì)采用LM339比較器開漏輸出實(shí)現(xiàn)MPC5604P對(duì)MC33035的開關(guān)控制,電路設(shè)計(jì)原理包括4部分。其中基于MC33035的直流無刷電機(jī)驅(qū)動(dòng)控制電路原理圖如圖1所示。電流采集芯片AD8210可使反饋的電流模擬信號(hào)直接輸入MPC5604P的A/D引腳,其中R2為3 W/5 mΩ的電流采樣電阻,R1和C1組成了MC33035的外部時(shí)鐘輸入電路。可以通過調(diào)節(jié)R和C的值來設(shè)定RC振蕩器頻率。MC33035的Reternce Output提供約6.25 V的輸出電壓,可以為霍爾傳感器供電。SA、SB、SC為霍爾輸入信號(hào),內(nèi)部已經(jīng)連接20 kΩ上拉電阻,所以只需外接霍爾傳感器即可。
電平轉(zhuǎn)換電路如圖2所示。一路霍爾信號(hào)HALL_A經(jīng)過比較器LM339轉(zhuǎn)換為0~5 V的脈沖信號(hào)到MPC5604P,用于電機(jī)故障自檢和電機(jī)轉(zhuǎn)速計(jì)算;另外,MC33035的方向和使能控制端由MPC5604P通過比較器LM339進(jìn)行隔離和控制。DIRMCU和ENABLEMCU的I/O輸出電平與4.5 V的參考電平比較,實(shí)現(xiàn)對(duì)MC33035的DIR和ENABLE端口的開漏控制。
MC33035、LM339、ADS210YRZ和MPC5604P的連接電路如圖3所示。MPC5604P通過PWM輸出控制MC33035下背管控制端占空比,從而實(shí)現(xiàn)對(duì)電機(jī)的轉(zhuǎn)速和輸出扭矩的控制。MPC5604P通過28引腳A/D端口輸入的電流反饋信號(hào)計(jì)算電機(jī)實(shí)際電流,進(jìn)而和目標(biāo)電流比較實(shí)現(xiàn)電流環(huán)的PI調(diào)節(jié)。
3 基于M033035的電機(jī)驅(qū)動(dòng)控制程序設(shè)計(jì)
本設(shè)計(jì)使用了MPC5604P的4個(gè)信號(hào)引腳,開發(fā)和編譯環(huán)境為CodeWarrior for MPC55xx V2.3,涮試下載工具為USB PowerPC Nexus Mul tilink調(diào)試器。
3.1 控制引腳初始化
ENABLE_MCU和DIR_MCU控制引腳的初始化,通過配置SIU.PCR[5]、SIU.PCR[9]寄存器將PIN8、PIN94引腳配置為I/O輸出引腳,即SI U.PCR[5].R=0x0202和SIU.PCR[9].R=0x0202。通過賦值操作SIU.GPDO[5].R=0/1和SIU.GPDO[9].R=0/1,即可使對(duì)應(yīng)的控制引腳輸出高/低電平。
3.2 PWM初始化配置
PWM輸出引腳的初始化配置,第一步通過配置PSMI寄存器將flexpwm0 A[0]分配到PIN53引腳,配置如下:
SIU.PSMI[20].B.PADSEL=1;
第二步通過SIU.PCR寄存器的配置將PINS3多功能引腳配置為PWM輸出,配置如下:
SIU.PCR[58].R=0x0600;//PIN53引腳的交互模式1 FL
下面為flexpwmx模塊的初始化:
通過調(diào)用函數(shù)FlexPWM_Init(0)即可將本設(shè)計(jì)中使用的flexpwm0模塊初始化。接下來使能PWMA,B輸出配置如下:
在控制程序中通過以下函數(shù)調(diào)用、配置數(shù)據(jù)重載、PWM輸出和MC33035使能即可按設(shè)定的方向和占空比驅(qū)動(dòng)電機(jī)。
3.3 A/D初始化
首先通過SIU.PCR[33].R=0x2400操作將PIN28引腳配置為A/D輸入引腳,通過AD8210輸出的模擬信號(hào)CURRENT間接算出通過電機(jī)的電流。本設(shè)計(jì)中使用了MPC5604P片內(nèi)ADC0模塊的AN[2]通道,初始化配置如下:
在本設(shè)計(jì)中通過ADC1的1路硬件監(jiān)控電路對(duì)每次A/D采集的值和預(yù)先設(shè)置的值進(jìn)行比較,當(dāng)采集的值超出通過ADC_0.THRHLR0.R設(shè)定的上下限時(shí)將產(chǎn)生中斷,通過中斷服務(wù)程序?qū)OTOR_CON輸出低電平使驅(qū)動(dòng)IC進(jìn)入Sleep模式即可實(shí)現(xiàn)過流保護(hù)。初始化和中斷服務(wù)函數(shù)注冊(cè)如下:
在SIR服務(wù)函數(shù)中,通過“SIU.GPDO[44].R=0”語句即可關(guān)閉驅(qū)動(dòng)IC。接下來通過發(fā)送A/D通道轉(zhuǎn)換命令并查詢狀態(tài)標(biāo)志位,當(dāng)轉(zhuǎn)換完畢即可通過讀取ADC_0.CDR[0].B.CDATA寄存器得到采集的電壓值,并通過公式IL=Vout/20/R15計(jì)算得到通過電機(jī)的電流,從而實(shí)現(xiàn)電機(jī)的電流閉環(huán)控制。
3.4 eTimer的初始化
首先進(jìn)行賦值操作SIU.PSMI[8].R=0和SIU.PCR[44].R=0x0900;將eTimer0 ECT[5]分配到PIN56引腳,并配置為eTimer輸入功能。然后將eTimer0 ECT[5]初始化為輸入計(jì)數(shù)功能,分別為周期法和頻率法并配合PIT定時(shí)計(jì)數(shù)器實(shí)現(xiàn)電機(jī)轉(zhuǎn)速的計(jì)算和自檢。
頻率法計(jì)數(shù)初始化代碼如下:
頻率法計(jì)數(shù)需要借助于PIT定時(shí)器,通過在設(shè)定時(shí)間內(nèi)讀取脈沖數(shù)計(jì)算電機(jī)轉(zhuǎn)速。該方法適用于電機(jī)空載時(shí)電機(jī)轉(zhuǎn)速計(jì)算。
周期法計(jì)數(shù)初始化代碼如下:
其中周期法對(duì)應(yīng)計(jì)數(shù)通道中斷初始化代碼如下:
INTC_InstallINTCInterruptHandler(ISR_Pulse_Count,162,6);
當(dāng)一個(gè)脈沖周期中斷發(fā)生時(shí)讀取脈沖周期定時(shí)器計(jì)數(shù)值即可計(jì)算出電機(jī)轉(zhuǎn)速。該方法適用于電機(jī)負(fù)載時(shí)電機(jī)轉(zhuǎn)速計(jì)算。
結(jié)語
本文介紹了基于MC33035的直流無刷電機(jī)控制驅(qū)動(dòng)電路典型設(shè)計(jì),外同電路少,無需采用單片機(jī)實(shí)現(xiàn)電機(jī)換向,既簡化了電路設(shè)計(jì)、又減輕了MPC5604P運(yùn)算負(fù)擔(dān),也不需要預(yù)驅(qū)動(dòng)電路和電壓泵自舉電路。該電路具有設(shè)計(jì)簡單、控制方便等優(yōu)點(diǎn)而得到廣泛應(yīng)用。