MC33035在直流無(wú)刷電機(jī)控制系統(tǒng)中的應(yīng)用
在控制程序中通過(guò)以下函數(shù)調(diào)用、配置數(shù)據(jù)重載、PWM輸出和MC33035使能即可按設(shè)定的方向和占空比驅(qū)動(dòng)電機(jī)。
3.3 A/D初始化
首先通過(guò)SIU.PCR[33].R=0x2400操作將PIN28引腳配置為A/D輸入引腳,通過(guò)AD8210輸出的模擬信號(hào)CURRENT間接算出通過(guò)電機(jī)的電流。本設(shè)計(jì)中使用了MPC5604P片內(nèi)ADC0模塊的AN[2]通道,初始化配置如下:
在本設(shè)計(jì)中通過(guò)ADC1的1路硬件監(jiān)控電路對(duì)每次A/D采集的值和預(yù)先設(shè)置的值進(jìn)行比較,當(dāng)采集的值超出通過(guò)ADC_0.THRHLR0.R設(shè)定的上下限時(shí)將產(chǎn)生中斷,通過(guò)中斷服務(wù)程序?qū)OTOR_CON輸出低電平使驅(qū)動(dòng)IC進(jìn)入Sleep模式即可實(shí)現(xiàn)過(guò)流保護(hù)。初始化和中斷服務(wù)函數(shù)注冊(cè)如下:
在SIR服務(wù)函數(shù)中,通過(guò)“SIU.GPDO[44].R=0”語(yǔ)句即可關(guān)閉驅(qū)動(dòng)IC。接下來(lái)通過(guò)發(fā)送A/D通道轉(zhuǎn)換命令并查詢狀態(tài)標(biāo)志位,當(dāng)轉(zhuǎn)換完畢即可通過(guò)讀取ADC_0.CDR[0].B.CDATA寄存器得到采集的電壓值,并通過(guò)公式IL=Vout/20/R15計(jì)算得到通過(guò)電機(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í)器,通過(guò)在設(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é)語(yǔ)
本文介紹了基于MC33035的直流無(wú)刷電機(jī)控制驅(qū)動(dòng)電路典型設(shè)計(jì),外同電路少,無(wú)需采用單片機(jī)實(shí)現(xiàn)電機(jī)換向,既簡(jiǎn)化了電路設(shè)計(jì)、又減輕了MPC5604P運(yùn)算負(fù)擔(dān),也不需要預(yù)驅(qū)動(dòng)電路和電壓泵自舉電路。該電路具有設(shè)計(jì)簡(jiǎn)單、控制方便等優(yōu)點(diǎn)而得到廣泛應(yīng)用。本文引用地址:http://butianyuan.cn/article/161073.htm 脈寬調(diào)制相關(guān)文章:脈寬調(diào)制原理 上拉電阻相關(guān)文章:上拉電阻原理
評(píng)論