我有一个基于 Allegro A4988 芯片的步进电机驱动器分线板。我注意到,当电机静止时,它的保持扭矩比移动时要好得多。我有一个电池供电的配置,大部分时间步进电机仅用于保持位置。限制设置电位器已经在分线板上,所以我不能用我的微控制器来改变它。
我能否将 PWM 信号应用到电机驱动器的使能引脚以改变进入电机的电流,以便在主动移动时以更高的电流水平驱动电机并减少保持位置的电流?
我最感兴趣的是 PWM 信号对驱动电路寿命的影响。数据表上没有任何地方说你可以或不能做这样的事情。
我有一个基于 Allegro A4988 芯片的步进电机驱动器分线板。我注意到,当电机静止时,它的保持扭矩比移动时要好得多。我有一个电池供电的配置,大部分时间步进电机仅用于保持位置。限制设置电位器已经在分线板上,所以我不能用我的微控制器来改变它。
我能否将 PWM 信号应用到电机驱动器的使能引脚以改变进入电机的电流,以便在主动移动时以更高的电流水平驱动电机并减少保持位置的电流?
我最感兴趣的是 PWM 信号对驱动电路寿命的影响。数据表上没有任何地方说你可以或不能做这样的事情。
我在数据表中看不到任何内容表明使能引脚无法脉冲。从内部电路很难判断它是否会导致问题。使能引脚关闭外部场效应管,这可能意味着芯片无法正确循环电流,从而导致电压尖峰。但是,我希望 Allegro 能够处理这种情况,因为每次 Enable 变高时都会发生这种情况。
如果您有备用驱动程序,那么我的建议是尝试一下。
或者,您可以降低 Vref 电压,而不是使用 PWM。然后,A4988 将为您很好地减少电流。这可以通过使用电阻器和晶体管或 MCU 的引脚将 Vref 引脚拉低一点来实现,MCU 的引脚可以在低阻抗和高阻抗之间切换。
一个更好的解决方案可能是使其自动化。使用阶跃信号对一个电容器快速充电,从而拉高 Vref 电压。没有阶跃信号会使电容缓慢放电,Vref 电压和电机电流也会随之放电。步数越快,Vref 就越高。
这是它如何工作的非常粗略的示意图。我只是猜测了电阻值,并没有检查它们是否可以工作。(练习留给读者)。
我不确定您所说的“极限设置电位器”是什么意思,但是(假设您的意思是电流检测电阻和(这将是一个有趣的设计,它们应该匹配低阻抗电阻器)我在第 9 页读到,在内部 PWM 电流控制部分:
电流限制的最大值由 RSx 的选择和 VREF 引脚上的电压设置。跨导函数近似为限流最大值 (A),由下式设置
其中是检测电阻 (Ω) 的电阻,V_{REF} 是 REF 引脚上的输入电压 (V)。
您可以访问 REF 引脚(引脚 17)吗?如果是这样,使用 DAC 进行调整将产生与改变检测电阻器相同的效果。
如果不是,启用输入可能是比切断电源或使用睡眠或关闭引脚更好的选择,这些会导致 1 ms 延迟(根据第 10 页的描述)。
不,我的意思是:您可以在使能引脚上应用 PWM 脉冲,但它会干扰 Allegro A4988 使用的内部斩波频率。
我已经用 Arduino(PWM = 490 Hz - IIRC)提供的不同占空比测试了您的想法,但它根本不起作用:步进器的运动不稳定且不规则。无法使用。唯一有效的占空比值是 0% 和 100%(即程序中的 0 和 255)。
似乎用一些额外的电路修改 Vref 值是最好的方法。但我没有测试它。
当然,您可以使用 PWM,但您的步进电机可能会随着 PWM 频率而开始发出一点声音。选择一个您无法听到(>20kHz)或无法忍受哨声的高频。