Trinamic 驱动器有两种基本模式。SteathChop是超静音模式,而CoolStep是驱动器可以在电机负载时动态增加电流的模式。由于CoolStep可以确定负载,因此在许多情况下它可以感知电机何时即将停转或已经停转。如需进一步了解,Trinamic 有一篇关于 StallGuard 的应用说明。
它通过测量发送到电机的能量与返回的能量之比来实现这一点。随着电机负载的增加,返回的能量会减少。当返回的能量降至某一点时,驱动器将指示失速。由于有许多电源损耗来源,例如接线和电机设计,因此驱动器允许您设置指示失速的水平。
该方法在极低和极高的速度下不起作用。您必须测试您的系统以确定失速检测的良好速度,以避免错过失速或错误指示。
StallGuard 适合您吗?它最多可以精确到大约 1-2 个完整步骤。大多数基本开关会更准确。对于 3D 打印机或笔式绘图仪上的 X 和 Y,其精度可能很好,但对于路由器或激光雕刻机来说可能不行。由于它在低速和高速下工作不佳,因此不建议将其用于硬限制(全时限检测)。它尚未在双电机轴上进行测试。
Grbl_ESP32 将设置驱动器以将失速信号发送到驱动器上的Diag1引脚。您必须将该引脚连接到限位开关输入。移除该电路上的所有物理开关,以防止驱动器电路短路。
某些控制器(例如 6 Pack)具有将驱动器的 StallGuard 信号连接到开关的跳线。您需要为所使用的轴安装跳线。在此处查看有关 6 Pack 的更多信息。
确保您的驱动器已安装针脚,以便与步进驱动器插座顶部的 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 毫米/分钟这是 Grbl_ESP32 产生的当前步进速率。这应该接近您的$HomingSeek值,但会因加速和减速而上升和下降
- SG_Setting:16这是当前的$xStallGuard设置。
将$HomingSeek和$Homing/Feed设置为中间值,例如 400mm/min。使用 StallGuard 时,它们应该设置为相同。
将$StallGuardTuning设置为典型值 10。
使用$HX回到原点。给电机添加一个负载,使其接近失速。观察数值。
您希望 SG_Val: 降至 0。
尝试不同的速度和$xStallGuard值。
较低的值 = $xStallGuard 越低,其敏感度就越高。
尝试上下调整$xStallGuard,直到获得最佳灵敏度且无误触发。记录结果。
使用相同的过程尝试不同的归位速度值。
使用您找到的最佳值组合。