STM32 電機教程 23 - ST MCLIB實戰之基於stm32f13c8tx構建FOC工程

前言

前面章節我們介紹了很多關於ST MotorControl Workbench的使用及實例 ,但是所有的實例均是基於ST的NUCLEO-F103RB和X-NUCLEO-IHM07M1 3SH開發板進行講解與演示的,很多同學表示手頭並沒有相應的開發板,且在實際應用時經常會出現各種各樣的問題,從本節開始,將給大家演示一下實際應用工程中怎麼用ST MotorControl Workbench來配工程,調參數。在本節開始之前先給大家分享幾個ST官方ST MotorControl Workbench的使用說明資料(位於ST MotorControl Workbench安裝文件夾下的Documentation 文件夾中,如筆者的D:\Program Files (x86)\STMicroelectronics\MC_SDK_5.3.3\Documentation):

      好了,下面我們進入實戰環節,首選先簡單看一下原理圖:

 

      電機控制部分電路基本就如上面的圖片所示,接下來我們就按上面的原理圖來構延ST MotorControl Workbench電機控制工程:

新建工程,如下圖:

接下來我們按下圖所標順序依次配置各模塊:

1.Bus Voltage sensing:

2.Temperature sensing,原理圖中沒有,跳過。

3.motor 根據自己實際電機參數去填寫,如筆者所用電機如下:

本實例用絕對式磁編碼器來檢測電機位置,所以傳感器這裏可以都不選(先對無感FOC方式配好工程,然後到工程代碼中手動加入絕對式編碼器對應的功能代碼即可):

4.current sensing :

5.Over current protection(過流保護) :

 

6.Speed Sensing (選用無感方式,保持默認即可) :

7.Power Stage – Power Switches(根據實際情況填) :

8.Power Stage – Driving signal …(根據實際情況填) :

9.Firmware Drive Management – start -up …(保持默認) :

Firmware Drive Management – Drive setting …(根據實際填) :

Firmware Drive Management – addition features …(保持默認) :

 

Firmware Drive Management – sensing Enabling …(根據實際填) :

10.MCU and Clock Freq :

11.Digital I/O :

12.DAC functionality :

13.ADC Input and Protection :

 

14.User Interface(保持默認即可) :

 

保存工程,生成代碼即可:

生成完成後,MCU還不是stm32f103c8t6,這時可以到cube(.ioc)工程中修改MCU芯片,再更新代碼即可,用文本編譯器打開.ioc文件,用夫換工具將所有的STM103R替換成STM103C,然後將所有的STM103RBTx替換成STM103C8Tx,最後將LQFP64換成LQFP48:

修改前:

修改後:

當然因爲本示例僅有一個普通ADC通道(總線電壓),在.Ioc工程中ADC模塊配置有點小問題,手動按下圖修改即可:

最後在cube工具打開ioc工程,按原理圖配置好LED引腳 ,SPI絕對磁編碼器接口,CAN通信接口以及修改一下定時器1接口(實際原理圖並沒有用到BREAK引腳 ),以下操作僅供參考:

CAN:

SPI:

LED:

最後調整一下模塊的初始化速度就可以直接生生工程代碼了:

 

打開工程,編譯工程,解決掉工程中的各個問題(最多問題就是工程中少包含某個文件,手動加入一下就可以了):

到此,基於ST MCLIB的stm32f13c8tx FOC工程創建工作就基本完成了,下一講將給大家介紹如何將其無感方式變成絕對式磁編碼位置檢測方式。也歡迎大家留言!!最後喜歡這個公衆號的同學們記得加關注了,每天都會有技術乾貨推出!!

 

文中源碼及資料下載,關注十三公衆號:

在公衆號裏給十三發送 “下載|STM32 電機教程 23” :

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章