STM32G4 Simulink FOC开发实战–第四章:快速启动电机 with ST MCSDK

Bilibili视频配套视频:

HALL有感启动电机基于STMCSDK:

https://www.bilibili.com/video/BV1W14y1k7Ct/?spm_id_from=333.999.0.0&vd_source=eb375996b1aae493d63fe367f98b306c

无感启动电机基于STMCSDK:

https://www.bilibili.com/video/BV1QG41197AH/?spm_id_from=333.999.0.0&vd_source=eb375996b1aae493d63fe367f98b306c

电位器控制电机转速基于STMCSDK:

https://www.bilibili.com/video/BV1H34y1T7ZS/?spm_id_from=333.999.0.0&vd_source=eb375996b1aae493d63fe367f98b306c

1.BLDC霍尔MCSDK配置及代码生成 

1.1 ST MCSDK配置 

① 双击打开MotorControl Workbench 5.Y.4

② 新建工程:

③ 选择用户应用,用户板子,电压小于50V,点击OK:

 ④ 正常工作电压修改为24V,我们使用24V电源适配器供电:

 

⑤ 选择MCU型号及时钟频率,先选择外部8M时钟,后续在CUBEMX再修改:

⑥ 配置电机参数及霍尔传感器参数:

 ⑦ 速度传感器选择HALL传感器:

⑧ 根据原理图来配置各个数字IO:

⑨ 配置电流采样部分,三电阻采样,修改采样电阻大小,取消amp on board,此处不配置运放增益,在后续analog部分配置:

 ⑩配置MCU模拟部分输入:

11基于原理图配置输入电压检测,取消温度传感器和过流保护,过流保护由软件保护:

 12配置电流环及速度环KPKI参数:

13点击生成代码 ,将工程保存后点击

 

14生成代码过程中,此类报错可忽略,原因时CUBEMX版本过低:

15生成代码,打开IOC文件修改时钟,然后点击生成代码: 

 1.2 实验现象

按以下图片接线,并将USB转UART模块连接至电脑:

①打开KEIL工程,使用stlink连接开发板SWD及UART,编译并下载代码;

 

②代码下载成功后,按下开发板RESET按键,打开SDK上位机 软件,打开UART,波特率设置115200,点击连接;点击开始,即可启动电机,或按下用户按键3也可启动电机;

 ③使用上位机的画图工具可以看到相应数据的波形:

 2.BLDC无感MCSDK配置及代码生成

① 无感配置需要将速度传感器配置无传感器模式:

 ②配置无感启动参数:

  • ③其他参数无需修改,点击生成代码,后续流程与霍尔传感器配置流程完全一样;
  •  3.使用电位器调节BLDC转速

    基于第一小节的BLDC霍尔有感代码的基础上增加电位器的ADC采样;

    1.增加电位器ADC采样相关变量;

     

    2.设置采样通道及时间,注册规则组ADC采样;

    3.在while循环中请求并执行ADC转换;采样值0-128转速对应-1100~-400;

    采样值128-256对应转速400~1100;

     

    3.1 实验现象 

    按以下图片接线,并将USB转UART模块连接至电脑:

    1. 编译并下载代码,打开ST上位机,使用UART连接开发板,并启动电机;

    2. 使用螺丝刀,旋转电位器,可以看到速度会随着while循环中的代码逻辑发生改变;

    4.使用CAN上位机调节BLDC转速 

    基于第一小节的BLDC霍尔有感代码的基础上增加CAN通讯代码;

    1.打开工程中的IOC文件,首先将系统时钟改为160M,修改为160M主要是为了方便计算波特率;

    2.使能CANFD通讯;

    3.配置仲裁段和数据段的分频系数跳转位宽,使能FIFO模式;

    波特率:500k = 160M/20/(1+10+5)

    4.使能中断;

    5.点击生成代码 ,打开Keil工程;

     

    6. 定义RX和TX数据及中间变量;

    7.配置RX和TX数据帧类型,RX接收的ID范围;TX ID和数据长度等参数;

     

     

     8.在it.c文件中,在FDCAN中断里面,接收上位机发送的数据;

     

    9.增加math及string头文件; 

    10.定义速度、模式及方向等需要上传的变量;

    11.在while循环中增加获取当前电机速度、方向、控制模式等函数;并将实时参数上传至上位机;同时接收上位机下发的电机启动、速度等指令;

    12.编译并下带代码;

    4.1 实验现象

     按以下图片接线,并将USB转UART及USBCAN模块连接至电脑:

    1.打开ST上位机及PCAN上位机,并连接,CAN通讯速率500kbits;

     

     2.在发送数据栏中,发送该条数据即可启动电机,其中第0位为1并且第四位为1即可启动电机;第1位为1代表正向启动;第2及第三位代表速度,RxData[2]*256 + RxData[3];

    3.观察ST上位机的速度,与我们期望参考速度一致 

    4.修改第2及3位数据即可修改电机参考转速;将第0位为1并且第四位为0即可停止电机;

     

    物联沃分享整理
    物联沃-IOTWORD物联网 » STM32G4 Simulink FOC开发实战–第四章:快速启动电机 with ST MCSDK

    发表回复