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