<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

前言

當前 STM32 系列豐富多彩,多達 1000 多種的料號。同時,ST 針對電機 FOC 控制推出了 MC SDK V5.x 的馬達控制軟件系統。該軟件可以結合 Cubemx 生成馬達控制初始化代碼。由于 MC Workbench 軟件芯片選擇有限,不可能包含所有 ST 的產品料號,因此客戶需要使用該軟件時,會發現備選的芯片料號并未包含在 workbench 中。

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

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

1、在 MC Workbench

找不到相應 MCU 型號的示例-- STM32G030K6T6

1.1 MC Workbench 中 MCU 的選擇

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

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

度保護,啟動參數,電流采樣等等后,生成電機控制工程。此步驟可參考 ST 往期的技術培訓。

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

1.2 STM32CubeMX 中的操作

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

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

1.3 導入上面的*.ioc 文件

選擇 File->Import Project,導入之前 1.1 中創建的 ioc 工程。

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

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

檢查下導入提示的 Import Status,如有錯誤或者警告,請根據 Error and Warning messages 進行調整。

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

1.4 檢查并生成工程

可以看到導入后的 STM32CubeMX 項目中已經包含有電機控制部分的 Middleware。

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

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

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

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

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

1.5 注意事項

如果電腦中安裝多個 CubeMX 版本,需要注意在使用過程中必須保持版本的統一,否則導入不成功。

2. 2. 在 MC Workbench

有型號但沒相應封裝的 MCU 示例

-- STM32G474RET6

2.1 新建工程

如果有 Demo 板和電機,則選擇對應的 Demo 板與電機型號,如果沒有直接選擇 customer board,這邊我們看到沒有Nucleo-STM32G474RET6,因此我們選擇 customer board

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

2.2 配置電機與功率板相關配置

分別配置電源,電壓保護,電機,電流采樣,功率管;因為我們使用了現成的功率板與電機,這邊我們使用默認參數即可,如果是自己電機與功率板,請參考 ST 往期的技術培訓。

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

2.3 芯片選擇與配置

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

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

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

2.4 數字端口配置

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

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

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

2.5 模擬端口配置

同樣的配置與硬件采樣相關的模擬端口

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

2.6 生成代碼

生成 STM32G474QE 的電機控制代碼,生成的 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 導入上面的 G474QE.ioc 文件

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

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

2.9 生成工程

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

2.10 驗證是否正常工作

編譯下載后,使用 Workbench 控制電機轉動

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

3.傳統的文件拷貝方式示例

-- STM32G474RET6

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

3.1 前期準備

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

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 左對齊,觸發信號Tim1 Trigger Out Event,只有 Inject 模式沒有 Regular 模式

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

使能 ADC1/2 中斷

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

配置 ADC2 引腳與功能

這邊 ADC2_IN14 是復用在 ADC1_IN14 的引腳上

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

配置 ADC2 功能

ADC2 有兩個通道用于電壓與溫度傳感采樣,使用 Regular 模式,用于電流采樣的使用 Inject 模式,這點區別于 ADC1的配置

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

3.4 配置 Timer1

配置 TIM1 輸出管腳

這邊只使用上橋的 PWM 輸出,因此只配置上橋輸出 PWM 波,其中 CH4 用于 ADC 觸發,無外部 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 配置調試串口

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

3.6 使能 STM32G4 特有的 Cordic 外設

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 規劃 NVIC 的中斷優先級

這邊特別注意中斷優先級別的設定,將影響到程序運行。

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

3.10 不生成電機相關的中斷程序

因為電機相關的中斷程序中電機庫中已經有了,這邊不使用 CubeMx 生成中斷代碼

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

3.11 系統其他的配置

分別配置 RCC 為外部晶振,GPIO 口的默認設置,Sys 的調試部分

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

3.12 時鐘配置

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

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

3.13 生成工程

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

3.14 對生成工程進行修改、添加

拷貝文件

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

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 文件

包含頭文件以及增加電機控制初始化函數

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

3.15 驗證是否正常工作

編譯下載后,使用 Workbench 控制電機轉動

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

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

THE END

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    447

    文章

    48136

    瀏覽量

    410782
  • WORKBENCH
    +關注

    關注

    0

    文章

    22

    瀏覽量

    10898
  • 控制程序
    +關注

    關注

    1

    文章

    47

    瀏覽量

    8958
  • CubeMx
    +關注

    關注

    0

    文章

    28

    瀏覽量

    1229

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

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    請問workbench生成keil文件怎么調試?

    workbench生成keil文件怎么調試?
    發表于 05-27 06:16

    用KEIL編譯Workbench生成的工程之后報錯的原因?

    用KEIL編譯Workbench生成的工程之后報錯誤 這是啥問題
    發表于 04-25 08:03

    使用MotorControl Workbench 5.3.3配置生成軟件,ENC_CalcAvrgMecSpeed01Hz這個程序哪里改動?

    如題,使用MotorControl Workbench 5.3.3,配置生成軟件,發現使用設置速度要除于6,反饋速度需要*6才行。請問ENC_CalcAvrgMecSpeed01Hz這個程序那里改動?改成不用除于6
    發表于 04-23 06:21

    使用MotorControl Workbench生成代碼時出錯的原因?

    各位大師你們好!使用MotorControl Workbench生成代碼時出錯,請高手指教,謝謝。 Code generation started CMSIS Pack version
    發表于 04-18 07:08

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

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

    用ST MC Workbench生成代碼時報錯怎么解決?

    用 ST MC Workbench生成代碼時報錯
    發表于 04-11 07:08

    用STM32F407開發電機設計,用ST Motor Control Workbench設置參數后程序跑飛到HardFault_Handler函數的原因?

    大家好,最近用STM32F407開發電機設計,用ST Motor Control Workbench設置參數后,生成程序連接電機空轉運行時跑飛到HardFault_Handler函數,我只在
    發表于 04-01 06:01

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

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

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

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

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

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

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

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

    STM32 motor control workbench點擊生成項目文件后界面一直無任何顯示是為什么?

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

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

    我的MotorControl Workbench一直不能創建代碼,版本是V5.4.8,cubemx版本是最新的,代碼老是generation failed,請推薦一個合適的cubemx版本
    發表于 03-08 07:22

    如何將stm32的控制程序轉成51的程序?

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

    在 IAR Embedded Workbench中進行ARM+RISC-V多核調試

    在之前的文章中,我們介紹了如何在IAR Embedded Workbench for Arm中進行多核調試,其中所有的CPU內核都是基于ARM架構。近些年來,隨著RISC-V的興起,不少芯片集成
    發表于 06-14 16:55
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>