一、MM32SPIN360C 電機(jī)開發(fā)板介紹
簡(jiǎn)介
如圖(1),MM32SPIN360C 電機(jī)開發(fā)板以 Mindmotion 的專用 MCU —— MM32SPIN360C 為主控制器,具備霍爾傳感器檢測(cè)和反電動(dòng)勢(shì)檢測(cè)功能。適用于低壓場(chǎng)合,可廣泛用于工業(yè)或者民用領(lǐng)域的三相無(wú)刷永磁電機(jī)驅(qū)動(dòng)器,如電動(dòng)工具等。
主控制器 MM32SPIN360C 是 ARM Cortex-M0 的 32 位微控制器,內(nèi)置 5V 輸出的 LDO 穩(wěn)壓器(Input : 7~13.5V),內(nèi)置 3 組具有自舉二極管的 N 溝道半橋柵極驅(qū)動(dòng)器(7~48V、1A Sink、1A Source),以及 3 個(gè)比較器和 3 個(gè)運(yùn)算放大器等等。MM32SPIN360C 的具體參數(shù)和用法請(qǐng)參考靈動(dòng)微的官網(wǎng)(https://www.mindmotion.com.cn/)上的數(shù)據(jù)手冊(cè)和用戶手冊(cè)。


圖(1)
電路板圖解
如圖(2)為電路板正面的圖解,開發(fā)板帶有 10KΩ 可調(diào)電阻器,可用于調(diào)節(jié)電機(jī)的轉(zhuǎn)速。帶有 UART/LIN 通訊接口,以及兩種形式的 JTAG/SWD 接口。電源輸入電壓為 12~36V,可以有兩種接入方式(DC-JACK 或者 接線端子)。


圖(2)
原理圖介紹
圖(3)是電機(jī)驅(qū)動(dòng)部分的原理圖。由于 MM32SPIN360C 這顆 MCU 內(nèi)自帶預(yù)驅(qū),所以可以直接驅(qū)動(dòng) MOS 管(PXN012-60QL),簡(jiǎn)化了電機(jī)驅(qū)動(dòng)電路。


圖(3)
圖(4)是反饋電路,可以通過(guò) JP4~JP8,JP10~JP12 選擇霍爾傳感器方式反饋或者是反電動(dòng)勢(shì)方式反饋。如果選擇霍爾傳感器方式,則只需要將 JP6、JP7、JP8 的 1-2 腳短接。


圖(4)
二、 驅(qū)動(dòng)軟件簡(jiǎn)介
啟動(dòng)電機(jī)
此驅(qū)動(dòng)軟件首先通過(guò) 12-bit ADC 采集可調(diào)電阻器的電阻值,確定電機(jī)的轉(zhuǎn)速。當(dāng)電機(jī)速度的 PWM 波形占空比大于 5% 才開始啟動(dòng)電機(jī)。電機(jī)啟動(dòng)之前通過(guò)讀取 U/V/W 的 3 個(gè)霍爾傳感器的值確定電機(jī)轉(zhuǎn)子位置,進(jìn)而根據(jù)轉(zhuǎn)子位置來(lái)確定 U/V/W 的上電順序。
//RM 旋鈕啟動(dòng)與調(diào)速
do {
hwAdcValue = GetAdcAverage(5); // 采集可調(diào)變阻器的電壓值
if (0xffff == hwAdcValue) {
break;
} else {
g_tMotor.tDuty = hwAdcValue * 100 / 4095; // 設(shè)置 PWM 占空比
SET_DUTY_U(g_tMotor.tDuty);
SET_DUTY_V(g_tMotor.tDuty);
SET_DUTY_W(g_tMotor.tDuty);
if ((g_tMotor.tDuty > 5) && (g_tMotor.tMotorState == STOP)) {
g_tMotor.tMotorState = START; // 如果電機(jī)速度的波形占空比大于 5%,則啟動(dòng)電機(jī)
}
}
} while(0);
霍爾傳感器信號(hào)的采集
軟件中包含 3 種霍爾傳感器信號(hào)采集方式:主循環(huán)、EXTI、Timer 。
主循環(huán) 方式是在主函數(shù)的 while(1) 循環(huán)里讀取 U/V/W 這 3 個(gè)霍爾傳感器對(duì)應(yīng)的 MCU 管腳(PA0/PA1/PA2)上的電平, 進(jìn)而驅(qū)動(dòng)換相。
EXTI 方式是設(shè)置 U/V/W 這 3 個(gè)霍爾傳感器對(duì)應(yīng)的 MCU 管腳(PA0/PA1/PA2)為外部中斷,雙邊沿觸發(fā)。當(dāng)任一 HALL 線上電平發(fā)生變化時(shí),都會(huì)有對(duì)應(yīng)中斷線產(chǎn)生中斷,在 EXTI 中斷服務(wù)函數(shù)中進(jìn)行 HALL 引腳電平檢測(cè),進(jìn)而驅(qū)動(dòng)換相。
Timer 方式是設(shè)置 U/V/W 這 3 個(gè)霍爾傳感器對(duì)應(yīng)的 MCU 管腳(PA0/PA1/PA2)為定時(shí)器輸入腳 ( CC1、CC2、CC3)。使用這 3 個(gè)定時(shí)器輸入腳通過(guò)一個(gè)異或門連接到 TI1 輸入通道;當(dāng)捕獲到 CC1、CC2、CC3 上有引腳發(fā)生電平變化時(shí),由于異或門的存在, TI1 上產(chǎn)生一個(gè)跳變沿;經(jīng)過(guò)輸入濾波器和邊沿檢測(cè)器后傳輸給 TI1F_ED ,由于配置了 TIM 的觸發(fā)源為 TI1F_ED 和使能了觸發(fā)中斷,這里會(huì)進(jìn)入觸發(fā)中斷,在觸發(fā)中斷中我們可以判斷霍爾狀態(tài)的有效值,根據(jù)霍爾狀態(tài)的有效值控制電機(jī)對(duì)應(yīng)的繞組供電,進(jìn)而驅(qū)動(dòng)電機(jī)旋轉(zhuǎn)。
這 3 種方式可以通過(guò) hall.h 中的如下定義來(lái)選擇:
#define HALL_POLLING_MODE 0 // 1:采用 主循環(huán) 方式采集霍爾信號(hào)
#define HALL_TIM_MODE 1 // 1:采用 Timer 方式采集霍爾信號(hào)
#define HALL_EXTI_MODE 0 // 1:采用 EXTI 方式采集霍爾信號(hào)
電機(jī)堵轉(zhuǎn)檢測(cè)
驅(qū)動(dòng)軟件中開啟了系統(tǒng)節(jié)拍定時(shí)器(systick),每 1 毫秒中斷一次。此定時(shí)器用于檢測(cè)電機(jī)運(yùn)轉(zhuǎn)時(shí)堵轉(zhuǎn) 2 秒之后,停止電機(jī)運(yùn)行。
void Systick_Callback(void)
{
if(RUN == g_tMotor.tMotorState) {
g_tMotor.tCount.hwTimeCount ++;
if(g_tMotor.tCount.hwTimeCount > 2000) { // 2s超時(shí),電機(jī)卡住不運(yùn)轉(zhuǎn)超過(guò)2s時(shí)間
GATE_DRIVER_DISABLE();
BLDC_UVW_DISABLE();
g_tMotor.tMotorState = STOP;
g_tMotor.tMotorErr = LOCKED_ERR;
g_tMotor.tCount.hwTimeCount = 0;
}
}
}
三、調(diào)試開發(fā)板
接線方法
開發(fā)板、BLDC 電機(jī)、調(diào)試器的接線圖如圖(8)所示。


圖(8)
調(diào)試器的設(shè)置
開發(fā)板采用 SWD 接口調(diào)試。調(diào)試器可以采用靈動(dòng)微官方的調(diào)試下載器,也可以采用適用于 ARM Cortex-M 核的調(diào)試器,比如圖(8)用的就是 WPI 自制的調(diào)試器。
如果使用靈動(dòng)微官方的調(diào)試器,則需要從靈動(dòng)微官網(wǎng)上下載調(diào)試器的驅(qū)動(dòng)(https://www.mindmotion.com.cn/support/development_tools/debug_and_programming_tools/)。 并在 keil 的調(diào)試設(shè)置中,選擇 MM32-LINK Debugger ,如圖(9)所示。


圖(9)
我這里使用的是 WPI 自制的調(diào)試器,這種調(diào)試器免驅(qū),在 keil 的調(diào)試設(shè)置中,選擇 CMSIS-DAP Debugger ,如圖(10)所示。


圖(10)
開發(fā)板上的設(shè)置
開發(fā)板上的跳線設(shè)置如圖(11)所示,紅色標(biāo)記的地方需要接跳線帽,其他位置可以忽略。
?

圖(11)
代碼下載 & 運(yùn)行
將代碼下載到開發(fā)板上之后,旋轉(zhuǎn)可調(diào)電阻器的旋鈕,電機(jī)啟動(dòng)??烧{(diào)變阻器的阻值越大,電機(jī)的轉(zhuǎn)速越高。
四、總結(jié)
MM32SPIN360C 電機(jī)開發(fā)板上的主控制器(MM32SPIN360C)內(nèi)置預(yù)驅(qū),所以 MCU 只需要外接 6 個(gè) MOS 管就可以驅(qū)動(dòng) BLDC 電機(jī),整個(gè)驅(qū)動(dòng)電路比較簡(jiǎn)單。
本文檔介紹了如何使用 MM32SPIN360C 電機(jī)應(yīng)用開發(fā)板驅(qū)動(dòng)低壓有感BLDC 電機(jī)的方法。 由于有霍爾傳感器反饋電機(jī)轉(zhuǎn)子的位置,所以在電機(jī)啟動(dòng)和運(yùn)行的過(guò)程比較平穩(wěn),而且不需要算法,驅(qū)動(dòng)代碼比較簡(jiǎn)單。
此外,此開發(fā)板也可以驅(qū)動(dòng)有感/無(wú)感正弦波電機(jī),這個(gè)驅(qū)動(dòng)的方法將在后面的博文中介紹,敬請(qǐng)期待。
-
單片機(jī)
+關(guān)注
關(guān)注
6067文章
44992瀏覽量
650497 -
電機(jī)控制
+關(guān)注
關(guān)注
3573文章
1969瀏覽量
272054 -
無(wú)刷電機(jī)
+關(guān)注
關(guān)注
60文章
896瀏覽量
47450 -
靈動(dòng)微
+關(guān)注
關(guān)注
4文章
176瀏覽量
22972 -
MM32
+關(guān)注
關(guān)注
1文章
108瀏覽量
1102
發(fā)布評(píng)論請(qǐng)先 登錄
基于靈動(dòng)MM32SPIN560C的低壓無(wú)刷電機(jī)應(yīng)用方案
靈動(dòng)微MM32SPIN560C的低壓無(wú)刷電機(jī)應(yīng)用方案

2019靈動(dòng)微電子MM32 MCU智能之“芯”咖啡沙龍展示方案(一)——基于MM32SPIN360C的手持式吸塵器
靈動(dòng)微課堂 (第113講) | 基于MM32 MCU防疫產(chǎn)品應(yīng)用解決方案分享 —— 便攜冰箱
小編科普一下32位單片機(jī)MM32SPIN360C
關(guān)于電機(jī)控制專用國(guó)產(chǎn)32位單片機(jī)MM32SPIN360C
靈動(dòng)微MM32SPIN25PF產(chǎn)品的特性介紹
靈動(dòng)微MM32SPIN360C獲選2020年度國(guó)產(chǎn)MCU評(píng)選

32位單片機(jī)MM32SPIN360C現(xiàn)貨供應(yīng)
靈動(dòng)微電動(dòng)工具專用單片機(jī)MM32SPIN360C
基于MM32SPIN360C芯片的低壓無(wú)刷電機(jī)設(shè)計(jì)
博文 | 基于靈動(dòng)微 MM32SPIN560C 電機(jī)調(diào)試的方法

方案 | 世平基于靈動(dòng)微 SPIN560C 的低壓無(wú)刷電機(jī)應(yīng)用方案

昂科燒錄器支持MindMotion靈動(dòng)微電子的32位微控制器MM32SPIN360C

評(píng)論