• 正文
  • 相關推薦
申請入駐 產業(yè)圖譜

基于STM32F303(內置運放PGA比較器):位置控制

2021/01/19
864
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

基于 STM32F303(內置運放 PGA 比較器):位置控制

使用 EVAL-SERVOM1(基于 303CCT6 內置運放 PGA 比較器)三電阻 FOC 低壓伺服板

公眾號:游名科技

ST 最新電機庫已支持位置控制(電機要帶增量編碼器,目前最大支持 14 位編碼器):

位置控制函數:

void MC_ProgramPositionCommandMotor1( float fTargetPosition, float fDuration );

其中:

fTargetPosition:控制角度,單位為弧度,轉一圈需要 2PI=2*3.1415926;

fDuration:時間,單位 mS,從當前位置到達目標位置所需時間;

參考測試程序如下:

if(RunFlag)

{

    //High Speed

    // MC_ProgramPositionCommandMotor1(MotorPiAi*3.14,0.1);

    // HAL_Delay(1000);

    //

    // MC_ProgramPositionCommandMotor1(-MotorPiAi*3.14,0.1);

    // HAL_Delay(1000);

    MC_ProgramPositionCommandMotor1(MotorPiAi*4,1);

    //MotorPiAi=3.1415926,2*3.14 為 1 圈,轉半圈*4,1S

    MC_AcknowledgeFaultMotor1(); // 清除電機錯誤

    MC_StartMotor1(); // 電機啟動

    HAL_Delay(1500); // 延時 1.5S

    MC_ProgramPositionCommandMotor1(-MotorPiAi*2,1);

    //MotorPiAi=3.1415926,2*3.14 為 1 圈,,反轉半圈*2,1S

    HAL_Delay(1500); // 延時 1.5S

    MC_AcknowledgeFaultMotor1(); // 清除電機錯誤

    MC_StartMotor1(); // 電機啟動

}

else

{

    MC_StopMotor1(); // 電機停止

}

用默認生成的程序,假設每次控制轉 3.14 角度,會發(fā)些無法一直轉(而正反轉 3.14 角度可以),那是因為默認程序控制的是絕對角度,需要自己修改;

函數原型如下:

__weak void MCI_ExecPositionCommand( MCI_Handle_t * pHandle, float FinalPosition, float Duration )

{

  pHandle->pFOCVars->bDriveInput = INTERNAL;

  float currentPositionRad = (float)(SPD_GetMecAngle(STC_GetSpeedSensor(pHandle->pSTC))) / RADTOS16;

  if (Duration > 0) 

{

    TC_MoveCommand(pHandle->pPosCtrl, currentPositionRad, FinalPosition - currentPositionRad, Duration); 

  } 

else 

{

    TC_FollowCommand(pHandle->pPosCtrl, FinalPosition);

  }

  

  pHandle->LastModalitySetByUser = STC_TORQUE_MODE;

}

TC_MoveCommand(pHandle->pPosCtrl,currentPositionRad, FinalPosition - currentPositionRad, Duration);  

修改為:

TC_MoveCommand(pHandle->pPosCtrl,currentPositionRad, FinalPosition , Duration);即可

工作電壓:10 到 30V;

電流:0 到 10A;

支持電機:BLDC 電機,PMSM 電機,有刷電機等;

芯片:STM32F303(采用內置運放、PGA、比較器);

板載接口:

按鍵接口;

仿真調試接口;

TTL 電平串口接口;

CAN 接口;

DA 接口;

霍爾接口及增量編碼器接口;

SPI 接口絕對值編碼器接口;

剩余 IO 接口基本引出;

提供資料截圖:

三:用 STMStudio 軟件通過 ST LINK 看變量波形篇

1、首先安裝 STMStudio 軟件(略);

2、打開 STMStudio 軟件如下圖:

3、在 Display Variables 界面區(qū)域點擊鼠標右鍵選擇“Import”,打卡后如下圖:

4、點擊上圖省略號選擇 axf 文件(導入 MDK 或 IAR 項目工程目錄下 axf 文件)

5、選中 axf 文件并點擊 Select,點擊后出現錯誤,點 OK 即可

6、導入后如下圖所示:

7、找到或輸入相關變量:這里輸入 IA

8、選擇 IA 和 IB 變量,并點擊 Import 導入,然后點擊 close 關閉

導入變量后如下圖所示:

9、點擊 Run 并選擇 Start S 按鈕

10、選中變量點擊右鍵 send to 到顯示菜單

11、顯示后數據波形如下圖所示(數據波形不好需要調整):

12、退出、關閉軟件等(略)

二、磁編碼器安裝篇

一、教程基礎篇

EVAL-SERVOM1(基于 303CCT6 內置運放 PGA 比較器)三電阻 FOC

低壓伺服板:

工作電壓:10 到 30V;

電流:0 到 10A;

支持電機:BLDC 電機,PMSM 電機,有刷電機等;

主芯片:STM32F303CCT6(采用內置運放、PGA、比較器);

板載接口:

按鍵接口;

仿真調試接口;

TTL 電平串口接口;

CAN 接口;

DA 接口;

霍爾接口及增量編碼器接口;

SPI 接口絕對值編碼器接口;

剩余 IO 接口基本引出;

實物如下圖所示:

 

一、硬件原理圖

1.1 圖紙說明

1.2 硬件布線

       EVAL-SERVOM1 伺服電機板:采用 4 層板;

   PWM 輸出線和電流采樣線盡量不要交叉;

       電源功率地、數字地、模擬地等都分開,最好是單點接地。

1.3 安全說明

   仿真器調試器:可以用我們的隔離仿真器或加 USB 隔離器,當然低壓用非隔離仿真器也可以。

   板子及帶電端口:不要用手觸摸,以免被電到。 

1.4 接線說明

板子:

電源輸入:

VIN:接直流可調電源開關電源+

GND:接直流可調電源或開關電源負 -

電機線:

U:接電機 U 或 A

V:接電機 V 或 B

W:接電機 W 或 C

霍爾或編碼器接線

HA:接電機霍爾傳感器 U 或編碼器 A(對應 200W 伺服電機編碼器:6 腳)

HB:接電機霍爾傳感器 V 或編碼器 B(對應 200W 伺服電機編碼器:7 腳)

HC:接電機霍爾傳感器 W(對應 200W 伺服電機編碼器:8 腳)

GND 或 0V:接電機傳感器接口 GND(對應 200W 伺服電機編碼器:1 腳)

+5:接電機傳感器接口 5V(對應 200W 伺服電機編碼器:2 腳)

仿真調試接口及串口接線說明:

CLK:接隔離 DAP 仿真器 CLK 或 ST LINK 仿真器 CLK(SWD 信號時鐘腳)

DIO:接隔離 DAP 仿真器 DIO 或 ST LINK 仿真器 DIO(SWD 信號數據腳)

GND:接隔離 DAP 仿真器 GND 或 ST LINK 仿真器 GND

TX(TX 接 RX 需交叉):接隔離 DAP 仿真器 RX 或 ST LINK 仿真器 RX

RX(RX 接 TX 需交叉):接隔離 DAP 仿真器 TX 或 ST LINK 仿真器 TX

正常運行界面如下圖所示:

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

直流無刷電機驅動、電源、機器人等軟硬件技術開源。