首頁 > 評測 > 分分鐘帶你入門無刷電機(jī)控制——P-NUCLEO-IHM001套件評測

分分鐘帶你入門無刷電機(jī)控制——P-NUCLEO-IHM001套件評測

  • 作者:劉昆磊
  • 來源:21ic
  • [導(dǎo)讀]
  • 電動機(jī)作為當(dāng)今各個領(lǐng)域的動力主要來源,如今全世界大約二分之一的發(fā)電量被電機(jī)消耗掉。這樣,它的控制能效至關(guān)重要。ST(意法半導(dǎo)體)公司致力于建立高效電機(jī)控制生態(tài)系統(tǒng),不僅有適用于電機(jī)控制的微處理器MCU、電機(jī)驅(qū)動IC,還提供有免費(fèi)且易于使用的電機(jī)控制軟件算法,協(xié)助電機(jī)控制工程師快速實現(xiàn)高效的電機(jī)矢量控制方案。

三、P-NUCLEO-IHM001入門

在ST的生態(tài)系統(tǒng)中,為P-NUCLEO-IHM001套件提供了非常豐富的開發(fā)工具,有ST推出的STM32 CUBEMX配置工具可使用圖形化界面完成STM32微處理器的初始化配置工作,有IAR、MDK、GCC-based IDEs等集成IDE。另外ST還提供HAL軟件庫和標(biāo)準(zhǔn)庫方便用戶快速實現(xiàn)軟件功能。

除此之外,ST公司還針對電機(jī)開發(fā)提供了方便快捷且免費(fèi)的MC 6-STEP LIB軟件庫,還有基于PC的免費(fèi)MC WORKBENCH軟件,可簡化電機(jī)控制固件庫的自定義設(shè)置,幫助用戶設(shè)置不同的電機(jī)。最新算法庫(v4.2)引入一個便利的“Motor Profiler”工具,能夠自動偵測電機(jī)參數(shù),自動配置電機(jī)控制算法庫,做到了一接觸即可進(jìn)行微調(diào)(One-Touch Tuning)的方式。

下面我們分別使用兩種方法來測試一下它們的使用,體驗一下ST提供的軟件庫和工具的方便快捷。

1、基于X-CUBE-SPN7測試

(1)X-CUBE-SPN7軟件包介紹

ST公司提供的X-CUBE-SPN7軟件包是一個基于STM32Cube擴(kuò)展軟件包,程序采用了ST最新推出的HAL庫。軟件庫包含了在STM32運(yùn)行所需的驅(qū)動程序、初始化函數(shù)和控制L6230接口等。軟件包采用了HAL庫,可方便用戶在NUCLEO-F030R8、NUCLEO-F103RB、NUCLEO-F302R8、NUCLEO-F401RE等核心板上遷移而不需要過多的修改程序。軟件包還提供了驅(qū)動P-NUCLEO-IHM001套件的例程。

X-CUBE-SPN7軟件包的下載地址:http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/LN1920/PF262647

分分鐘帶你入門無刷電機(jī)控制——P-NUCLEO-IHM001套件測評8633.png

圖3-1 X-CUBE-SPN7軟件包下載

所述STM32Cube固件的結(jié)構(gòu)可以分成3個層,每層之間相互獨(dú)立,層與層之間通過API接口函數(shù)交互,如下所示:

分分鐘帶你入門無刷電機(jī)控制——P-NUCLEO-IHM001套件測評8713.png

圖3-2 X-CUBE-SPN7軟件包結(jié)構(gòu)

Level 0:這個層又分成了3個子層:

板級支持包(BSP):這個層提供了硬件板卡的內(nèi)部組件和外部資源的API接口,包括音頻編解碼器,IO擴(kuò)展器,觸摸屏,SRAM驅(qū)動器,LCD驅(qū)動器等。這里的組件是相對于外部電路資源,它們都是STM32微控制器的內(nèi)部硬件資源,可以移植到其他開發(fā)板上。而BSP驅(qū)動程序是針對特定電路板的外設(shè)元件的驅(qū)動,比如用戶LED或按鈕,這部分提供的API接口函數(shù)的命名規(guī)則是BSP_FUNCT_Action(),比如:BSP_LED_Init()是開發(fā)板的用戶LED的初始化函數(shù),BSP_LED_On()是點(diǎn)亮LED的函數(shù)。

硬件抽象層(HAL):這一層提供了與低一級的驅(qū)動程序和上層的接口,用戶不需要涉及更多的硬件信息,使用HAL層接口函數(shù)就可以訪問片內(nèi)外設(shè)I2C、SPI和UART等。

Level 1:這一層又被分成2個子層

中間件組件層:該層包含了USB主機(jī)和設(shè)備庫、STemWin、FreeRTOS、FATFS、LwIP、PolarSSL庫等。

基于中間層的實例:每個中間件組件帶有一個或多個實例(也稱為應(yīng)用)來給開發(fā)者參考使用。

Level 2:該層給出了基于中間層的實時和圖形工程實例應(yīng)用。

(2)下面使用IAR軟件和X-CUBE-SPN7軟件包測試

在這里選擇大家熟悉的IAR作為開發(fā)環(huán)境,基于X-CUBE-SPN7軟件包。完成的功能為,P-NUCLEO-IHM001套件上電后,10秒后自動啟動電動機(jī)運(yùn)行,初始速度為2000rpm,運(yùn)行10秒后速度調(diào)整為4000rpm,運(yùn)行10秒后速度調(diào)整為6000rpm,運(yùn)行10秒停止電機(jī),之后重復(fù)上述過程。

為了快速實現(xiàn)功能,測試X-CUBE-SPN7軟件包,我在這里在自帶的實例工程的基礎(chǔ)上修改完成。

首先將X-CUBE-SPN7軟件包解壓,找到P-NUCLEO-IHM001套件的NUCLEO-F302R8核心板例程,位置在STM32CubeExpansion_SPN7_V1.0.0\Projects\Multi\Examples\MotorControl\EWARM\STM32F302R8-Nucleo這個位置,如下圖。

分分鐘帶你入門無刷電機(jī)控制——P-NUCLEO-IHM001套件測評9642.png

圖3-3 X-CUBE-SPN7軟件包例程

打開IAR工程如下圖,可以看到工程文件結(jié)構(gòu)相當(dāng)清楚。

分分鐘帶你入門無刷電機(jī)控制——P-NUCLEO-IHM001套件測評9693.png

圖3-4 X-CUBE-SPN7軟件包例程結(jié)構(gòu)

在使用X-CUBE-SPN7軟件的時候,如下圖的MC_SixStep_param.h文件非常重要,里面保存了基本的梯形6步法電機(jī)控制的參數(shù)設(shè)置。

分分鐘帶你入門無刷電機(jī)控制——P-NUCLEO-IHM001套件測評9792.png

圖3-5 MC_SixStep_param.h文件結(jié)構(gòu)

由上面可以看到,參數(shù)設(shè)置分為2大部分,基本參數(shù)和高級參數(shù)設(shè)置。我們首先來分析一下基本參數(shù)設(shè)置:

分分鐘帶你入門無刷電機(jī)控制——P-NUCLEO-IHM001套件測評9870.png

圖3-6 基本參數(shù)

NUM_POLE_PAIRS表示使用的電機(jī)的極對數(shù),后面的7表示BR2804-1700Kv-1型三相無刷直流電動機(jī)的極對數(shù)是7。

DIRECTION表示電機(jī)的旋轉(zhuǎn)方向,0表示正轉(zhuǎn),1表示反轉(zhuǎn),在這里要注意電機(jī)的接線必須符合前面的介紹。

TARGET_SPEED表示電動機(jī)的初始目標(biāo)速度,3000表示3000rpm。

POTENTIOMETER表示是否使用電位器調(diào)整電機(jī)的速度,0表示禁止,1表示允許,默認(rèn)是允許的。

高級參數(shù)在這里就不過多介紹了。

接下來看一下main_F302.c文件下的主函數(shù)。

首先是系統(tǒng)資源的初始化部分,可以看到,這里初始化時鐘和片內(nèi)外設(shè)資源。

分分鐘帶你入門無刷電機(jī)控制——P-NUCLEO-IHM001套件測評10167.png

圖3-7 主函數(shù)初始化

接下來是調(diào)用梯形6步電機(jī)控制庫的初始化函數(shù),對梯形6步使用到的各種硬件軟件初始化。

分分鐘帶你入門無刷電機(jī)控制——P-NUCLEO-IHM001套件測評10223.png

圖3-8 6步法初始化

下面是主函數(shù)的死循環(huán),在里面有關(guān)于6步發(fā)電機(jī)控制實例的說明和參考API函數(shù),以及給用戶提供的編程位置。

分分鐘帶你入門無刷電機(jī)控制——P-NUCLEO-IHM001套件測評10289.png

圖3-9 主函數(shù)用戶代碼添加位置

我們?yōu)榱藢崿F(xiàn)預(yù)期的功能,修改MC_SixStep_param.h文件中的基本參數(shù)。

分分鐘帶你入門無刷電機(jī)控制——P-NUCLEO-IHM001套件測評10350.png

圖3-10 修改電機(jī)基本參數(shù)

main_F302.c文件中添加自己的程序。

分分鐘帶你入門無刷電機(jī)控制——P-NUCLEO-IHM001套件測評10390.png

圖3-11 添加用戶代碼

之后編譯下載調(diào)試程序,發(fā)現(xiàn)程序完成預(yù)期的效果,上個視頻,大家可以看到,這里使用X-CUBE-SPN7軟件包只需幾步就完成了預(yù)期的目標(biāo)。

視頻3-1 X-CUBE-SPN7軟件包測試

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評論

  • 聯(lián)系人:巧克力娃娃
  • 郵箱:board@21ic.com
  • 我要投稿
  • 歡迎入駐,開放投稿

熱門標(biāo)簽
項目外包 more+