M32SPIN0280 是靈動(dòng)微電機(jī)新推出的針對(duì)電機(jī)控制市場的專用 MCU,該系列 MCU 搭載了Arm®Cortex®-M0 內(nèi)核,最高工作頻率可達(dá) 96MHz,內(nèi)置高速存儲(chǔ)器,并集成了 I/O 端口和多種外設(shè)。MM32SPIN0280 系列 MCU 適用于各類電機(jī)應(yīng)用場景,其典型應(yīng)用包括風(fēng)機(jī)、水泵、電動(dòng)自行車、服務(wù)器風(fēng)機(jī) 、吊扇、電動(dòng)工具、工業(yè)變頻、伺服舵機(jī)、空調(diào)風(fēng)機(jī)等。
1該文檔介紹基于靈動(dòng)微電子 32 位微處理器 MM32SPIN0280 的電動(dòng)工具無感方波控制方案, 包括 MM32SPIN0280 芯片資源以及軟件說明。 以下是電動(dòng)工具無感方波控制方案的功能列表:

2. 硬件參考設(shè)計(jì)硬件系統(tǒng)由外部 DC 電源供電, 經(jīng)降壓后得到 12V 給 Gate driver IC 供電以驅(qū)動(dòng)功率開關(guān)管,12V 通過降壓 IC 輸出 5V 給 MM32 SPIN 系列微處理器及其他功能模塊供電。通過外部電路檢測反電動(dòng)勢過零點(diǎn)信號(hào),對(duì)應(yīng)六種不同的逆變器 MOS 管驅(qū)動(dòng)順序,實(shí)現(xiàn) BLDC 電機(jī)的六步換相。采用 0~5V 的電壓輸入做為速度命令的來源, 以控制電機(jī)轉(zhuǎn)速。 用戶轉(zhuǎn)動(dòng)可變電阻旋鈕可以改變此輸入電壓值,實(shí)現(xiàn)無極調(diào)速。圖 2 是 MM32SPIN0280 方案硬件框圖
3. 軟件設(shè)計(jì)3.1 系統(tǒng)時(shí)序設(shè)計(jì)嵌入式程序的設(shè)計(jì)中最重要的就是時(shí)序的設(shè)計(jì),無刷直流電機(jī)矢量控制的執(zhí)行需要在嵌入式系統(tǒng)中的定時(shí)中斷中定期執(zhí)行,這就需要使用 PWM 和 ADC 的同步機(jī)制。本程序中的過零點(diǎn)檢測均在 ADC 中斷中執(zhí)行。ADC 的采樣由 TIM1 的 CCR4 的值一半的附近觸發(fā),如圖所示

從圖中可以看出,在本程序中 ADC 中斷周期和PWM周期一致,過零點(diǎn)的檢測在換相結(jié)束后 的 ADC 中斷中對(duì)非導(dǎo)通相和母線電壓的一半比較完成。


由圖可知,系統(tǒng)上電復(fù)位后,先執(zhí)行一段延時(shí)函數(shù),等待系統(tǒng)穩(wěn)定后開始初始化系統(tǒng)外設(shè) 及參數(shù),最后使能對(duì)應(yīng)的中斷,在 while 循環(huán)中執(zhí)行喂狗及 1ms 一次的慢速環(huán)狀態(tài)機(jī)。 1) ADC 法檢測過零點(diǎn)時(shí),在 ADC1 中斷執(zhí)行過零點(diǎn)檢測,在 TIM2 中執(zhí)行延時(shí)和換相。 2) 比較器法檢測過零點(diǎn)時(shí),在 TIM14 中斷執(zhí)行過零點(diǎn)檢測,并執(zhí)行延時(shí)和換相。
系統(tǒng)驅(qū)動(dòng)層主要包含常用的電機(jī)外設(shè)的配置如下所示:

3.3 軟件流程圖 該案整體軟件流程設(shè)計(jì)如下圖所示,在 Main()函數(shù)主要執(zhí)行低速任務(wù):1ms 時(shí)間片執(zhí)行電 位器調(diào)速和加減速曲線調(diào)節(jié)。ADC 采樣完成中斷里讀取母線電壓、電流、轉(zhuǎn)速命令值以及電機(jī) 三相反電動(dòng)勢電壓并檢測過零點(diǎn)。TIM1 產(chǎn)生 6ch PWM,并啟用 break 中斷。Systick 中斷的定 時(shí)可作為系統(tǒng)時(shí)基。 1) 使用 ADC 法檢測過零點(diǎn)時(shí),將使能 TIM2 中斷執(zhí)行過零點(diǎn)檢測以及延時(shí)換相功能。 2) 使用比較器法檢測過零點(diǎn)時(shí),將會(huì)使能 TIM14 中斷進(jìn)行過零點(diǎn)檢測以及延時(shí)換相功能
|