基于STM32CUBEMX驱动低压步进器电机驱动器STSPIN220(2)----驱动STSPIN220

news2024/11/22 14:40:31

基于STM32CUBEMX驱动低压步进器电机驱动器STSPIN220----2.驱动STSPIN220

  • 套件概述
  • 样品申请
  • STSPIN220描述
  • STSPIN220所有功能
  • 基础配置
  • REF
  • 电流配置
  • 细分配置
  • IO配置
  • 定时器配置
  • 初始化mode

套件概述

本文档的目标是提供关于使用STM32CubeMX驱动低压步进电机驱动器STSPIN220的详尽信息和操作指南。通过本文档,将深入了解如何利用STM32CubeMX来配置电机驱动器,以及如何实现对步进电机的精确控制和运动。

最近在弄ST的课程,需要样片的可以加群申请:615061293 。
在这里插入图片描述

样品申请

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

STSPIN220描述

STSPIN220是一款专为步进电机设计的高度集成型芯片,其独特的特性和功能使其在小型VFQFPN 3 x 3 x 1.0 mm封装中融合了控制逻辑和低RDS(on)功率级,为电机控制领域提供了出色的解决方案。
集成的控制逻辑和低RDS(on)功率级: STSPIN220集成了高效的控制逻辑和低RDS(on)功率级,这意味着它能够以高效的方式驱动步进电机,从而实现更低的能耗和更高的性能。
微步进分辨率和PWM电流控制: 该芯片内置的控制器充分利用了固定关断时间和高达1/256步进的微步进分辨率,以实现精准的PWM电流控制。这意味着可以实现更加精细的步进电机运动控制,从而满足不同应用的需求。
电池供电和零功耗模式: STSPIN220的设计兼顾了电池供电场景,可以强制进入零功耗状态,从而在电池供电情况下延长电池的使用寿命。这在移动设备和便携式应用中尤为有用。
全套保护机制: 该芯片提供了全面的保护机制,包括过电流保护、过温保护和短路保护等。这些保护机制能够确保步进电机在各种异常情况下保持稳定和安全运行,有效保护系统的可靠性。
综上所述,STSPIN220作为一款专为步进电机设计的芯片,在小型封装中融合了多种先进功能。它通过集成的控制逻辑、微步进分辨率和全套保护机制,为步进电机应用提供了高效、精确和安全的驱动解决方案,适用于各种应用领域,从工业自动化到便携式设备。无论是节能、精密控制还是延长电池寿命,STSPIN220都能够为项目带来可靠的性能和出色的效果。

在这里插入图片描述

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正常工作。
在这里插入图片描述
在这里插入图片描述
下图为设置细分示意图。STBY是STSPIN220驱动器中的一种状态,表示待机状态(Standby)。在待机状态下,驱动器可能会降低功耗,停止执行步进操作,以便在不需要进行步进电机运动时节省能源。当驱动器从待机状态退出时,会获取MODE输入的值。需要注意的是MODE1和MODE2都为低电平时候强制为全步模式。
在这里插入图片描述
在这里插入图片描述

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

  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输入,使电源级开始工作。这意味着驱动器已经准备好执行步进操作。
    通过按照这个推荐的上电顺序和设置过程,您可以确保在驱动器开始工作之前,各个输入的状态都稳定,并且微步模式配置正确地被锁存,从而实现步进电机的精确控制。这个过程有助于减少潜在的启动问题和不稳定性。

在这里插入图片描述

具体配置如下所示。

在这里插入图片描述
STSPIN220使能、低功耗、方向初始化如下所示。

//使能操作 1使能0失能
void STSPIN220_enable(uint8_t enable)
{
	if(enable)
		HAL_GPIO_WritePin(en_GPIO_Port, en_Pin, 1);
	else
		HAL_GPIO_WritePin(en_GPIO_Port, en_Pin, 0);

}

//方向设置 0反1正
void STSPIN220_setDirection(uint8_t direction)
{
	if(direction)
		HAL_GPIO_WritePin(mode4_GPIO_Port, mode4_Pin, 1);		
	else
		HAL_GPIO_WritePin(mode4_GPIO_Port, mode4_Pin, 0);		
}
//低功耗模式 1使能0失能
void STSPIN220_Stby(uint8_t stby)
{
	if(stby)
		HAL_GPIO_WritePin(stby_GPIO_Port, stby_Pin, 0);		
	else
		HAL_GPIO_WritePin(stby_GPIO_Port, stby_Pin, 1);	


}

定时器配置

STM32CUBEMX中,选择定时器1,并将其配置为PWM输出模式。确保选择了正确的定时器通道(通道4)。
在这里插入图片描述

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

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

在这里插入图片描述

初始化mode

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

/* USER CODE BEGIN 4 */
void MX_GPIO_Init_mode3(void)
{

  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOA_CLK_ENABLE();

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(mode3_GPIO_Port, mode3_Pin, GPIO_PIN_RESET);

  /*Configure GPIO pins : PAPin PAPin PAPin PAPin
                           PAPin */
  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(GPIOA, &GPIO_InitStruct);

}

/* USER CODE END 4 */

注意需要声明一下函数。

/* USER CODE BEGIN 0 */
void MX_GPIO_Init_mode3(void);
/* USER CODE END 0 */

同时定时器初始化需要关闭。
在这里插入图片描述

在初始化完毕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关闭低功耗,加载mode
	HAL_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(&htim1,TIM_CHANNEL_4);

  /* USER CODE END 2 */

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/842059.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue2中使用mock数据发送请求

1.安装 npm i mockjs1.1 2.准备json数据 说明:mock数据需要的图片放置到public文件夹中(原封不动的打包到dist文件夹) [{"id": "1","imgUrl": "/images/banner1.jpg"},{"id": "2&qu…

每天一道leetcode: 57.和为s的两个数字

今日份题目: 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。 示例1 输入:nums [2,7,11,15], target 9 输出:[2,7] 或者 …

一文带你快速了解【在树莓派上搭建web网站---并在外网可访问】

文章目录 概述使用 Raspberry Pi Imager 安装 Raspberry Pi OS测试 web 站点安装静态样例站点 将web站点发布到公网安装 Cpolarcpolar进行token认证生成cpolar随机域名网址生成cpolar二级子域名将参数保存到cpolar配置文件中测试修改后配置文件配置cpolar服务开机自启动 概述 …

Gson 添加数据默认值问题记录

问题:在用Gson add(key(string类型),value(必须是JsonElement子类))时发现,value 传了 "" 空字符串(非null),默认解析后返回null&#…

机器学习笔记 - 关于GPT-4的一些问题清单

一、简述 据报道,GPT-4 的系统由八个模型组成,每个模型都有 2200 亿个参数。GPT-4 的参数总数估计约为 1.76 万亿个。 近年来,得益于 GPT-4 等高级语言模型的发展,自然语言处理(NLP) 取得了长足的进步。凭借其前所未有的规模和能力,GPT-4为语言 AI​​设立了新标准,并为机…

11. 使用tomcat中碰到的一些问题

文章目录 问题一:Tomcat的startup.bat启动后出现乱码问题二:一闪而退之端口占用问题三:非端口问题的一闪而退问题四:服务器的乱码和跨域问题问题五: 在tomcat\webapps\下创建文件夹为什么tomcat重启就会丢失问题六:Tom…

18 | 基于DDD的微服务设计实例

为了更好地理解 DDD 的设计流程,这篇文章会用一个项目来带你了解 DDD 的战略设计和战术设计,走一遍从领域建模到微服务设计的全过程,一起掌握 DDD 的主要设计流程和关键点。 项目基本信息 项目的目标是实现在线请假和考勤管理。功能描述如下…

适配器模式(C++)

定义 将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 应用场景 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象 ”放在新的环境中应用,但是新环境要求…

Codeforces Round 890 (Div. 2) D. More Wrong(交互题 贪心/启发式 补写法)

题目 t(t<100)组样例&#xff0c;长为n(n<2000)的序列 交互题&#xff0c;每次你可以询问一个区间[l,r]的逆序对数&#xff0c;代价是 要在的代价内问出最大元素的位置&#xff0c;输出其位置 思路来源 neal Codeforces Round 890 (Div. 2) supported by Constructo…

python:isdigit()、isalpha()、isalnum() 三个函数的区别和注意点

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 一、isdigit() python关于 isdigit() 内置函数的官方定义&#xff1a; S.isdigit() -> bool Return True if all characters in S are digitsand there is at least one character in S, False otherwise.翻…

文心一言 VS 讯飞星火 VS chatgpt (72)-- 算法导论7.1 3题

三、请简要地证明:在规模为 n 的子数组上&#xff0c;PARTITION 的时间复杂度为 Θ(n)。 文心一言&#xff1a; 首先&#xff0c;我们需要明确PARTITION函数的具体定义。PARTITION函数通常用于快速排序算法中&#xff0c;它将一个数组分为两个子数组&#xff0c;使得一个子数…

【TypeScript】交叉类型联合类型(四)

【TypeScript】交叉类型&联合类型&#xff08;四&#xff09; 【TypeScript】交叉类型&联合类型&#xff08;四&#xff09;一、简介二、交叉类型2.1 交叉类型使用的注意点2.2 基本数据类型交叉2.3 对象类型交叉 三、联合类型四、类型缩减 一、简介 TypeScript 中的交…

【二】SPI IP核的使用

【一】SPI IP核使用&#xff1a;传送门 基于qsys通过spi外部总线协议对sd卡进行读写操作 一、实验平台与实验的目的&#xff1a; ​ 正点原子开拓者、芯片型号&#xff1a;EP4CE10F17C8&#xff1b;还需要一张sd卡。 ​ 该实验主要是利用SPI IP核驱动SD卡来实现读写实验&am…

主成分分析学习笔记

概述 主成分分析&#xff08;Principal Component Analysis&#xff09;是一种常见的数据分析方式&#xff0c;常用于高维数据的降维&#xff0c;提取数据的主要特征分量&#xff0c;其数学推导可以从最大可分性和最近重构性两个角度着手&#xff0c;前者的优化条件为划分后方…

MySQL-NoSQL整体笔记---持续输出中

MySQL部分 一、搭建 MySQL 数据库服务器 1、下载并上传glibc版本的Mysql 2、新建用户以安全方式运行进程 [roottemplate ~]# groupadd -r -g 306 mysql [roottemplate ~]# useradd -g 306 -r -u 306 mysql3、安装并初始化mysql [roottemplate ~]# tar xf mysql-5.7.36-linu…

【Azure Developer】使用 Microsoft Graph API 获取 AAD User 操作示例

问题解答 使用Microsoft Graph API&#xff0c;演示如何获取AAD User信息&#xff0c;因参考文档是针对Global Azure&#xff0c;所以文档种的URL为&#xff1a; // Global Azure Microsoft Graph API Host GET https://graph.microsoft.com/v1.0/me 需要修改为 // 中国区A…

iperf 安装与使用

iperf命令是一个网络性能测试工具&#xff0c;可以测试TCP和UDP带宽质量。同时也可以通过UDP测试报告网丢包率或者发包性能&#xff0c;是一个非常实用的工具 1.windwos安装 可以直接通过官网下载对应系统版本进行安装&#xff08;https://iperf.fr/iperf-download.php&#…

无涯教程-Perl - each函数

描述 在列表context中调用此函数时,将返回一个由2个元素组成的列表,该列表由哈希的下一个元素的键和值组成,以便您可以对其进行迭代。在标量context中调用时,仅返回哈希中下一个元素的键。 语法 以下是此函数的简单语法- each HASH返回值 在列表context中调用此函数时,将返…

红帽认证前景如何,有什么优势?

红帽Linux认证优势: RedHat是全球最大的开源技术厂家&#xff0c;是世界领先的开源解决方案供应商&#xff0c;其产品RedHat Enterprise Linux&#xff08;红帽企业级 Linux&#xff09;也是全世界应用最广泛的Linux。 作为检验Linux技能的黄金标准&#xff0c; RHCE认证项目已…

农商行基于分类分级的数据安全管控建设实践

《数据安全法》颁布实施以来&#xff0c;以分类分级为基础&#xff0c;对数据进行差异化管理和防护&#xff0c;成为行业共识。 金融行业作为数据密集的高地&#xff0c;安全是重中之重&#xff0c;而鉴于金融数据种类和内容庞杂&#xff0c;面临规模化用数、普惠用数、跨机构共…