工程師筆記:如何結(jié)合STM32CubeMX?與MC Workbench生成修改未包含的芯片程序
所選擇的芯片未包含在MC Workbench中怎么辦?
本文教你使用STM32CubeMX結(jié)合MC Workbench生成FOC代碼
當(dāng)前ST的產(chǎn)品豐富多彩,多達1000多種的料號可供客戶選擇,同時ST針對電機FOC控制,推出了MC SDK V5.x的馬達控制軟件系統(tǒng)。該軟件結(jié)合STM32CubeMX生成馬達控制代碼。由于MC Workbench軟件的芯片選擇有限,不可能包含所有ST的產(chǎn)品料號,因此有些客戶需要使用該軟件時,會發(fā)現(xiàn)選擇的芯片未包含在workbench中。本文針對這種場景,詳細說明如何結(jié)合STM32CubeMX與MC Workbench生成未包含的芯片程序。客戶通過該文檔可以使用全系列ST產(chǎn)品用于電機的FOC控制,為客戶帶來便利。本文使用Nucleo-STM32G474RET6(控制板) + X-Nucleo-IHM16M1(功率板)+ GBM2804H-100T(電機)。
1.1新建工程
如果有Demo板和電機,則選擇對應(yīng)的Demo板與電機型號;如果沒有,直接選擇customer board。這邊我們看到?jīng)]有Nucleo-STM32G474RET6,因此我們選擇customer board。
1.2配置電機與功率板相關(guān)配置
分別配置電源,電壓保護,電機,電流采樣,功率管。因為我們使用了現(xiàn)成的功率板與電機,這邊我們使用默認參數(shù)即可。如果是自己的電機與功率板,請參考ST往期的技術(shù)培訓(xùn)。
1.3芯片選擇與配置
首先我們看到在MC workbench中并沒有STM32G474RET6這個芯片型號,因此我們需要選擇與之相近的單片機。原則是Flash大小相同優(yōu)先選擇,型號相似次之,同一系列最后。這邊我們可以選擇STM32G474QE作為參考型號。
1.4數(shù)字端口配置
這邊我們使用的功率器件為單一PWM與控制使能方式,結(jié)合硬件連接為如下配置。
如果PWM互補的方式則還需要配置下橋控制引腳。
1.5模擬端口配置
同樣的配置與硬件采樣相關(guān)的模擬端口。?
1.6生成代碼
基于STM32CubeMX生成電機控制外設(shè)的初始化代碼
2.1新建STM32CubeMX工程
新建STM32G474RET6的工程
2.2配置ADC
配置ADC1配置引腳
可以直接打開MC Workbench生成的STM32G474QE的*.ioc文件做為參考。
配置ADC1功能
這邊注意ADC1左對齊,觸發(fā)信號為Tim1 Trigger Out Event,只有Inject模式?jīng)]有Regular模式。
使能ADC1/2中斷
配置ADC2引腳與功能
這邊ADC2_IN14是復(fù)用在ADC1_IN14的引腳上。
配置ADC2功能
ADC2有兩個通道用于電壓與溫度傳感采樣,使用Regular模式。用于電流采樣的使用Inject模式,這點區(qū)別于ADC1的配置。
2.3配置Timer1
配置TIM1輸出管腳
這邊只使用上橋的PWM輸出,因此只配置上橋輸出PWM波,其中CH4用于ADC觸發(fā),無外部PWM輸出。
配置TIM1功能
這邊有些宏定義,可以參考MC Workbench生成的工程,注意定義為相同名字。
使能TIM1的中斷
2.4配置調(diào)試串口
2.5使能STM32G4特有的Cordic外設(shè)
2.6重新分配管腳
將管腳定義為硬件控制的引腳,增加輸入輸出引腳。
2.7管腳名稱重定義
重新定義管腳名稱,符合MC Workbench生成的命名。
2.8規(guī)劃NVIC的中斷優(yōu)先級
這邊特別注意中斷優(yōu)先級別的設(shè)定,將影響到程序運行。
2.9不生成電機相關(guān)的中斷程序
因為電機相關(guān)的中斷程序中電機庫中已經(jīng)有了,這邊不使用STM32CubeMX生成中斷代碼。
2.10系統(tǒng)其他的配置
分別配置RCC為外部晶振,GPIO口的默認設(shè)置,Sys的調(diào)試部分。
2.11時鐘配置
這邊我們外部晶振為24MHz,System時鐘配置為170MHz。
2.12生成工程
3.1拷貝文件
將MC Workbench生成的文件夾下的MCSDK_v5.4.3拷貝到STM32CubeMX直接生成的G474_MC文件夾下,另外Inc與Src文件也同時拷貝進去,需要選擇不覆蓋同名文件。
3.2添加電機FOC庫
打開STM32CubeMX生成的工程,在工程中添加Group以及增加文件到工程中。
3.3增加API以及控制文件到工程中
3.4增加頭文件包含目錄
3.5修改Main.c文件
包含頭文件以及增加電機控制初始化函數(shù)。
編譯下載后,使用Workbench控制電機轉(zhuǎn)動。
飛機上一般是什么操作系統(tǒng)?
高速CAN、容錯CAN、LIN總線有什么區(qū)別?
大佬終于把鴻蒙OS講明白了,收藏了!
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!