概述
Trinamic 驱动程序有 2 种基本模式。SteathChop是超静音模式,CoolStep是一种模式,驱动程序可以在电机负载时动态增加电流。由于CoolStep可以确定负载,因此在许多情况下它可以感知电机何时即将停止或已经停止。如需进一步阅读,Trinamic 有一篇关于 StallGuard 的应用说明。
它通过测量发送到电机的能量与返回的能量之比来实现这一点。随着电机负载的增加,返回的能量会减少。当返回的能量下降到某个点时,驾驶员将指示失速。由于有许多功率损耗源,例如接线和电机设计,驱动器允许您设置指示失速的级别。
该方法不适用于非常低和非常高的速度。您必须测试您的系统以确定用于失速检测的良好速度,以避免错过失速或错误指示。
StallGuard 适合您吗?充其量它可以精确到大约 1-2 个完整步骤。大多数基本开关会更准确。对于 3D 打印机或笔式绘图仪上的 X 和 Y,精度可能没问题,但对于路由器或激光雕刻机可能就不行了。由于它在低速和高速下效果不佳,因此不建议使用硬限制(全时限检测)。它没有用双电机轴进行测试。
设置
Grbl_ESP32 将设置驱动程序以将停止信号发送到驱动程序上的Diag1引脚。您必须从该引脚连接到限位开关输入。移除该电路上的任何物理开关,以防止驱动器电路短路。
某些控制器(如 6 Pack)具有将 StallGuard 信号从驱动器连接到开关的跳线。您需要为正在使用的轴安装跳线。在此处查看有关 6 件装的更多信息。
确保您的驱动器安装了引脚以与步进驱动器插座顶部的 2 针插座配合。
驱动程序在归位期间必须处于StallGuard模式。确保你的机器定义中有这个。
#define TRINAMIC_HOMING_MODE TrinamicMode :: StallGuard
测试和调整
使用$Report/StallGuard=X打开 StallGuard 数据的显示。这将导致 StallGuard 数据输出到USB/串行端口。它必须使用串行端口以获得最佳数据速度和时序。数据将如下所示。这些是检测到失速之前的 4 个读数。注意:仅在调整时使用此报告。运行普通 gcode 时关闭报告。
[MSG:X Axis SG_Val: 0168 Rate: 00400 mm/min SG_Setting:16]
[MSG:X Axis SG_Val: 0087 Rate: 00400 mm/min SG_Setting:16]
[MSG:X Axis SG_Val: 0070 Rate: 00400 mm/min SG_Setting:16]
[MSG:X Axis SG_Val: 0000 Rate: 01000 mm/min SG_Setting:16]
这就是价值观的意思……
- X 轴这是正在显示的轴
- SG_Val:0168这是 StallGuard 传感器的当前值。你想把它变成 0000
- 速率:00400 mm/min这是 Grbl_ESP32 正在产生的当前步进速率。这应该接近您的$HomingSeek值,但会随着加速和减速而上升和下降
- SG_Setting:16这是当前的$xStallGuard设置。
将$HomingSeek和$Homing/Feed设置为中间值,例如 400mm/min。使用 StallGuard 时应将它们设置为相同。
将$StallGuardTuning设置为典型值 10。
家庭使用$HX。将负载添加到接近失速的电机。观察价值观。
您希望 SG_Val: 降至 0。
尝试不同的速度和$xStallGuard值。
较低的值 = $xStallGuard 较低的值使其更敏感。
尝试上下调整$xStallGuard,直到获得最佳灵敏度而不会误触发。记录你的结果。
使用相同的过程尝试不同的归位速度值。
使用您找到的最佳值组合。