首頁 > 評測 > 分分鐘帶你入門無刷電機(jī)控制——P-NUCLEO-IHM001套件評測
分分鐘帶你入門無刷電機(jī)控制——P-NUCLEO-IHM001套件評測
- [導(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
圖3-1 X-CUBE-SPN7軟件包下載
所述STM32Cube固件的結(jié)構(gòu)可以分成3個層,每層之間相互獨(dú)立,層與層之間通過API接口函數(shù)交互,如下所示:
圖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這個位置,如下圖。
圖3-3 X-CUBE-SPN7軟件包例程
打開IAR工程如下圖,可以看到工程文件結(jié)構(gòu)相當(dāng)清楚。
圖3-4 X-CUBE-SPN7軟件包例程結(jié)構(gòu)
在使用X-CUBE-SPN7軟件的時候,如下圖的MC_SixStep_param.h文件非常重要,里面保存了基本的梯形6步法電機(jī)控制的參數(shù)設(shè)置。
圖3-5 MC_SixStep_param.h文件結(jié)構(gòu)
由上面可以看到,參數(shù)設(shè)置分為2大部分,基本參數(shù)和高級參數(shù)設(shè)置。我們首先來分析一下基本參數(shù)設(shè)置:
圖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è)資源。
圖3-7 主函數(shù)初始化
接下來是調(diào)用梯形6步電機(jī)控制庫的初始化函數(shù),對梯形6步使用到的各種硬件軟件初始化。
圖3-8 6步法初始化
下面是主函數(shù)的死循環(huán),在里面有關(guān)于6步發(fā)電機(jī)控制實例的說明和參考API函數(shù),以及給用戶提供的編程位置。
圖3-9 主函數(shù)用戶代碼添加位置
我們?yōu)榱藢崿F(xiàn)預(yù)期的功能,修改MC_SixStep_param.h文件中的基本參數(shù)。
圖3-10 修改電機(jī)基本參數(shù)
main_F302.c文件中添加自己的程序。
圖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
- 我要投稿
-
歡迎入駐,開放投稿
-
人均百萬?英偉達(dá)中國員工收入曝光! 2024-08-29
-
《黑神話:悟空》玩家硬盤升級攻略:提升游戲體驗,暢享3A大作 2024-08-29
-
數(shù)睿數(shù)據(jù)參加《系統(tǒng)與軟件工程 低代碼開發(fā)平臺通用技術(shù)要求》國家標(biāo)準(zhǔn)編制 2024-08-29
- NRF52810藍(lán)牙數(shù)字耳機(jī)找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開發(fā)
預(yù)算:¥1100000015小時前
- 12V汽車啟動電源項目BMS設(shè)計
預(yù)算:¥50000023小時前
- 數(shù)據(jù)可視化軟件 開發(fā)
預(yù)算:¥5000023小時前
- PLC項目調(diào)試修改
預(yù)算:¥100001天前
- 起動電機(jī)控制器開發(fā)
預(yù)算:¥1100001天前