0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32步进电机驱动的算法

汽车玩家 来源:CSDN 作者:CSDN 2021-07-23 15:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在脉冲模式下,步进电机启动器的脉冲频率与速度成正比,函数void CalculateSModelLine(float fre[], unsigned short period[], float len, float fre_max, float fre_min, float flexible)主要目的就是生成每一个细分步加速的速度。芯片用的是stm32f103c8t6,驱动器用的是2DM420。

程序流程如下:

  • STM32硬件基本初始化,主要是针对定时器

  • 调用函数CalculateSModelLine()生 成每一个细分步定时器的自动重装载值(实际就是改变脉冲的周期)

  • 打开定时器

  • 更新中断发生,将数组中的数据赋值给定时器的自动重装载寄存器

  • 跳出中断后脉冲频频率就变化了

  • 下一次更新中断产生


对应的计算接口code:

/* calculate the Period and Freq array value, fill the Period value into the Period register during the timer interrupt.

*calculate the acceleration procedure , a totally 1000 elements array.

* parameter fre[]: point to the array that keeps the freq value.

* period[]: point to the array that keeps the timer period value.

* len: the procedure of acceleration length.it is best thing to set the float number, some compile software maybe transfer error if set it as a int

* fre_max: maximum speed, frequency vale.

* fre_min: start minimum speed, frequency vale. mind : 10000000/65535 = 152, so fre_min can't less than 152.

* flexible: flexible value. adjust the S curves

*/

void CalculateSModelLine(float fre[], unsigned short period[], float len, float fre_max, float fre_min, float flexible)

{

int i=0;

float deno ;

float melo ;

float delt = fre_max-fre_min;

for(; i

{

melo = flexible * (i-len/2) / (len/2);

deno = 1.0 / (1 + expf(-melo)); //expf is a library function of exponential(e)

fre[i] = delt * deno + fre_min;

period[i] = (unsigned short)(10000000.0 / fre[i]); // 10000000 is the timer driver frequency

}

return ;

}

文章整合自:CSDN

编辑:ymf

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动器
    +关注

    关注

    54

    文章

    9012

    浏览量

    153336
  • 步进电机
    +关注

    关注

    152

    文章

    3216

    浏览量

    151554
  • 脉冲模式
    +关注

    关注

    0

    文章

    3

    浏览量

    6569
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于UART通讯控制TMC2208/2209模块驱动两相四线步进电机

    本文将介绍如何通过UART串口通信控制TMC2208/2209步进电机驱动模块驱动42步进电机
    的头像 发表于 11-10 19:33 497次阅读
    基于UART通讯控制TMC2208/2209模块<b class='flag-5'>驱动</b>两相四线<b class='flag-5'>步进</b><b class='flag-5'>电机</b>

    ‌DRV8818步进电机控制器IC技术文档总结

    该DRV8818为打印机、扫描仪和其他自动化设备应用提供集成步进电机驱动器。该器件具有两个 H 桥驱动器,以及用于控制步进
    的头像 发表于 10-20 11:21 401次阅读
    ‌DRV8818<b class='flag-5'>步进</b><b class='flag-5'>电机</b>控制器IC技术文档总结

    EVL6470步进电机驱动评估板技术解析与应用指南

    STMicroelectronics EVL6470步进电机驱动器评估板基于L6470,提供一套既经济划算又易于使用的解决方案,用于驱动用户应用中的
    的头像 发表于 10-17 11:25 335次阅读
    EVL6470<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>驱动</b>评估板技术解析与应用指南

    ‌DRV8434步进电机驱动器技术文档总结

    DRV8434 是一款适用于工业和消费类应用的步进电机驱动器。该器件完全集成了两个 N 沟道功率 MOSFET H 桥驱动器、一个微步进索引
    的头像 发表于 10-15 09:31 425次阅读
    ‌DRV8434<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>驱动</b>器技术文档总结

    关于TMC2208与TMC2209的区别及基于STM32F103控制TMC2209模块驱动2相4线步进电机

    技术,TMC2208提供2 - 32微选择,TMC2209支持8 - 64微选择。文章最后提供了STM32F103控制TMC2208/TMC2209驱动42
    的头像 发表于 10-09 17:19 858次阅读
    关于TMC2208与TMC2209的区别及基于<b class='flag-5'>STM32</b>F103控制TMC2209模块<b class='flag-5'>驱动</b>2相4线<b class='flag-5'>步进</b><b class='flag-5'>电机</b>

    DRV8461步进电机驱动器技术解析与应用指南

    Texas Instruments DRV8461步进电机驱动器是宽电压、高功率、高性能步进电机驱动
    的头像 发表于 08-29 14:32 712次阅读
    DRV8461<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>驱动</b>器技术解析与应用指南

    6轴步进电机驱动+STM32F767+485+CAN+网口+12输入输出原理图

    6轴步进电机驱动+STM32F767+485+CAN+网口+12路输入输出 原理图 步进电机
    发表于 06-27 16:18 0次下载

    Analog Devices / Maxim Integrated MAX22204步进电机驱动器数据手册

    Analog Devices MAX22204步进电机驱动器是一款两相步进电机驱动器。它集成了两
    的头像 发表于 06-23 14:58 671次阅读
    Analog Devices / Maxim Integrated MAX22204<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>驱动</b>器数据手册

    TMCM-3216步进电机控制器/驱动器模块

    Analog Devices Inc. TMCM-3216步进电机控制器/驱动器模块是紧凑型3轴双极步进电机控制器和独立
    的头像 发表于 06-23 14:44 1133次阅读
    TMCM-3216<b class='flag-5'>步进</b><b class='flag-5'>电机</b>控制器/<b class='flag-5'>驱动</b>器模块

    Analog Devices / Maxim Integrated MAX22210步进电机驱动器数据手册

    Analog Devices Inc. MAX22210步进电机驱动器集成了两个36V、3.8AMAX半桥。H桥FET具有非常低的阻抗,可实现高驱动效率并最大限度地减少产生的热量。典型
    的头像 发表于 06-14 14:52 716次阅读
    Analog Devices / Maxim Integrated MAX22210<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>驱动</b>器数据手册

    ADI Trinamic TMC5272步进电机控制器数据手册

    ADI Trinamic TMC5272步进电机控制器是一款 高性能双轴步进控制器和驱动器IC,具有串行通信接口(SPI和UART)。该电机
    的头像 发表于 06-14 09:36 721次阅读
    ADI Trinamic TMC5272<b class='flag-5'>步进</b><b class='flag-5'>电机</b>控制器数据手册

    ADI Trinamic TMC5271步进电机控制器数据手册

    ADI Trinamic TMC5271步进电机控制器是一款 高性能、单轴步进控制器和驱动器IC,具有串行通信接口(SPI和UART)。该电机
    的头像 发表于 06-14 09:29 725次阅读
    ADI Trinamic TMC5271<b class='flag-5'>步进</b><b class='flag-5'>电机</b>控制器数据手册

    HJ4205步进电机驱动电路详解

    HJ4205是一款步进电机驱动电路。包含一个步进电机控制器和内部N沟道MOSFET,来驱动一个双
    的头像 发表于 05-07 16:19 1463次阅读
    HJ4205<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>驱动</b>电路详解

    想让步进电机控制更顺滑?微控制优势与挑战全揭秘!

    电子发烧友网综合报道,电机控制和驱动的分类方式多种多样,若按电机类型划分,可分为直流电机驱动、交流电机
    发表于 02-19 00:47 2253次阅读

    基于STM32F405RGT6的TMC2660步进电机驱动器,附带原理图+PCB

    驱动电路主要包括以下部分,信号接口电路,逻辑控制电路,功率开关电路,保护电路。TMC2660是步进电机驱动芯片,集成了先进的电流控制算法、微
    的头像 发表于 12-14 19:24 3473次阅读
    基于<b class='flag-5'>STM32</b>F405RGT6的TMC2660<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>驱动</b>器,附带原理图+PCB