0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何結(jié)合CubeMx與MC Workbench生成workbench中所未包含芯片的控制程序

STM32單片機(jī) ? 來源:STM32單片機(jī) ? 作者:STM32單片機(jī) ? 2022-04-28 14:23 ? 次閱讀

前言

當(dāng)前 STM32 系列豐富多彩,多達(dá) 1000 多種的料號。同時(shí),ST 針對電機(jī) FOC 控制推出了 MC SDK V5.x 的馬達(dá)控制軟件系統(tǒng)。該軟件可以結(jié)合 Cubemx 生成馬達(dá)控制初始化代碼。由于 MC Workbench 軟件芯片選擇有限,不可能包含所有 ST 的產(chǎn)品料號,因此客戶需要使用該軟件時(shí),會發(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ī)控制工程時(shí),選擇列表中提供的同系列中的 MCU。比如我們需要使用列表中沒有的

STM32G030K6T6 時(shí),可以選擇列表中的 STM32G071RB(LQFP64)。接下來分別配置電機(jī)參數(shù),電源,電壓/電流/溫

度保護(hù),啟動參數(shù),電流采樣等等后,生成電機(jī)控制工程。此步驟可參考 ST 往期的技術(shù)培訓(xùn)。

6b3ac8c0-c6ad-11ec-bce3-dac502259ad0.png

1.2 STM32CubeMX 中的操作

生成工程后,打開 STM32CubeMX 軟件,選擇最終要使用的 MCU,如 STM32G030K6 來創(chuàng)建新工程。

6b492c9e-c6ad-11ec-bce3-dac502259ad0.png

1.3 導(dǎo)入上面的*.ioc 文件

選擇 File->Import Project,導(dǎo)入之前 1.1 中創(chuàng)建的 ioc 工程。

6b5b011c-c6ad-11ec-bce3-dac502259ad0.png

6b77a2f4-c6ad-11ec-bce3-dac502259ad0.png

檢查下導(dǎo)入提示的 Import Status,如有錯誤或者警告,請根據(jù) Error and Warning messages 進(jìn)行調(diào)整。

6b948e6e-c6ad-11ec-bce3-dac502259ad0.png

1.4 檢查并生成工程

可以看到導(dǎo)入后的 STM32CubeMX 項(xiàng)目中已經(jīng)包含有電機(jī)控制部分的 Middleware。

6ba4601e-c6ad-11ec-bce3-dac502259ad0.png

接下來選擇 GENERATE CODE,生成工程。

新工程的文件夾目錄如下,從該文件夾和上面的 IAR 工程空間都可以看到電機(jī)控制部分的 Middleware 已經(jīng)包含進(jìn)來了。

后面的編譯下載工作此處不再贅述。

6bc8b52c-c6ad-11ec-bce3-dac502259ad0.png

1.5 注意事項(xiàng)

如果電腦中安裝多個(gè) 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

6be0052e-c6ad-11ec-bce3-dac502259ad0.png

2.2 配置電機(jī)與功率板相關(guān)配置

分別配置電源,電壓保護(hù),電機(jī),電流采樣,功率管;因?yàn)槲覀兪褂昧爽F(xiàn)成的功率板與電機(jī),這邊我們使用默認(rèn)參數(shù)即可,如果是自己電機(jī)與功率板,請參考 ST 往期的技術(shù)培訓(xùn)。

6c003c86-c6ad-11ec-bce3-dac502259ad0.png

2.3 芯片選擇與配置

我們看到在 MC workbench 中并沒有STM32G474RET6 這個(gè)芯片型號,因此我們需要選擇與之相近的單片機(jī)

原則是 Flash 大小相同優(yōu)先選擇,型號相似次之,最后兼顧同一系列。這里我們可選擇 STM32G474QE 作為參考型號。

6c1e7eb2-c6ad-11ec-bce3-dac502259ad0.png

2.4 數(shù)字端口配置

這邊我們使用的功率器件為單一 PWM 與控制使能方式,結(jié)合硬件連接為如下配置:

如果是 PWM 互補(bǔ)的方式則還需要配置下橋控制引腳。

6c2e324e-c6ad-11ec-bce3-dac502259ad0.png

2.5 模擬端口配置

同樣的配置與硬件采樣相關(guān)的模擬端口

6c3fcbf8-c6ad-11ec-bce3-dac502259ad0.png

2.6 生成代碼

生成 STM32G474QE 的電機(jī)控制代碼,生成的 G474QE.ioc 用于后面 CubeMx 操作。

6c5181c2-c6ad-11ec-bce3-dac502259ad0.png

生成 CubeMx 工程文件

6c72bd60-c6ad-11ec-bce3-dac502259ad0.png

2.7 新建 CubeMx 工程

新建 STM32G474RET6 的工程

6c8c8c36-c6ad-11ec-bce3-dac502259ad0.png

2.8 導(dǎo)入上面的 G474QE.ioc 文件

6cab36a4-c6ad-11ec-bce3-dac502259ad0.png

6cc66ae6-c6ad-11ec-bce3-dac502259ad0.png

2.9 生成工程

6ce76ffc-c6ad-11ec-bce3-dac502259ad0.png

2.10 驗(yàn)證是否正常工作

編譯下載后,使用 Workbench 控制電機(jī)轉(zhuǎn)動

6cfde3ea-c6ad-11ec-bce3-dac502259ad0.png

3.傳統(tǒng)的文件拷貝方式示例

-- STM32G474RET6

如果上面兩種簡易方式已經(jīng)可以滿足移植要求了,下面的內(nèi)容可以忽略,當(dāng)然如果需要熟悉各個(gè)外設(shè)在電機(jī)控制中具體配置過程,下面內(nèi)容可以做參考

3.1 前期準(zhǔn)備

如 2.x 中所描述的生成 STM32G474QE 的電機(jī)工程,這邊不再贅述。

3.2 新建 CubeMx 工程

新建 STM32G474RET6 的工程

6d140094-c6ad-11ec-bce3-dac502259ad0.png

3.3 配置 ADC

配置 ADC1 配置引腳

可以直接打開 MC Workbench 生成的 STM32G474QE 的*.ioc 文件做為參考

6d2bc382-c6ad-11ec-bce3-dac502259ad0.png

配置 ADC1 配置功能

這邊注意 ADC1 左對齊,觸發(fā)信號Tim1 Trigger Out Event,只有 Inject 模式?jīng)]有 Regular 模式

6d395e2a-c6ad-11ec-bce3-dac502259ad0.png

使能 ADC1/2 中斷

6d47d5d6-c6ad-11ec-bce3-dac502259ad0.png

配置 ADC2 引腳與功能

這邊 ADC2_IN14 是復(fù)用在 ADC1_IN14 的引腳上

6d617b44-c6ad-11ec-bce3-dac502259ad0.png

配置 ADC2 功能

ADC2 有兩個(gè)通道用于電壓與溫度傳感采樣,使用 Regular 模式,用于電流采樣的使用 Inject 模式,這點(diǎn)區(qū)別于 ADC1的配置

6d7ef37c-c6ad-11ec-bce3-dac502259ad0.png

3.4 配置 Timer1

配置 TIM1 輸出管腳

這邊只使用上橋的 PWM 輸出,因此只配置上橋輸出 PWM 波,其中 CH4 用于 ADC 觸發(fā),無外部 PWM 輸出。

6d9b8366-c6ad-11ec-bce3-dac502259ad0.png

配置 TIM1 功能

這邊有些宏定義,可以參考 MC Workbench 生成的工程,注意定義為相同名字

6db1be56-c6ad-11ec-bce3-dac502259ad0.png

使能 TIM1 的中斷

6dccff40-c6ad-11ec-bce3-dac502259ad0.png

3.5 配置調(diào)試串口

6df1499a-c6ad-11ec-bce3-dac502259ad0.png

3.6 使能 STM32G4 特有的 Cordic 外設(shè)

6e0b1028-c6ad-11ec-bce3-dac502259ad0.png

3.7 重新分配管腳

將管腳定義為硬件控制的引腳,增加輸入輸出引腳

6e1e5c82-c6ad-11ec-bce3-dac502259ad0.png

3.8 管腳名稱重定義

重新定義管腳名稱,符合 MC Workbench 生成的命名

6e3e95d8-c6ad-11ec-bce3-dac502259ad0.png

3.9 規(guī)劃 NVIC 的中斷優(yōu)先級

這邊特別注意中斷優(yōu)先級別的設(shè)定,將影響到程序運(yùn)行。

6e58c64c-c6ad-11ec-bce3-dac502259ad0.png

3.10 不生成電機(jī)相關(guān)的中斷程序

因?yàn)殡姍C(jī)相關(guān)的中斷程序中電機(jī)庫中已經(jīng)有了,這邊不使用 CubeMx 生成中斷代碼

6e833e36-c6ad-11ec-bce3-dac502259ad0.png

3.11 系統(tǒng)其他的配置

分別配置 RCC 為外部晶振,GPIO 口的默認(rèn)設(shè)置,Sys 的調(diào)試部分

6ea4de38-c6ad-11ec-bce3-dac502259ad0.png

3.12 時(shí)鐘配置

這邊我們外部晶振為 24MHz,System 時(shí)鐘配置為 170MHz

6eb8cbfa-c6ad-11ec-bce3-dac502259ad0.png

3.13 生成工程

6ed4f078-c6ad-11ec-bce3-dac502259ad0.png

3.14 對生成工程進(jìn)行修改、添加

拷貝文件

將 MC Workbench 生成的文件夾下的 MCSDK_v5.4.3 拷貝到 CubeMx 直接生成的 G474_MC 文件夾下,另外 Inc 與Src 文件也同時(shí)拷貝進(jìn)去,需要選擇不覆蓋同名文件。

6eed5f5a-c6ad-11ec-bce3-dac502259ad0.png

打開 CubeMx 生成的工程,在工程中添加 Group 以及增加文件到工程中。

6f065f1e-c6ad-11ec-bce3-dac502259ad0.png

6f1de562-c6ad-11ec-bce3-dac502259ad0.png

增加 API 以及控制文件到工程中

6f3d05e6-c6ad-11ec-bce3-dac502259ad0.png

6f644160-c6ad-11ec-bce3-dac502259ad0.png

增加頭文件包含目錄

6f841cc4-c6ad-11ec-bce3-dac502259ad0.png

6fa18502-c6ad-11ec-bce3-dac502259ad0.png

修改 Main.c 文件

包含頭文件以及增加電機(jī)控制初始化函數(shù)

6fbf99e8-c6ad-11ec-bce3-dac502259ad0.png

3.15 驗(yàn)證是否正常工作

編譯下載后,使用 Workbench 控制電機(jī)轉(zhuǎn)動

6fe10600-c6ad-11ec-bce3-dac502259ad0.png

6ffcfdf6-c6ad-11ec-bce3-dac502259ad0.png

THE END

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    459

    文章

    52201

    瀏覽量

    436407
  • WORKBENCH
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

    11257
  • 控制程序
    +關(guān)注

    關(guān)注

    1

    文章

    52

    瀏覽量

    9254
  • CubeMx
    +關(guān)注

    關(guān)注

    0

    文章

    31

    瀏覽量

    1585

原文標(biāo)題:工程師筆記|使用 CubeMx 生成未在 MC SDK V5.4.4 中包含的芯片的電機(jī)控制代碼

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    workbench6.3.2生成的代碼,無法用pilot電機(jī)參數(shù)識別,無法通訊怎么解決?

    。NUCLEO-G474RE的跳線帽沒動過(默認(rèn)),X-NUCLO-IHM08M1改成了FOC的,按官方文件改了5處,下圖可以看清。 打開workbench生成文件都是正常的。 然后打開keil5,也是都正常的 到
    發(fā)表于 06-04 06:06

    ACS880基本控制程序(YINLX)固件手冊

    電子發(fā)燒友網(wǎng)站提供《ACS880基本控制程序(YINLX)固件手冊.pdf》資料免費(fèi)下載
    發(fā)表于 05-21 16:42 ?0次下載

    workbench6.3.2生成的代碼,無法用pilot電機(jī)參數(shù)識別,無法通訊怎么解決?

    。NUCLEO-G474RE的跳線帽沒動過(默認(rèn)),X-NUCLO-IHM08M1改成了FOC的,按官方文件改了5處,下圖可以看清。 打開workbench生成文件都是正常的。 然后打開keil5,也是都正常的 到
    發(fā)表于 04-27 07:24

    為什么MotorControl Workbench無法生成代碼?

    我使用MotorControl Workbench5.4.4生成單電機(jī)驅(qū)動代碼,使用正交編碼器精度1024,檢查引腳沒問題后,進(jìn)入生成頁面,識別到STM32CubeMX版本為6.12.
    發(fā)表于 03-14 06:28

    雅特力AT32 Workbench煥“芯”升級!引入Middleware助力開發(fā)高效提速

    近日,雅特力AT32Workbench開發(fā)工具完成重大更新升級,新增對MiddlewareFreeRTOS,以及MiddlewaresUSB_DEVICE和USB_HOST的支持。此次升級致力于深度
    的頭像 發(fā)表于 03-07 18:46 ?394次閱讀
    雅特力AT32 <b class='flag-5'>Workbench</b>煥“芯”升級!引入Middleware助力開發(fā)高效提速

    通過docker下載的DL Workbench,DL Workbench在導(dǎo)入模型時(shí)停止響應(yīng)是怎么回事?

    ) ? docker run -p 0.0.0.0:5665:5665 --name workbench -it openvino/workbench:2021.4 在 Safari 瀏覽器中瀏覽生成的 URL。 DL
    發(fā)表于 03-05 08:54

    無法將自定義COCO數(shù)據(jù)集導(dǎo)入到OpenVINO? DL Workbench怎么解決?

    JSON包含以下格式注釋的文件:{ \"images\": [], \"annotations\": [] } 創(chuàng)建自定義 COCO 數(shù)據(jù)集。 無法將自定義 COCO 數(shù)據(jù)集導(dǎo)入到OpenVINO? DL Workbench: 上傳數(shù)據(jù)集時(shí)發(fā)生錯誤:未知數(shù)據(jù)集類型
    發(fā)表于 03-05 06:02

    請問DLPDLCR4710EVM-G2如何進(jìn)行控制程序的二次開發(fā)?

    DLPDLCR4710EVM-G2提供了GUI,但是沒有提供API,如我想自己編寫控制程序,有何參考例程嗎?
    發(fā)表于 02-27 08:05

    STM32CubeMX生成的代碼,是怎樣的HAL架構(gòu)?

    需要注意,CubeMX只是一個(gè)初始化工具,它只是幫你完成了HAL庫外設(shè)和時(shí)鐘的初始化,具體程序的編寫還需要查閱HAL庫的說明,使用相關(guān)函數(shù)實(shí)現(xiàn)你想實(shí)現(xiàn)的功能。CubeMX生成的代碼
    的頭像 發(fā)表于 01-01 21:01 ?672次閱讀
    STM32<b class='flag-5'>CubeMX</b><b class='flag-5'>生成</b>的代碼,是怎樣的HAL架構(gòu)?

    6軸控制程序,帶串口通訊

    6軸控制程序,帶串口通訊。
    發(fā)表于 11-09 14:08 ?0次下載

    ACS580標(biāo)準(zhǔn)控制程序固件手冊

    電子發(fā)燒友網(wǎng)站提供《ACS580標(biāo)準(zhǔn)控制程序固件手冊.pdf》資料免費(fèi)下載
    發(fā)表于 10-16 16:21 ?3次下載

    FMEA控制程序

    電子發(fā)燒友網(wǎng)站提供《FMEA控制程序.doc》資料免費(fèi)下載
    發(fā)表于 10-10 11:48 ?2次下載

    RA-T馬達(dá)工程串口直接啟動Workbench調(diào)試方案

    Workbench是瑞薩推薦的電機(jī)調(diào)試GUI,目前官方渠道介紹的使用方式需結(jié)合專用通訊板使用。本篇介紹的是在不使用瑞薩專用通訊板或通訊電路的情況下,使用通用的USB轉(zhuǎn)串口設(shè)備啟動Workbench
    的頭像 發(fā)表于 08-03 08:06 ?848次閱讀
    RA-T馬達(dá)工程串口直接啟動<b class='flag-5'>Workbench</b>調(diào)試方案

    揭秘NVIDIA AI Workbench 如何助力應(yīng)用開發(fā)

    簡化和優(yōu)化生成式 AI 開發(fā)的工具備受追捧,需求與日俱增。借助基于檢索增強(qiáng)生成(RAG)(該技術(shù)通過從指定外部來源獲取事實(shí)資料,來提高生成式 AI 模型的準(zhǔn)確性和可靠性)的應(yīng)用和自定義模型,開發(fā)者
    發(fā)表于 07-10 18:51 ?822次閱讀
    揭秘NVIDIA AI <b class='flag-5'>Workbench</b> 如何助力應(yīng)用開發(fā)

    workbench生成代碼出現(xiàn)fatal error stm32cubemx5.2.0.analyticsserver.xml:1:1:premature end of file什么原因?

    st workbench生成代碼出現(xiàn)fatal error stm32cubemx5.2.0.analyticsserver.xml:1:1:premature end of file什么原因
    發(fā)表于 07-03 08:14

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品