如何更有效地旋转步进电机 , 第 2 部分
扫描二维码
随时随地手机看文章
在本系列的第 1 部分中,我提供了一些关键想法:
· 设计步进电机。
· 步进电机可能很耗电。
· 反电动势 (EMF) 将指示步进电机负载。
· 您可以根据反电动势控制输出电流。
· 这可以帮助节省一些电力。
· 不谈现行法规!
所以现在所有的概念工作都完成了(阅读:根本没有真正的工作),是时候看看这个概念是否有任何现实基础。我可以制作一个可以根据反电动势自动调整步进输出电流以节省电力的系统原型吗?让我们来看看。
第 1 步:步进器选择
我的办公桌上碰巧有一个步进电机。我不知道它来自哪里,但我想我会使用它。有人亲切地写下“2.8A 1.4mH”。
第二步:步进驱动器选择
正如我在第 1 部分中所揭示的,DRV8711可以对步进电机的反电动势进行采样。这比从头开始设计整个系统要容易得多。
第三步:硬件原型
我必须亲自感谢TI 设计了DRV8711 BoosterPack。我将使用此设备进行原型设计。
DRV8711器件是一款步进电机控制器,它使用外部N沟道MOSFET来驱动-个双极步进电机或两个刷式直流电机。该器件集成了一个微步进分度器,此分度器能够支持全步长至1/256步长的步进模式。通过使用自适应消隐时间和包括自动混合衰减模式在内的多种不同的电流衰减模式,可实现非常平滑的运动系统配置。电机停止转动由一个可选反电势(EMF)输出报告。
一个简单的步进/方向或脉宽调制(PWM)接口可轻松连接至控制器电路。一个SPI串行接口被用来设定器件运行。输出电流(扭矩)、步进模式、衰减模式和堵转检测功能都可以通过SPI串行接口进行编程。还提供了用于过流保护、短路保护、欠压锁定和过热保护的内部关断功能。故障状况通过FAULTn引脚进行指示,并且每种故障状况通过SPI由一个专用位进行报告。
在线查看他的原理图,我遇到了一个问题:BEMF 引脚未路由到 MSP430™ LaunchPad。根据DRV8711数据表,此关键引脚是代表反电动势的模拟电压所在的位置。我需要将此电压读入 MSP430 设备,以便我可以控制何时增加或减少步进电机电流。
是时候做一些电路板修改了!正如你在下面看到的,我从板上取下了电位器(R6),并且非常不雅地将一根电线从 C7 焊盘连接到 POT 网络。至少我知道 POT 网络路由到 MSP430 模数 (ADC) 输入。
第 4 步:步进器表征
现在我可能拥有一个可以让我对步进电机的反电动势进行采样的功能性硬件,我首先对电机进行表征,然后再进行闭环控制编程。在继续进行 C 编程之前,我想确保这个计划有机会成功。
当我说“表征电机”时,我只是指确定在电机旋转时可以从DRV8711测量的反电动势电压。我可以通过使用BOOST-DRV8711 附带的固件和图形用户界面 (GUI) 来实现这一点(如下图 3 所示)。我想对几个不同速度的几个不同的反电动势测量值进行平均。
这个 GUI 让我可以控制电机速度,我将使用示波器查看 BEMF 引脚在做什么。每当准备好在 BEMF 引脚上查看新的反电动势样本时, DRV8711上称为 STALLn/BEMFVn 的另一个引脚就会拉低。当然,这只适用于“外部停顿检测模式”,这需要将 CTRL 寄存器中的 EXSTALL 位写入 1。下面的图 4 显示了实时情况。
DRV8711能够使用 STALL 寄存器的 VDIV 位将反电动势按 1/4、1/8、1/16 或 1/32 缩放。我的电机似乎使用 1/4 设置在 318rpm 时输出 3V,效果很好。扭矩寄存器还有一个称为 SMPLTH 的位,它告诉DRV8711在对步进电机的反电动势进行采样之前等待多长时间。对于我的电机,50µs 的最低设置似乎工作正常。我设置了我的DRV8711寄存器设置并以不同的速度获取了一些数据。
这个数据对我来说是非常鼓舞人心的。如果电机负载增加并且步进电机开始失速,反电动势将反映这一点并减少。我需要根据反电动势关闭控制回路,并确保在反电动势减小时电机电流(扭矩)增加。相反,如果电机运行良好且反电动势稳定,那么我可能会降低电机电流(扭矩),因为没有必要让电机保持在这个速度下旋转。