当前位置: 首页 > news >正文

低压步进器电机驱动器STSPIN220开发(1)----驱动STSPIN220

低压步进器电机驱动器STSPIN220开发----1.驱动STSPIN220

  • 概述
  • 样品申请
  • 视频教学
  • 代码下载
  • 硬件准备
  • 参考程序
  • 功能框图
  • STSPIN220所有功能
  • 基础配置
  • REF
  • 电流配置
  • 细分配置
  • IO配置
  • 输入引脚说明
  • 输出端子说明
  • 细分配置
  • 生成STM32CUBEMX
  • 启动配置
  • STBY配置
  • MODE1配置
  • MODE2配置
  • MODE3配置
  • MODE4配置
  • 定时器配置
  • STSPIN220驱动
  • 初始化mode

概述

STSPIN220 是一款步进电机驱动器,在一个小型 VFQFPN 3 x 3 x 1.0 mm 封装中集成了控制逻辑和低 RDS(开启)功率级。该套件提供一整套保护功能,包括过电流、过热和短路保护,并且可以强制进入零消耗状态,从而显著延长电池寿命。
本文档的目标是提供关于使用STM32CubeMX驱动低压步进电机驱动器STSPIN220的详尽信息和操作指南。通过本文档,将深入了解如何利用STM32CubeMX来配置电机驱动器,以及如何实现对步进电机的精确控制和运动。

最近在弄ST的课程,需要样片的可以加群申请:615061293 。

样品申请

https://www.wjx.top/vm/PpC1kRR.aspx

视频教学

https://www.bilibili.com/video/BV1Db8gzMEC7

低压步进器电机驱动器STSPIN220开发(1)----驱动STSPIN220

代码下载

https://download.csdn.net/download/qq_24312945/91621943

硬件准备

首先需要准备一个开发板,这里我准备的是自己绘制的开发板,需要的可以进行申请。
主控为STM32H503CBT6,驱动器为STSPIN220

参考程序

https://github.com/CoreMaker-lab/STSPIN220

https://gitee.com/CoreMaker/STSPIN220

功能框图

STSPIN220 是一个集成了控制逻辑和功率级的微步进驱动芯片,用于驱动双极型步进电机。下图图展示了芯片如何接收指令并控制两相电机的四个输出端(OUTA1/A2,OUTB1/B2)。

STSPIN220所有功能

STSPIN220作为一款专为步进电机而设计的芯片,具备多项卓越特性,为电机控制领域提供了高度可靠的解决方案:
宽范围工作电压: STSPIN220支持广泛的工作电压范围,从1.8V至10V,这意味着它适用于各种不同电源供应场景,从低电压到标准电压范围。
高输出电流能力: 最大输出电流1.3 Arms使STSPIN220能够驱动具有较高电流需求的步进电机,确保电机能够以足够的力量进行运动。
低RDS(ON)值: 芯片的高低侧电流传感器及MOSFET具有低RDS(ON)值,仅为0.4Ω(典型值)。这将减少功耗和热量损耗,提升电机的效率和性能。
精细的微步进控制: STSPIN220能够实现每次步进高达1/256的微步进,这使得步进电机的运动变得更加平滑和精准,适用于需要高精度控制的应用。
电流控制通过可编程关断时间: 芯片利用可编程关断时间来实现电流控制,这可以根据应用需求调整电机的电流,以获得最佳性能。
全套保护机制: STSPIN220提供全面的保护机制,包括非耗散性过电流保护、短路保护和热关断。这些保护机制确保在异常情况下电机驱动器和步进电机都能够安全运行。
极低待机耗电量: 该芯片的待机模式耗电量不足80 nA,这使得它非常适合在需要节能和延长电池寿命的应用中使用。

综上所述,STSPIN220以其广泛的工作电压范围、高输出电流能力、微步进控制、电流控制方式、保护机制以及低待机耗电量,为步进电机驱动提供了一种先进的解决方案。无论是在性能、效率还是电源管理方面,STSPIN220都为步进电机应用带来了出色的表现和可靠性。

基础配置

对于小电流电机,R10改为10K以下,这里设置为5.1k

REF

REF为参考电压,最大范围是-0.3-1V

电流配置

下图有配置公式。

可以看到R_SNS为0.68R,若设置200mA,那么V_REF=0.68R*200MA=136mV,和上面说的V_REF=136mV相符。

细分配置

STSPIN最高提供了256细分的操作,具体配置如下所示。

IO配置

查看原理图,主要有6个IO需要配置。
分别是STBY、EN、MODE1、MODE2、MODE3、MODE4。

IO说明如下所示。
其中EN\FAULT为使能管脚,需要配置为开漏输出。
使能高电平时候STSPIN220正常工作。

输入引脚说明

输出端子说明

细分配置

下图为设置细分示意图。


启动时序图如下所示,具体有如下几个步骤。

  1. 上电:首先,将驱动器供电,即将VS供电电压连接到驱动器。但是保持STBY和EN/FAULT输入都处于低电平状态。
  2. 设置MODEx输入:根据目标步进分辨率(可以参考Table 1),设置MODEx输入引脚的状态。这些引脚决定了步进电机的微步运动模式。
  3. 等待:等待至少1微秒(t MODEsu 最小时间)。这个等待时间是确保MODEx输入被稳定设置的时间。
  4. 将STBY引脚置高:将STBY引脚设置为高电平。这将导致之前设置的MODEx配置在设备内部被锁存。
  5. 等待:再等待至少100微秒(t MODEho 最小时间)。这个等待时间是确保MODEx配置被正确锁存的时间。
  6. 启用电源级:释放EN/FAULT输入,使电源级开始工作。这意味着驱动器已经准备好执行步进操作。
    通过按照这个推荐的上电顺序和设置过程,您可以确保在驱动器开始工作之前,各个输入的状态都稳定,并且微步模式配置正确地被锁存,从而实现步进电机的精确控制。这个过程有助于减少潜在的启动问题和不稳定性。

具体配置如下所示。

生成STM32CUBEMX

用STM32CUBEMX生成例程,这里使用MCU为STM32H503CB。
配置时钟树,配置时钟为250M。

启动配置

拉高 EN/FAULT 开始运行 。

STBY配置

MODE1配置

MODE2配置

MODE3配置

初始阶段为 MODE3 微步设定,之后为 Step Clock 输入 。

MODE4配置

定时器配置

STM32CUBEMX中,选择定时器1,并将其配置为PWM输出模式。确保选择了正确的定时器通道(通道1)。

配置定时器1的时钟源和预分频因子。根据应用的要求和系统时钟频率,选择适当的时钟源和预分频因子,以获得所需的脉冲频率。将定时器1的时钟源和预分频因子配置为适合您的应用的值。
PWM频率计算如下所示。

在上述配置中,将定时器1的预分频系数设置为250-1,自动重载值设置为1000-1。根据这些配置,PWM的频率可以计算为250,000,000 / ((250-1+1) * (1000-1+1)) = 1000Hz,即1kHz。
在定时器中,通道的 “pulse”(脉冲)是指定时器输出的信号的一种特性。每个定时器通道都可用于生成脉冲信号,而 “pulse” 通常指的是单个脉冲的持续时间。在这种设置中,我们将脉冲的占空比配置为50%,因此设置为500-1。

STSPIN220驱动

STSPIN220.c 和 STSPIN220.h 文件是用于控制 STSPIN220 步进电机驱动器的 HAL 底层驱动代码。

STSPIN220使能、低功耗、方向初始化如下所示。

//使能操作 1使能0失能voidSTSPIN220_enable(uint8_tenable){if(enable)HAL_GPIO_WritePin(EN_GPIO_Port,EN_Pin,1);elseHAL_GPIO_WritePin(EN_GPIO_Port,EN_Pin,0);}//方向设置 0反1正voidSTSPIN220_setDirection(uint8_tdirection){if(direction)HAL_GPIO_WritePin(MODE4_GPIO_Port,MODE4_Pin,1);elseHAL_GPIO_WritePin(MODE4_GPIO_Port,MODE4_Pin,0);}//低功耗模式 1使能0失能voidSTSPIN220_Stby(uint8_tstby){if(stby)HAL_GPIO_WritePin(STBY_GPIO_Port,STBY_Pin,0);elseHAL_GPIO_WritePin(STBY_GPIO_Port,STBY_Pin,1);}

在main.c中添加对应头函数。

/* USER CODE BEGIN Includes */#include"STSPIN220.h"/* USER CODE END Includes */

变量定义。

/* USER CODE BEGIN 0 */// 初始化 MODE3 引脚(即 STCK),用作步进脉冲输出voidMX_GPIO_Init_mode3(void);uint16_tSTSPIN220_PwmNum;// 控制电机旋转步数(PWM脉冲数量)uint8_tSTSPIN220_flag=0;// PWM计数完成标志uint8_tSTSPIN220_Dir_flag=0;// 电机方向标志:0反向,1正向/* USER CODE END 0 */

初始化mode

由于需要对mode进行初始化,主要操作为4个IO口,所以需要先对mode3管脚进行IO初始化为普通IO,后续切换为TIM模式。

/* USER CODE BEGIN 4 *//** * @brief 初始化 MODE3(STCK)引脚为输出模式,用于产生步进脉冲 */voidMX_GPIO_Init_mode3(void){GPIO_InitTypeDef GPIO_InitStruct={0};// 开启 GPIOA 时钟__HAL_RCC_GPIOA_CLK_ENABLE();// 设置初始电平为低HAL_GPIO_WritePin(MODE3_GPIO_Port,MODE3_Pin,GPIO_PIN_RESET);// 配置 MODE3 为推挽输出,无上拉下拉,低速GPIO_InitStruct.Pin=MODE3_Pin;GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull=GPIO_NOPULL;GPIO_InitStruct.Speed=GPIO_SPEED_FREQ_LOW;HAL_GPIO_Init(MODE3_GPIO_Port,&GPIO_InitStruct);}/* USER CODE END 4 */

同时定时器初始化需要关闭。

在初始化完毕mode3之后需要进行en和stby设置,具体如下所示。

/* USER CODE BEGIN 2 */MX_GPIO_Init_mode3();HAL_Delay(100);STSPIN220_SetStepMode(0);//mode1-mode4都关闭STSPIN220_enable(0);//使能操作 1使能0失能STSPIN220_Stby(1);//低功耗模式 1开启低功耗0关闭低功耗HAL_Delay(100);STSPIN220_SetStepMode(2);//细分操作STSPIN220_Stby(0);//低功耗模式 1开启低功耗0关闭低功耗,加载modeHAL_Delay(100);//等待电平稳定STSPIN220_setDirection(1);//0反1正HAL_Delay(100);//等待电平稳定STSPIN220_enable(1);//使能操作 1使能0失能HAL_Delay(100);MX_TIM1_Init();HAL_TIM_PWM_Start_IT(&htim1,TIM_CHANNEL_1);// 启动 TIM1 通道1,PWM带中断/* USER CODE END 2 */
http://www.jsqmd.com/news/841283/

相关文章:

  • Hackintool:黑苹果配置终极指南,15分钟解决显卡、音频和USB问题
  • 企业级AI应用集成实践:Dify与钉钉机器人深度整合架构解析
  • listmonk开发团队协作流程:代码审查与分支管理
  • 南昌航空大学25201517段为晨
  • 基于LLM与Mermaid的智能图表生成:从自然语言到架构图
  • RT-Thread动态内存未初始化问题:从原理到实战的解决方案
  • listmonk CI/CD安全最佳实践:保护构建环境
  • 济南千足金回收银项链回收铂金首饰回收裸钻回收闲置首饰回收本地排名正规门店专业推荐哪家靠谱二手哪家强 - 检测回收中心
  • Apex Legends终极压枪指南:免费自动武器检测与精准射击优化
  • 抖音无水印下载终极指南:三步实现批量下载与智能管理
  • 深入解析Android线程机制:从基础原理到高级实践
  • 7步掌握listmonk API认证:从令牌生成到权限验证实战指南
  • Awesome-GraphRAG实战教程:如何构建企业级知识图谱增强系统
  • 滁州黄金戒指回收白银首饰回收高价铂金回收品牌钻戒回收二手白银回收高价多少钱一克同城价格查询上门上门估价闲置变现转让靠谱权威排行榜 - 检测回收中心
  • 从数据到可解释模型:SISSO符号回归算法的5个核心优势
  • 为Hermes Agent配置自定义模型提供商接入Taotoken服务
  • 滁州千足金回收银项链回收铂金首饰回收裸钻回收闲置首饰回收高价多少钱一克同城价格查询上门上门估价闲置变现转让靠谱权威排行榜 - 检测回收中心
  • 小红书一面:MCP 和 Function Calling 有什么区别?
  • I2C地址冲突解决方案:从备用地址到TCA9548A复用器实战
  • 命令行媒体管理工具amem:本地化素材归档与自动化实践
  • 告别Anchor Boxes:用FCOS训练自定义VOC格式数据集,我踩了这些坑
  • listmonk邮件模板CSS内联性能:构建时vs运行时
  • Go-Binance SDK终极指南:一站式解决加密货币交易API集成难题
  • 告别重复劳动:用QEMU在Ubuntu 18.04上给RK3288板子批量定制Debian/Ubuntu系统镜像
  • 承德黄金手镯回收纯银回收白金回收50分钻石回收二手钻石回收本地排名正规门店专业推荐哪家靠谱二手哪家强 - 检测回收中心
  • 从Fastjson迁移到Jackson:实战封装高可用JsonUtil工具类
  • 终极指南:如何用ROFL-Player永久解决英雄联盟回放版本兼容性问题
  • OmenSuperHub深度解析:释放惠普游戏本隐藏性能的终极开源方案
  • XCLogParser高级用法:Swift编译时间分析和链接器统计
  • 嵌入式开发中Tab与空格混用的危害与统一规范实践