前言
當(dāng)前 STM32 系列豐富多彩,多達(dá) 1000 多種的料號。同時,ST 針對電機(jī) FOC 控制推出了 MC SDK V5.x 的馬達(dá)控制軟件系統(tǒng)。該軟件可以結(jié)合 Cubemx 生成馬達(dá)控制初始化代碼。由于 MC Workbench 軟件芯片選擇有限,不可能包含所有 ST 的產(chǎn)品料號,因此客戶需要使用該軟件時,會發(fā)現(xiàn)備選的芯片料號并未包含在 workbench 中。
本文針對這種場景,詳細(xì)說明如何結(jié)合 CubeMx 與 MC Workbench 生成 workbench 中所未包含芯片的控制程序,客戶通過該說明可以使用全系列 STM32 產(chǎn)品用于電機(jī)的 FOC 控制,為客戶帶來便利。
本文涉及到的開發(fā)板、驅(qū)動板、馬達(dá)分別是:Nucleo-STM32G474RET6 (控制板) + X-Nucleo-IHM16M1(功率板)+GBM2804H-100T(電機(jī))以及 STM32G030K6T6 主芯片等。
1、在 MC Workbench
找不到相應(yīng) MCU 型號的示例-- STM32G030K6T6
1.1 MC Workbench 中 MCU 的選擇
使用 MC Workbench 生成電機(jī)控制工程時,選擇列表中提供的同系列中的 MCU。比如我們需要使用列表中沒有的
STM32G030K6T6 時,可以選擇列表中的 STM32G071RB(LQFP64)。接下來分別配置電機(jī)參數(shù),電源,電壓/電流/溫
度保護(hù),啟動參數(shù),電流采樣等等后,生成電機(jī)控制工程。此步驟可參考 ST 往期的技術(shù)培訓(xùn)。
1.2 STM32CubeMX 中的操作
生成工程后,打開 STM32CubeMX 軟件,選擇最終要使用的 MCU,如 STM32G030K6 來創(chuàng)建新工程。
1.3 導(dǎo)入上面的*.ioc 文件
選擇 File->Import Project,導(dǎo)入之前 1.1 中創(chuàng)建的 ioc 工程。
檢查下導(dǎo)入提示的 Import Status,如有錯誤或者警告,請根據(jù) Error and Warning messages 進(jìn)行調(diào)整。
1.4 檢查并生成工程
可以看到導(dǎo)入后的 STM32CubeMX 項(xiàng)目中已經(jīng)包含有電機(jī)控制部分的 Middleware。
接下來選擇 GENERATE CODE,生成工程。
新工程的文件夾目錄如下,從該文件夾和上面的 IAR 工程空間都可以看到電機(jī)控制部分的 Middleware 已經(jīng)包含進(jìn)來了。
后面的編譯下載工作此處不再贅述。
1.5 注意事項(xiàng)
如果電腦中安裝多個 CubeMX 版本,需要注意在使用過程中必須保持版本的統(tǒng)一,否則導(dǎo)入不成功。
2. 2. 在 MC Workbench
有型號但沒相應(yīng)封裝的 MCU 示例
-- STM32G474RET6
2.1 新建工程
如果有 Demo 板和電機(jī),則選擇對應(yīng)的 Demo 板與電機(jī)型號,如果沒有直接選擇 customer board,這邊我們看到?jīng)]有Nucleo-STM32G474RET6,因此我們選擇 customer board
2.2 配置電機(jī)與功率板相關(guān)配置
分別配置電源,電壓保護(hù),電機(jī),電流采樣,功率管;因?yàn)槲覀兪褂昧爽F(xiàn)成的功率板與電機(jī),這邊我們使用默認(rèn)參數(shù)即可,如果是自己電機(jī)與功率板,請參考 ST 往期的技術(shù)培訓(xùn)。
2.3 芯片選擇與配置
我們看到在 MC workbench 中并沒有STM32G474RET6 這個芯片型號,因此我們需要選擇與之相近的單片機(jī)。
原則是 Flash 大小相同優(yōu)先選擇,型號相似次之,最后兼顧同一系列。這里我們可選擇 STM32G474QE 作為參考型號。
2.4 數(shù)字端口配置
這邊我們使用的功率器件為單一 PWM 與控制使能方式,結(jié)合硬件連接為如下配置:
如果是 PWM 互補(bǔ)的方式則還需要配置下橋控制引腳。
同樣的配置與硬件采樣相關(guān)的模擬端口
2.6 生成代碼
生成 STM32G474QE 的電機(jī)控制代碼,生成的 G474QE.ioc 用于后面 CubeMx 操作。
生成 CubeMx 工程文件
2.7 新建 CubeMx 工程
新建 STM32G474RET6 的工程
2.8 導(dǎo)入上面的 G474QE.ioc 文件
2.9 生成工程
2.10 驗(yàn)證是否正常工作
編譯下載后,使用 Workbench 控制電機(jī)轉(zhuǎn)動
3.傳統(tǒng)的文件拷貝方式示例
-- STM32G474RET6
如果上面兩種簡易方式已經(jīng)可以滿足移植要求了,下面的內(nèi)容可以忽略,當(dāng)然如果需要熟悉各個外設(shè)在電機(jī)控制中具體配置過程,下面內(nèi)容可以做參考
3.1 前期準(zhǔn)備
如 2.x 中所描述的生成 STM32G474QE 的電機(jī)工程,這邊不再贅述。
3.2 新建 CubeMx 工程
新建 STM32G474RET6 的工程
3.3 配置 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 模式,這點(diǎn)區(qū)別于 ADC1的配置
3.4 配置 Timer1
配置 TIM1 輸出管腳
這邊只使用上橋的 PWM 輸出,因此只配置上橋輸出 PWM 波,其中 CH4 用于 ADC 觸發(fā),無外部 PWM 輸出。
配置 TIM1 功能
這邊有些宏定義,可以參考 MC Workbench 生成的工程,注意定義為相同名字
使能 TIM1 的中斷
3.5 配置調(diào)試串口
3.6 使能 STM32G4 特有的 Cordic 外設(shè)
3.7 重新分配管腳
將管腳定義為硬件控制的引腳,增加輸入輸出引腳
3.8 管腳名稱重定義
重新定義管腳名稱,符合 MC Workbench 生成的命名
3.9 規(guī)劃 NVIC 的中斷優(yōu)先級
這邊特別注意中斷優(yōu)先級別的設(shè)定,將影響到程序運(yùn)行。
3.10 不生成電機(jī)相關(guān)的中斷程序
因?yàn)殡姍C(jī)相關(guān)的中斷程序中電機(jī)庫中已經(jīng)有了,這邊不使用 CubeMx 生成中斷代碼
3.11 系統(tǒng)其他的配置
分別配置 RCC 為外部晶振,GPIO 口的默認(rèn)設(shè)置,Sys 的調(diào)試部分
3.12 時鐘配置
這邊我們外部晶振為 24MHz,System 時鐘配置為 170MHz
3.13 生成工程
3.14 對生成工程進(jìn)行修改、添加
拷貝文件
將 MC Workbench 生成的文件夾下的 MCSDK_v5.4.3 拷貝到 CubeMx 直接生成的 G474_MC 文件夾下,另外 Inc 與Src 文件也同時拷貝進(jìn)去,需要選擇不覆蓋同名文件。
打開 CubeMx 生成的工程,在工程中添加 Group 以及增加文件到工程中。
增加 API 以及控制文件到工程中
增加頭文件包含目錄
修改 Main.c 文件
包含頭文件以及增加電機(jī)控制初始化函數(shù)
3.15 驗(yàn)證是否正常工作
編譯下載后,使用 Workbench 控制電機(jī)轉(zhuǎn)動
THE END
審核編輯 :李倩
-
芯片
+關(guān)注
關(guān)注
456文章
51224瀏覽量
427406 -
WORKBENCH
+關(guān)注
關(guān)注
0文章
24瀏覽量
11053 -
控制程序
+關(guān)注
關(guān)注
1文章
51瀏覽量
9074 -
CubeMx
+關(guān)注
關(guān)注
0文章
31瀏覽量
1384
原文標(biāo)題:工程師筆記|使用 CubeMx 生成未在 MC SDK V5.4.4 中包含的芯片的電機(jī)控制代碼
文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論