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

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

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


由圖可知,系統上電復位后,先執行一段延時函數,等待系統穩定后開始初始化系統外設 及參數,最后使能對應的中斷,在 while 循環中執行喂狗及 1ms 一次的慢速環狀態機。 1) ADC 法檢測過零點時,在 ADC1 中斷執行過零點檢測,在 TIM2 中執行延時和換相。 2) 比較器法檢測過零點時,在 TIM14 中斷執行過零點檢測,并執行延時和換相。
系統驅動層主要包含常用的電機外設的配置如下所示:

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