王陸林,劉貴如
(奇瑞汽車股份有限公司 汽車工程中央研究院 主動安全技術(shù)研究所,蕪湖 241000)
MC33035是安森美公司推出的第二代無刷直流電機控制專用集成電路,主要組成部分包括轉(zhuǎn)子位置傳感器譯碼電路、帶溫度補償?shù)膬?nèi)部基準電源、頻率可設(shè)定的鋸齒波振蕩器、誤差放大器、脈寬調(diào)制(PWM)比較器、輸出驅(qū)動電路、欠壓封鎖保護、芯片過熱保護等故障輸出電路和限流電路等。MC33035的典型控制功能包括PWM速度控制、使能控制(啟動或停止)、正反轉(zhuǎn)控制、相位選擇和制動控制等。
芯片功能引腳定義如表1所列。
SA、SB、SC為霍爾信號輸入端,內(nèi)部上拉20kΩ電阻,外接霍爾傳感器即可。Fwd/Rew、Brake、Output Enable和60°/120°Select分別為方向、制動、使能和霍爾相位控制端口,內(nèi)部上拉40kΩ電阻,MCU控制端只要通過光耦或者三極管開漏接地即可進行控制。
如果不采用IC內(nèi)置的硬件速度環(huán),則將PIN12、13短接,通過PIN11端口輸入PWM即可對電機進行調(diào)節(jié)控制。如果采用IC內(nèi)置的硬件速度環(huán)則將PIN12、13通過R、C連接,通過PIN11端口輸入PWM進行電機控制,HALL換向反饋信號通過PIN12端口輸入。
表1 MC33035引腳定義
在本設(shè)計中主控制器以Freescale公司的基于Power-PC構(gòu)架的32位處理器MPC5604P為例,MPC5604P控制端口通過比較器和MC33035接口,設(shè)計了基于MC33035直流無刷電機控制驅(qū)動電路。
傳統(tǒng)的直流無刷電機控制驅(qū)動電路采用MPC5604P、預(yù)驅(qū)動IC和MOSFET實現(xiàn),其中包括電壓泵即自舉電路。本設(shè)計是基于直流無刷電機控制芯片MC33035實現(xiàn)的,MC33035實現(xiàn)預(yù)驅(qū)動和電子自動換向功能,采用MC33035實現(xiàn)直流無刷電機的控制驅(qū)動電路,既簡化了電路設(shè)計,同時也減輕了MPC5604P的運算量。MPC5604P和MC33035之間通過光耦或者比較器實現(xiàn)電平轉(zhuǎn)換。本設(shè)計采用LM339比較器開漏輸出實現(xiàn)MPC5604P對MC33035的開關(guān)控制,電路設(shè)計原理包括4部分。其中基于MC33035的直流無刷電機驅(qū)動控制電路原理圖如圖1所示。電流采集芯片AD8210可使反饋的電流模擬信號直接輸入MPC5604P的A/D引腳,其中R2為3W/5mΩ的電流采樣電阻,R1和C1組成了MC33035的外部時鐘輸入電路。可以通過調(diào)節(jié)R和C的值來設(shè)定RC振蕩器頻率。MC33035的Reternce Output提供約6.25V的輸出電壓,可以為霍爾傳感器供電。SA、SB、SC為霍爾輸入信號,內(nèi)部已經(jīng)連接20kΩ上拉電阻,所以只需外接霍爾傳感器即可。
圖1 基于MC33035的直流無刷電機控制驅(qū)動電路原理圖
電平轉(zhuǎn)換電路如圖2所示。一路霍爾信號HALL_A經(jīng)過比較器LM339轉(zhuǎn)換為0~5V的脈沖信號到MPC5604P,用于電機故障自檢和電機轉(zhuǎn)速計算;另外,MC33035的方向和使能控制端由MPC5604P通過比較器LM339進行隔離和控制。DIRMCU和ENABLEMCU的I/O輸出電平與4.5V的參考電平比較,實現(xiàn)對MC33035的DIR和ENABLE端口的開漏控制。
圖2 電平轉(zhuǎn)換電路
MC33035、LM339、AD8210YRZ和 MPC5604P的連接電路如圖3所示。MPC5604P通過PWM輸出控制MC33035下背管控制端占空比,從而實現(xiàn)對電機的轉(zhuǎn)速和輸出扭矩的控制。MPC5604P通過28引腳A/D端口輸入的電流反饋信號計算電機實際電流,進而和目標電流比較實現(xiàn)電流環(huán)的PI調(diào)節(jié)。
圖3 MC33035、LM339、AD8210YRZ和MPC5604P的連接電路
本設(shè)計使用了MPC5604P的4個信號引腳,開發(fā)和編譯環(huán)境為CodeWarrior for MPC55xx V2.3,調(diào)試下載工具為USB PowerPC Nexus Multilink調(diào)試器。
ENABLE_MCU和DIR_MCU控制引腳的初始化,通過配置SIU.PCR[5]、SIU.PCR[9]寄存器將PIN8、PIN94引腳配置為I/O輸出引腳,即SIU.PCR[5].R=0x0202和SIU.PCR[9].R=0x0202。通過賦值操作SIU.GPDO[5].R=0/1和SIU.GPDO[9].R=0/1,即可使對應(yīng)的控制引腳輸出高/低電平。
PWM輸出引腳的初始化配置,第一步通過配置PSMI寄存器將flexpwm0A[0]分配到PIN53引腳,配置如下:
SIU.PSMI[20].B.PADSEL=1;
第二步通過SIU.PCR寄存器的配置將PIN53多功能引腳配置為PWM輸出,配置如下:
下面為flexpwmx模塊的初始化:
通過調(diào)用函數(shù)FlexPWM_Init(0)即可將本設(shè)計中使用的flexpwm0模塊初始化。接下來使能PWMA,B輸出
配置如下:
PWMA輸出函數(shù)如下:
在控制程序中通過以下函數(shù)調(diào)用、配置數(shù)據(jù)重載、PWM輸出和MC33035使能即可按設(shè)定的方向和占空比驅(qū)動電機。
首先通過SIU.PCR[33].R=0x2400操作將PIN28引腳配置為A/D輸入引腳,通過AD8210輸出的模擬信號CURRENT間接算出通過電機的電流。本設(shè)計中使用了MPC5604P片內(nèi)ADC0模塊的AN[2]通道,初始化配置如下:
在本設(shè)計中通過ADC1的1路硬件監(jiān)控電路對每次A/D采集的值和預(yù)先設(shè)置的值進行比較,當采集的值超出通過ADC_0.THRHLR0.R設(shè)定的上下限時將產(chǎn)生中斷,通過中斷服務(wù)程序?qū)OTOR_CON輸出低電平使驅(qū)動IC進入Sleep模式即可實現(xiàn)過流保護。初始化和中斷服務(wù)函數(shù)注冊如下:
在SIR服務(wù)函數(shù)中,通過“SIU.GPDO[44].R=0”語句即可關(guān)閉驅(qū)動IC。接下來通過發(fā)送A/D通道轉(zhuǎn)換命令并查詢狀態(tài)標志位,當轉(zhuǎn)換完畢即可通過讀取ADC_0.CDR[0].B.CDATA寄存器得到采集的電壓值,并通過公式IL=Vout/20/R15計算得到通過電機的電流,從而實現(xiàn)電機的電流閉環(huán)控制。
首先進行賦值操作SIU.PSMI[8].R=0和SIU.PCR[44].R=0x0900;將eTimer0ECT[5]分配到 PIN56引腳,并配置為eTimer輸入功能。然后將eTimer0ECT[5]初始化為輸入計數(shù)功能,分別為周期法和頻率法并配合PIT定時計數(shù)器實現(xiàn)電機轉(zhuǎn)速的計算和自檢。
頻率法計數(shù)初始化代碼如下:
頻率法計數(shù)需要借助于PIT定時器,通過在設(shè)定時間內(nèi)讀取脈沖數(shù)計算電機轉(zhuǎn)速。該方法適用于電機空載時電機轉(zhuǎn)速計算。
周期法計數(shù)初始化代碼如下:
其中周期法對應(yīng)計數(shù)通道中斷初始化代碼如下:
當一個脈沖周期中斷發(fā)生時讀取脈沖周期定時器計數(shù)值即可計算出電機轉(zhuǎn)速。該方法適用于電機負載時電機轉(zhuǎn)速計算。
本文介紹了基于MC33035的直流無刷電機控制驅(qū)動電路典型設(shè)計,外圍電路少,無需采用單片機實現(xiàn)電機換向,既簡化了電路設(shè)計、又減輕了MPC5604P運算負擔,也不需要預(yù)驅(qū)動電路和電壓泵自舉電路。該電路具有設(shè)計簡單、控制方便等優(yōu)點而得到廣泛應(yīng)用。
[1]ON.MC33035,NCV33035Datasheet[EB/OL].[2011-09].http://www.onsemi.com.
[2]韋敏.寧方立.基于專用集成芯片的無刷直流電機控制器[J].機械與電子,2005(2):31-32.
[3]游志宇.基于場效應(yīng)管的直流電機驅(qū)動控制電路設(shè)計[J].國外電子元器件,2008(2):3-4.
[4]胡發(fā)煥.大功率直流電機驅(qū)動電路的設(shè)計[J].機械與電子,2009(10):77-78.
[5]潘建.三相無刷直流電機控制器 MLX90401的原理及應(yīng)用[J].國外電子元器件,2003(2):48-50.