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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(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 多種的料號(hào)。同時(shí),ST 針對(duì)電機(jī) FOC 控制推出了 MC SDK V5.x 的馬達(dá)控制軟件系統(tǒng)。該軟件可以結(jié)合 Cubemx 生成馬達(dá)控制初始化代碼。由于 MC Workbench 軟件芯片選擇有限,不可能包含所有 ST 的產(chǎn)品料號(hào),因此客戶需要使用該軟件時(shí),會(huì)發(fā)現(xiàn)備選的芯片料號(hào)并未包含在 workbench 中。

本文針對(duì)這種場(chǎng)景,詳細(xì)說明如何結(jié)合 CubeMx 與 MC Workbench 生成 workbench 中所未包含芯片的控制程序,客戶通過該說明可以使用全系列 STM32 產(chǎn)品用于電機(jī)的 FOC 控制,為客戶帶來便利。

本文涉及到的開發(fā)板、驅(qū)動(dòng)板、馬達(dá)分別是:Nucleo-STM32G474RET6 (控制板) + X-Nucleo-IHM16M1(功率板)+GBM2804H-100T(電機(jī))以及 STM32G030K6T6 主芯片等。

1、在 MC Workbench

找不到相應(yīng) MCU 型號(hào)的示例-- STM32G030K6T6

1.1 MC Workbench 中 MCU 的選擇

使用 MC Workbench 生成電機(jī)控制工程時(shí),選擇列表中提供的同系列中的 MCU。比如我們需要使用列表中沒有的

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

度保護(hù),啟動(dòng)參數(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,如有錯(cuò)誤或者警告,請(qǐng)根據(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

有型號(hào)但沒相應(yīng)封裝的 MCU 示例

-- STM32G474RET6

2.1 新建工程

如果有 Demo 板和電機(jī),則選擇對(duì)應(yīng)的 Demo 板與電機(jī)型號(hào),如果沒有直接選擇 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ī)與功率板,請(qǐng)參考 ST 往期的技術(shù)培訓(xùn)。

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

2.3 芯片選擇與配置

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

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

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)動(dòng)

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

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

-- STM32G474RET6

如果上面兩種簡(jiǎn)易方式已經(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 左對(duì)齊,觸發(fā)信號(hào)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)先級(jí)

這邊特別注意中斷優(yōu)先級(jí)別的設(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 對(duì)生成工程進(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)動(dòng)

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)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    452

    文章

    50005

    瀏覽量

    419729
  • WORKBENCH
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

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

    關(guān)注

    1

    文章

    49

    瀏覽量

    9002
  • CubeMx
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    1294

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FMEA控制程序

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

    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

    請(qǐng)問workbench生成keil文件怎么調(diào)試?

    workbench生成keil文件怎么調(diào)試?
    發(fā)表于 05-27 06:16

    用KEIL編譯Workbench生成的工程之后報(bào)錯(cuò)的原因?

    用KEIL編譯Workbench生成的工程之后報(bào)錯(cuò)誤 這是啥問題
    發(fā)表于 04-25 08:03

    使用MotorControl Workbench 5.3.3配置生成軟件,ENC_CalcAvrgMecSpeed01Hz這個(gè)程序哪里改動(dòng)?

    如題,使用MotorControl Workbench 5.3.3,配置生成軟件,發(fā)現(xiàn)使用設(shè)置速度要除于6,反饋速度需要*6才行。請(qǐng)問ENC_CalcAvrgMecSpeed01Hz這個(gè)程序那里改動(dòng)?改成不用除于6
    發(fā)表于 04-23 06:21

    ST Motor Control Workbench不能生成代碼怎么解決?

    ST Motor Control Workbench不能生成代碼
    發(fā)表于 04-15 06:09

    用ST MC Workbench生成代碼時(shí)報(bào)錯(cuò)怎么解決?

    用 ST MC Workbench生成代碼時(shí)報(bào)錯(cuò)
    發(fā)表于 04-11 07:08

    用STM32F407開發(fā)電機(jī)設(shè)計(jì),用ST Motor Control Workbench設(shè)置參數(shù)后程序跑飛到HardFault_Handler函數(shù)的原因?

    大家好,最近用STM32F407開發(fā)電機(jī)設(shè)計(jì),用ST Motor Control Workbench設(shè)置參數(shù)后,生成程序連接電機(jī)空轉(zhuǎn)運(yùn)行時(shí)跑飛到HardFault_Handler函數(shù),我只在
    發(fā)表于 04-01 06:01

    stm32 motor control workbench生成代碼時(shí),找不到STM32CUBEMX怎么解決?

    兩個(gè)軟件都安裝在:D:Program Files (x86)STMicroelectronics, cubeMX版本是6.1.2 motor control WORKBENCH版本是5.4.5,也試過5.Y.1,在生成的最后一步
    發(fā)表于 03-28 07:48

    mc workbench卡在代碼生成這一步不動(dòng)了是什么原因?

    mc workbench卡在代碼生成這一步不動(dòng)了是什么原因
    發(fā)表于 03-27 06:52

    MC WORKBENCH的MOTOR PILOT不能連接上是什么原因?

    我使用MC WORKBENCH 5.Y.4 自動(dòng)生成的電機(jī)驅(qū)動(dòng)例程,后端是IAR的IDE,通過ST-LINK 連接電機(jī)驅(qū)動(dòng)評(píng)估板(EVSPIN32F06Q2S1),同時(shí)打開MC
    發(fā)表于 03-22 15:24

    STM32CubeMX安裝最新版本V6.9,Motor Control Workbench生成項(xiàng)目工程總是顯示STM32CubeMX not found的原因?

    STM32CubeMX安裝最新版本V6.9,但Motor Control Workbench生成項(xiàng)目工程,總是顯示STM32CubeMX not found?
    發(fā)表于 03-14 07:28

    STM32 motor control workbench點(diǎn)擊生成項(xiàng)目文件后界面一直無任何顯示是為什么?

    安裝目錄都是英文,在兩臺(tái)電腦上都安裝試過,STM32 motor control workbench版本5.4.6,STM32CUBEMX版本是6.4,點(diǎn)擊生成項(xiàng)目文件后界面一直無任何顯示。
    發(fā)表于 03-14 06:42

    MotorControl Workbench 5.4.8和哪個(gè)版本的STM32CubeMX可以配合使用?

    我的MotorControl Workbench一直不能創(chuàng)建代碼,版本是V5.4.8,cubemx版本是最新的,代碼老是generation failed,請(qǐng)推薦一個(gè)合適的cubemx版本
    發(fā)表于 03-08 07:22

    如何將stm32的控制程序轉(zhuǎn)成51的程序?

    如何將stm32的控制程序轉(zhuǎn)成51的程序,用的是意法的傳感器,給的控制程序也是32的
    發(fā)表于 11-03 08:07