概述
Grbl_ESP32 支持多种类型的步进电机驱动器。步进电机驱动器使用来自控制器的步进、方向和使能信号,并产生运行步进电机所需的线圈电流。任何可以接受这些步进、方向和使能信号的东西,比如ODrive 伺服电机,都可以被认为等同于步进电机。
StepStick 式驱动器(又名 Pololu)
StepStick或Pololu型驱动器使用标准的 2 列、8 行格式的引脚。它们都共享相同的基本引出线,因此它们通常可以相互交换。其中大部分与 3.3V 兼容,可与 ESP32 一起使用。有些具有板载 5V Vcc 源,因此通常不兼容。每个的电机电流和微步进可能不同,因此您可能需要在交换时调整与之相关的内容。
您通常使用电位器调整电机电流。您可以使用标记为 MS1、MS2 和 MS3 的引脚上的一些跳线来调整微步级别。ESP32 可以处理非常高的步进速率,因此一些控制器取消了微步跳线并将它们硬接线到最好的微步级别。
您可以通过将 STEPPERS_DISABLE_PIN 定义为启用引脚(例如 GPIO_NUM_2)来为这些驱动程序设置启用引脚。要反转启用信号,您可以将 DEFAULT_INVERT_ST_ENABLE 定义为 1,但这些驱动程序通常要求启用信号不被反转。
要使驱动程序启用的时间比动作更长,您可以将 $Stepper/IdleTime 设置为以毫秒为单位的某个超时。超时 255 是最大值,这意味着驱动程序将始终保持启用状态。
以下是一些常见的 StepStick 风格的驱动程序
- Allegro A4988 – 我喜欢这些用于像 NEMA14 这样的小型电机。它们在非常低的电流下往往比其他一些运行得更好。
- TI DRV8825 – 它具有高功率水平,但往往噪音很大,即使在电机未运行时也是如此。
- 一些 Trinamic 驱动程序(在独立模式下)——这些驱动程序以其非常低的噪音水平而闻名。
- S109 (Toshiba 7S109) – 它具有 5V 输出,可能会损坏 ESP32。在 Github 上查看这个问题。
Trinamic (SPI) 控制的驱动器
许多 Trinamic 驱动程序有太多的调整,一个 pot 和几个跳线是不够的。他们使用 SPI 通信总线进行调整。固件必须设置这些值。许多要更改的常见内容都可以通过 $$ 设置进行调整。
驱动器可以使用单独的 CS(片选)电路,或者它们为所有驱动器菊花链连接一个 CS 电路。有一个关于这些驱动程序使用的完整 wiki 页面。
Trinamic(UART 控制的驱动程序)
Grbl_ESP32 目前不支持这些。
外部电机驱动器
它们提供强大的功能和多种微步选项。他们通常在步进、方向和使能输入上使用光电隔离器。这意味着信号点亮 LED,LED 照亮检测器,检测器将信号传输给驱动器。这意味着驱动器与 CNC 控制器电气隔离。这可以防止机器端的噪声或电压尖峰损坏 CNC 控制器 (ESP32) 端。这就是为什么每个输入都有一个 + 和 – 连接。他们之间没有共同点。
电路中的LED需要一个限流电阻。通常驱动器内部有一个大小为 5V 的。这意味着当信号为 5V 时您不需要电阻器,如果您想在 5V 以上运行,您可以添加一个额外的外部电阻器。不幸的是,ESP32 是一个 3.3v 设备。
大多数人报告说 3.3V 仍然可以正常工作,但如果电压下降,您可能非常接近无法工作的阈值。我不建议在 3.3V 下运行它们。您可以使用电压电平转换器,但要小心使用哪一个。常见的如 TI TSX0101 对高信号使用上拉电阻。该电阻无法驱动 LED 所需的电流(几毫安)。可以使用晶体管阵列或类似 74ACT245 芯片的东西。
闭环步进电机驱动器
这些工作与上面的外部电机驱动器非常相似。如果闭环功能检测到失速,它们通常会发出警报输出。Grbl_ESP322 不直接支持,但理论上可以连接到保持或重置输入。