在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

審核編輯 :李倩

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

    關注

    459

    文章

    51925

    瀏覽量

    433551
  • WORKBENCH
    +關注

    關注

    0

    文章

    24

    瀏覽量

    11209
  • 控制程序
    +關注

    關注

    1

    文章

    51

    瀏覽量

    9219
  • CubeMx
    +關注

    關注

    0

    文章

    31

    瀏覽量

    1549

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

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

收藏 人收藏

    評論

    相關推薦

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

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

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

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

    通過docker下載的DL Workbench,DL Workbench在導入模型時停止響應是怎么回事?

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

    無法將自定義COCO數據集導入到OpenVINO? DL Workbench怎么解決?

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

    請問DLPDLCR4710EVM-G2如何進行控制程序的二次開發?

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

    STM32CubeMX生成的代碼,是怎樣的HAL架構?

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

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

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

    ACS580標準控制程序固件手冊

    電子發燒友網站提供《ACS580標準控制程序固件手冊.pdf》資料免費下載
    發表于 10-16 16:21 ?1次下載

    FMEA控制程序

    電子發燒友網站提供《FMEA控制程序.doc》資料免費下載
    發表于 10-10 11:48 ?2次下載

    RA-T馬達工程串口直接啟動Workbench調試方案

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

    揭秘NVIDIA AI Workbench 如何助力應用開發

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

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

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

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

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

    stm32使用workbench生成了一些.h和.c文件,然后該如何使用它們?

    使用workbench生成了一些.h和.c文件,然后該如何使用它們?還需要手動在MDK中建立工程添加標準庫再把這些文件加進去么?哪位有相關開發經驗,請賜教!
    發表于 05-15 07:29

    在IAR版本為Embedded Workbench 6.5 Kickstart 1.4 編繹報錯怎么解決?

    請教 IAR 這個錯誤是什么問題 在IAR版本為Embedded Workbench 6.0 Kickstart 1.30 編繹正常沒出錯 在IAR版本為Embedded Workbench 6.5 Kickstart 1.4 編繹出現那錯誤不知哪里問題了
    發表于 05-09 06:36
    主站蜘蛛池模板: 久久香蕉综合色一综合色88 | 天堂在线观看视频观看www | 一级特黄性生活大片免费观看 | 日本aaaaa高清免费看 | 日日添天天做天天爱 | 亚洲国产香蕉视频欧美 | 午夜影视啪啪免费体验区入口 | 国产黄色片在线观看 | 免费在线观看黄 | 色天使色婷婷丁香久久综合 | 欧美一二区视频 | 亚洲 欧美 自拍 卡通 综合 | 狠狠干夜夜操 | 午夜毛片网站 | 一区二区三区视频网站 | 天堂中文在线免费观看 | 天堂tv在线观看 | www毛片| 亚洲国产一区二区在线 | 久久国产热视频 | 男人扒开美女尿口无遮挡图片 | 五月天婷婷在线免费观看 | 男女午夜特黄毛片免费 | 夜夜狠| 欧美乱xxxxxxxxx| 日本黄色大片网站 | 成人免费无毒在线观看网站 | 奇米福利视频 | 久久久久女人精品毛片九一 | 永久免费看www色视频 | 久久青草91线频免费观看 | xxx86日本人| 亚洲1卡二卡3卡四卡不卡 | 久久本道综合色狠狠五月 | 久久99爰这里有精品国产 | 伊人网在线视频观看 | 97色吧 | 老司机狠狠k免费毛片 | 性欧美久久 | 欧美色啪 | 8888奇米四色在线 |