《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > MC33035在直流無刷電機控制系統(tǒng)中的應用
MC33035在直流無刷電機控制系統(tǒng)中的應用
摘要: 安森關公司的芯片MC33035專門應用于帶霍爾位置信號的直流無刷電機驅動控制系統(tǒng)。它通過霍爾位置信號能夠實現(xiàn)電子自動換向,同時可作為MPC5604P處理器和MOSFET驅動管的預驅動IC。MC33035既可以實現(xiàn)開環(huán)控制,也可以配合電流采集電路實現(xiàn)電流閉環(huán)控制,以及配合霍爾信號實現(xiàn)位置和速度閉環(huán)控制。本文介紹了MC33035在常用的三相直流無刷電機驅動控制系統(tǒng)中的典型應用,給出了驅動電路以及軟件設計。
Abstract:
Key words :

作者:王陸林,劉貴如

1 MC33035功能介紹

    MC33035是安森美公司推出的第二代無刷直流電機控制專用集成電路,主要組成部分包括轉子位置傳感器譯碼電路、帶溫度補償?shù)膬炔炕鶞孰娫?、頻率可設定的鋸齒波振蕩器、誤差放大器、脈寬調制(PWM)比較器、輸出驅動電路、欠壓封鎖保護、芯片過熱保護等故障輸出電路和限流電路等。MC33035的典型控制功能包括PWM速度控制、使能控制(啟動或停止)、正反轉控制、相位選擇和制動控制等。

    芯片功能引腳定義如表1所列。

a.jpg

    SA、SB、SC為霍爾信號輸入端,內部上拉20 kΩ電阻,外接霍爾傳感器即可。Fwd/Rew、Brake、Output Enable和60°/120°Select分別為方向、制動、使能和霍爾相位控制端口,內部上拉40 kΩ電阻,MCU控制端只要通過光耦或者三極管開漏接地即可進行控制。

    如果不采用IC內置的硬件速度環(huán),則將PIN12、13短接,通過PIN11端口輸入PWM即可對電機進行調節(jié)控制。如果采用IC內置的硬件速度環(huán)則將PIN12、13通過R、C連接,通過PIN11端口輸入PWM進行電機控制,HALL換向反饋信號通過PIN12端口輸入。

2 基于MC33035的直流無刷電機控制驅動電路設計

    在本設計中主控制器以Freescale公司的基于PowerPC構架的32位處理器MPC5604P為例,MPC5604P控制端口通過比較器和MC33035接口,設計了基于MC33035直流無刷電機控制驅動電路。

    傳統(tǒng)的直流無刷電機控制驅動電路采用MPC5604P、預驅動IC和MOSFET實現(xiàn),其中包括電壓泵即自舉電路。本設計是基于直流無刷電機控制芯片MC33035實現(xiàn)的,MC33035實現(xiàn)預驅動和電子自動換向功能,采用MC33035實現(xiàn)直流無刷電機的控制驅動電路,既簡化了電路設計,同時也減輕了MPC5604P的運算量。MPC5604P和MC33035之間通過光耦或者比較器實現(xiàn)電平轉換。本設計采用LM339比較器開漏輸出實現(xiàn)MPC5604P對MC33035的開關控制,電路設計原理包括4部分。其中基于MC33035的直流無刷電機驅動控制電路原理圖如圖1所示。電流采集芯片AD8210可使反饋的電流模擬信號直接輸入MPC5604P的A/D引腳,其中R2為3 W/5 mΩ的電流采樣電阻,R1和C1組成了MC33035的外部時鐘輸入電路??梢酝ㄟ^調節(jié)R和C的值來設定RC振蕩器頻率。MC33035的Reternce Output提供約6.25 V的輸出電壓,可以為霍爾傳感器供電。SA、SB、SC為霍爾輸入信號,內部已經(jīng)連接20 kΩ上拉電阻,所以只需外接霍爾傳感器即可。

c.jpg

電平轉換電路如圖2所示。一路霍爾信號HALL_A經(jīng)過比較器LM339轉換為0~5 V的脈沖信號到MPC5604P,用于電機故障自檢和電機轉速計算;另外,MC33035的方向和使能控制端由MPC5604P通過比較器LM339進行隔離和控制。DIRMCU和ENABLEMCU的I/O輸出電平與4.5 V的參考電平比較,實現(xiàn)對MC33035的DIR和ENABLE端口的開漏控制。

b.jpg

d.jpg

    MC33035、LM339、ADS210YRZ和MPC5604P的連接電路如圖3所示。MPC5604P通過PWM輸出控制MC33035下背管控制端占空比,從而實現(xiàn)對電機的轉速和輸出扭矩的控制。MPC5604P通過28引腳A/D端口輸入的電流反饋信號計算電機實際電流,進而和目標電流比較實現(xiàn)電流環(huán)的PI調節(jié)。

3 基于M033035的電機驅動控制程序設計

    本設計使用了MPC5604P的4個信號引腳,開發(fā)和編譯環(huán)境為CodeWarrior for MPC55xx V2.3,涮試下載工具為USB PowerPC Nexus Mul tilink調試器。

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,即可使對應的控制引腳輸出高/低電平。



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模塊的初始化:

    e.jpg

    通過調用函數(shù)FlexPWM_Init(0)即可將本設計中使用的flexpwm0模塊初始化。接下來使能PWMA,B輸出配置如下:

    f.jpg



在控制程序中通過以下函數(shù)調用、配置數(shù)據(jù)重載、PWM輸出和MC33035使能即可按設定的方向和占空比驅動電機。

    g.jpg

3.3 A/D初始化

    首先通過SIU.PCR[33].R=0x2400操作將PIN28引腳配置為A/D輸入引腳,通過AD8210輸出的模擬信號CURRENT間接算出通過電機的電流。本設計中使用了MPC5604P片內ADC0模塊的AN[2]通道,初始化配置如下:

    h.jpg

    在本設計中通過ADC1的1路硬件監(jiān)控電路對每次A/D采集的值和預先設置的值進行比較,當采集的值超出通過ADC_0.THRHLR0.R設定的上下限時將產(chǎn)生中斷,通過中斷服務程序將MOTOR_CON輸出低電平使驅動IC進入Sleep模式即可實現(xiàn)過流保護。初始化和中斷服務函數(shù)注冊如下:

    i.jpg

    在SIR服務函數(shù)中,通過“SIU.GPDO[44].R=0”語句即可關閉驅動IC。接下來通過發(fā)送A/D通道轉換命令并查詢狀態(tài)標志位,當轉換完畢即可通過讀取ADC_0.CDR[0].B.CDATA寄存器得到采集的電壓值,并通過公式IL=Vout/20/R15計算得到通過電機的電流,從而實現(xiàn)電機的電流閉環(huán)控制。

    k.jpg

3.4 eTimer的初始化

    首先進行賦值操作SIU.PSMI[8].R=0和SIU.PCR[44].R=0x0900;將eTimer0 ECT[5]分配到PIN56引腳,并配置為eTimer輸入功能。然后將eTimer0 ECT[5]初始化為輸入計數(shù)功能,分別為周期法和頻率法并配合PIT定時計數(shù)器實現(xiàn)電機轉速的計算和自檢。

    頻率法計數(shù)初始化代碼如下:

    l.jpg

    m.jpg

    頻率法計數(shù)需要借助于PIT定時器,通過在設定時間內讀取脈沖數(shù)計算電機轉速。該方法適用于電機空載時電機轉速計算。

周期法計數(shù)初始化代碼如下:

    n.jpg

    其中周期法對應計數(shù)通道中斷初始化代碼如下:

    INTC_InstallINTCInterruptHandler(ISR_Pulse_Count,162,6);

    當一個脈沖周期中斷發(fā)生時讀取脈沖周期定時器計數(shù)值即可計算出電機轉速。該方法適用于電機負載時電機轉速計算。

結語

    本文介紹了基于MC33035的直流無刷電機控制驅動電路典型設計,外同電路少,無需采用單片機實現(xiàn)電機換向,既簡化了電路設計、又減輕了MPC5604P運算負擔,也不需要預驅動電路和電壓泵自舉電路。該電路具有設計簡單、控制方便等優(yōu)點而得到廣泛應用。

 

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。