TMC5160 StallGuard2 堵转测试

2024-03-14 17:10

本文主要是介绍TMC5160 StallGuard2 堵转测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

驱动系统硬件原理

ADI的TMC5160是一款高度紧凑的步进电机控制器和驱动器IC,具有最低功耗和最高动态性能的功率级,能确保无噪音运行,结合最高效率和最佳电机扭矩。阮工运用TMC5160 StallGuard2,通过编码器来判断阀门是否已经开启或关闭,通过扭矩判断阀门是否异常不能打开和关闭。该项目输入参数如下表:
在这里插入图片描述

硬件原理框架设置的系统架构。

在这里插入图片描述

电源电压输入部分

电源DC-DC选择ADI的MAX17501,MAX17502,该型号输入电压可以支持最高60V(和TMC5160最高输入电压一致)。电流分别是500mA和1A,封装一致,由于不同的外设(光电开关、编码器)需求电流不一样,用户可以根据实际需求来选择型号。
为了实现断电记忆的功能,使用超级电容来作为备份电源,超级电容芯片选择LTC3225对超级电容进行充电管理。当电源断电后超级电容还可以持续输出一段时间来维持MCU的供电,MCU就可以检测输入电压来判断是否已断电来记录位置。
MCU供电以MAX8891,MAX8891低压差(LDO)线性稳压器设计用于提供高达150mA的连续输出电流,可以满足MCU、通信接口芯片的供电电流。

步进电机驱动部分

步进电机驱动部分使用了TMC5160。TMC5160的电压范围为8-60V;支持编码器接口和2个参考开关输入;支持StallGuard2高精度的无传感器负载检测,可用于阀门故障检测;外置MOS管,最大支持电流20A。实际应用时,选择60V40A的mos,可以满足最大5A的需求。

通信部分

阮工在CAN接口使用了MAX3051,该型号支持最大1M的速率。RS485接口使用了MAX3060,该型号±15kV ESD保护、失效保护、20Mbps,输入电压是3.3V。接口芯片供电都是3.3V,可以直接与MCU链接。并且这两个型号体积小,可以很好地优化PCB尺寸。用户可以根据项目实际的需求来选择通信接口。

位置反馈

大部分编码器使用的是差分信号,这里以MAX14980作为信号转换,将差分信号转换为单端信号,链接TMC5160和MCU的编码器接口。

程序调试

由于该案例需要通过力矩来判断阀门的故障和极限位置作为原点,需要使用StallGuard2的功能。下面介绍StallGuard2的相关寄存器及配置过程:

关键寄存器:

IHOLD_IRUN 0X10 电流寄存器

设置合适的电流,设置电流大小直接影响电机的负载能力。设定电流改变后sgt值也需要调节。
在这里插入图片描述

VMAX 0X27 最高速度

使用StallGuard2的最佳工作速度范围在10-300PRM,不同的电机速度有所区别。
在这里插入图片描述

SW_MODE 0X34 sg_stop 10bit- 1:启用STALLGUARD 2功能。

图5.sg_stop寄存器表

COOLCONF 0x6D: 16bit-22bit StallGuard2 阈值用于设置灵敏度;24bit-标准/滤波模式。

在这里插入图片描述

TCOOLTHRS 0X14:使能CoolStep和StallGuard2功能的下限速度,到达此值电机停止并保持。

在这里插入图片描述

DRV_STATUS 0X6F: StallGuard2值和驱动错误标志0-9bit SG_RESULT(负载值) 用于监测电机所剩的扭力。

在这里插入图片描述

配置代码

步骤1:

spi_writeRegister(SW_MODE,0x0600);–使能StallGuard2

spi_writeRegister(IHOLD_IRUN,value);–设置电机的额定电流

spi_writeRegister(VMAX,MAX_Speed_);–设置最高速度

spi_writeRegister(COOLCONF,0);–设置StallGuard2灵敏度

spi_writeRegister(TCOOLTHRS,

setTCOOLTHRS );–设定停止阈值,此值可以根据不同的阀门状态来设定,如归零或开启/关闭

spi_writeRegister(RAMPMODE,

VELOCITY_MODE_POS);–启用速度模式

步骤2:

spi_readRegister(DRV_STATUS);–50ms定时读取SG_RESULT(负载值)

步骤3:

StallGuard2值SG_RESULT受电机特性及特定应用的负载和速度影响。因此, 针对特定电机类型和运行条件调整Stallguard2阈值SGT的最简单方法是在实际应用中进行交互式调整。

接下来调整StallGuard2的SGT的初始步骤。

  1. 以适用的正常运行速度运行电机,并监控SG_RESULT 。

  2. 缓慢增加电机的机械负载。如果电机在SG_RESULT达到0之前停止,则减小SGT。如果SG_RESULT在电机停止之前达到0,则增大SGT。0是SGT初始值。SGT是有符号的,可正可负。

  3. 将TCOOLTHRS设置为高于TSTEP的值,并启用sg_stop使能堵转停止功能。确保电机在停机时安全停止。如果电机在堵转发生前停止,增加SGT。通过禁用sg_stop或读并写入RAMP_STAT寄存器(写+清除功能)重新启动电机。

  4. 在电机增加负载堵转前,SG_RESULT最佳范围大约在0和10之间,且在没有负载的情况下SG_RESULT增加100或更多时。在大多数情况下,SGT应在某个运动速度或速度范围调整。确保设置在一定范围内(例如所需速度的80%至120 %)以及极端电机条件下(最低和最高适用温度)工作可靠。

允许自动调整 SGT 的可选步骤

SGT设置背后的基本思想是补偿电机内部电阻损耗的对StallGuard2影响。在静止和非常低的速度下,由于机械功率为零或接近零,电阻损耗是电机能量平衡的主要因素。这样可以将SGT设置为接近零速度的最佳值。该算法特别适用于在应用中调整SGT,以获得与环境条件、电机杂散等无关的最佳结果。

  1. 以小于10 RPM(即每秒几个至几十个全步的低速运行电机,并获得目标运行电流和电源电压。)在此速度范围内,SG_RESUL对电机负载的依赖性不大,因为电机不会产生显著的反电势。因此,机械负载对结果影响不大。

  2. 打开sfilt滤波器。将SGT从0逐渐增加到SG_RESULT开始增加。当SGT值较高时,SG_RESUL将上升到最大值,继续增大SGT则SG_RESULT会溢出到0。现在,SGT值被设置成最大敏感。当看到SG_RESULT以较高的速度增加时,则检测到堵转。

该参数设置下堵转检测的上限速度由速度确定,在该速度下,电机反电势接近电源电压,速度继续增大电机电流开始下降。

当电机堵转时,SG_RESULT变为0,可配置斜坡发生器 SW_MODE中的sg_stop 使能在堵转事件时停止电机。将TCOOLTHRS设置为与较低的速度阈值相匹配,在该阈值下,StallGuard2 结果最佳,完成有效的sg_stop。

ADI的TMC5160 StallGuard2的功能非常广泛,TMC5160 CoolStep负载自适应电流控制,也是基于StallGuard2的负载检测来控制电流输出电流大小,实现低功耗,节约能源,降低芯片温度。在某些应用中可以通过力矩来诊断设备的健康状况和设备归零的功能,还可以节省编码器及光电开关,有效的节约生产成本。
文章大部分内容来自芯片推广文章自己稍加整理,如有侵权请告知立即删除。

这篇关于TMC5160 StallGuard2 堵转测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/809103

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

BIRT 报表的自动化测试

来源:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-birttest/如何为 BIRT 报表编写自动化测试用例 BIRT 是一项很受欢迎的报表制作工具,但目前对其的测试还是以人工测试为主。本文介绍了如何对 BIRT 报表进行自动化测试,以及在实际项目中的一些测试实践,从而提高了测试的效率和准确性 -------

可测试,可维护,可移植:上位机软件分层设计的重要性

互联网中,软件工程师岗位会分前端工程师,后端工程师。这是由于互联网软件规模庞大,从业人员众多。前后端分别根据各自需求发展不一样的技术栈。那么上位机软件呢?它规模小,通常一个人就能开发一个项目。它还有必要分前后端吗? 有必要。本文从三个方面论述。分别是可测试,可维护,可移植。 可测试 软件黑盒测试更普遍,但很难覆盖所有应用场景。于是有了接口测试、模块化测试以及单元测试。都是通过降低测试对象

day45-测试平台搭建之前端vue学习-基础4

目录 一、生命周期         1.1.概念         1.2.常用的生命周期钩子         1.3.关于销毁Vue实例         1.4.原理​编辑         1.5.代码 二、非单文件组件         2.1.组件         2.2.使用组件的三大步骤         2.3.注意点         2.4.关于VueComponen

如何成为一个优秀的测试工程师

链接地址:http://blog.csdn.net/KerryZhu/article/details/5250504 我一直在想,如何将自己的测试团队打造成世界一流的团队?流程、测试自动化、创新、扁平式管理、国际标准制定、测试社区贡献、…… 但首先一点是明确的,就是要将每一个测试工程师打造成优秀的测试工程师,优秀的团队必须由优秀的成员构成。所以,先讨论“如何成为一个优秀的测试工程师”,

python自动化测试框架--RobotFramework

为什么需要测试框架 在测试中,经常会为了怎样做测试、使用什么测试工具、如何使用、为什么使用测试工具、使用测试工具能帮助到我们什么等等问题而纠结。当我们选择一项测试工具时,如何组织大量自动化用例;如何合理的进行初始化清除;如何批量筛选待执行的用例;如何输出清晰的测试报告,就是需要我们考虑的事情了。下面简单介绍个使用比较广泛的自动化测试框架,即Robotframework。 RF的特点 RF:由pyt