1. 主页
  2. 文档
  3. ESP32_GRBL文档
  4. Trinamic 驱动程序使用

Trinamic 驱动程序使用

Trinamic 驱动程序支持

基本 Trinamic 驱动程序支持

注意:如果您打算使用 TMC5160 驱动程序,请先查看此页面

此页面用于在固件控制下使用 Trinamic 驱动程序。它不适用于在 StepStick 或独立模式下使用的 Trinamic 驱动程序。这些将像普通的 StepStick 驱动程序一样使用。

Grbl_ESP32 支持两种类型的 Trinamic 驱动程序。有SPI类型和UART类型。

SPI 驱动程序

目前您只能使用默认的 SPI。您的 PCB 应为 MOSI 使用 GPIO_NUM_32,为 MISO 使用 GPIO_PIN_19,为 SCK 使用 GPIO_NUM_18。

驱动器部件号

对于您使用的每个 Trinamic 驱动程序,您需要为每个轴添加一个#define X_TRINAMIC_DRIVER nnnn,其中 nnnn 是整数形式的驱动程序型号。目前这款限量 2130 和 5160。

CS(片选)引脚

您可以为每个驱动器使用单独的 CS 引脚,或者如果驱动器以菊花链模式连接,则使用单个 CS 引脚。如果您使用菊花链模式,则必须将#define TRINAMIC_DAISY_CHAIN添加到您的机器定义文件中。对于每个电机,您需要使用#define X_CS_PIN pin定义 CS 引脚。如果您使用菊花链模式,每个电机应使用相同的引脚号。

串口驱动程序

这些使用 UART 与驱动程序通信。Grbl_ESP32目前支持TMC2209

串口设置

您必须提供有关 UART 的信息

#define TMC_UART                UART_NUM_1
#define TMC_UART_RX             GPIO_NUM_21
#define TMC_UART_TX             GPIO_NUM_22  

地址

每个芯片都必须有一个地址。这是由电路定义的。将其定义为#define X_DRIVER_ADDRESS n,其中 n 是地址。这通常是 0-3。

两种类型的共同点

驱动使能

  • 您可以使用#define STEPPERS_DISABLE_PIN 引脚为所有驱动程序使用单个启用引脚
  • 您可以使用#define X_DISABLE_PIN 引脚为每个电机定义启用
  • 您可以使用 SPI 启用#define USE_TRINAMIC_ENABLE

检测电阻值

您必须告诉固件每个驱动器的感应电阻器的值。这是固件使用#define X_RSENSE 0.11正确设置电机电流所必需的。每个电机都有一个默认定义,通常是正确的,设置如下#define X_RSENSE TMC2130_RSENSE_DEFAULT

其余的东西就像步骤一样。方向等与普通电机驱动器相同。

运行模式

有用于正常操作和归位的运行模式。

  • #define TRINAMIC_UART_RUN_MODE xxx
  • TRINAMIC_UART_HOMING_MODE xxx

xxx 的有效值为

  • TrinamicUartMode :: StealthChop
  • TrinamicUartMode :: StallGuard
  • TrinamicUartMode :: CoolStep

这是机器定义文件的一部分以供参考。

// SPI Daisy chain style with software enable

#define TRINAMIC_DAISY_CHAIN
#define USE_TRINAMIC_ENABLE
	
#define X_TRINAMIC_DRIVER       2130        // Which Driver Type?
#define X_RSENSE                TMC2130_RSENSE_DEFAULT
#define X_CS_PIN                GPIO_NUM_17  // Daisy Chain, all share same CS pin
#define X_STEP_PIN              GPIO_NUM_12
#define X_DIRECTION_PIN         GPIO_NUM_14

#define Y_TRINAMIC_DRIVER       2130        // Which Driver Type?
#define Y_RSENSE                TMC2130_RSENSE_DEFAULT
#define Y_CS_PIN                X_CS_PIN  // Daisy Chain, all share same CS pin
#define Y_STEP_PIN              GPIO_NUM_27
#define Y_DIRECTION_PIN         GPIO_NUM_26
// SPI with Individual CS and Single Enable

#define STEPPERS_DISABLE_PIN GPIO_NUM_13
	
#define X_TRINAMIC_DRIVER       2130        // Which Driver Type?
#define X_RSENSE                TMC2130_RSENSE_DEFAULT
#define X_CS_PIN                GPIO_NUM_17
#define X_STEP_PIN              GPIO_NUM_12
#define X_DIRECTION_PIN         GPIO_NUM_14

#define Y_TRINAMIC_DRIVER       2130        // Which Driver Type?
#define Y_RSENSE                TMC2130_RSENSE_DEFAULT
#define Y_CS_PIN                GPIO_NUM_16
#define Y_STEP_PIN              GPIO_NUM_27
#define Y_DIRECTION_PIN         GPIO_NUM_26
// UART Drivers

#define TRINAMIC_UART_RUN_MODE       TrinamicUartMode :: StealthChop
#define TRINAMIC_UART_HOMING_MODE    TrinamicUartMode :: StallGuard

#define TMC_UART                UART_NUM_1
#define TMC_UART_RX             GPIO_NUM_21
#define TMC_UART_TX             GPIO_NUM_22  

#define STEPPERS_DISABLE_PIN GPIO_NUM_13
	
#define X_TRINAMIC_DRIVER       2209
#define X_STEP_PIN              GPIO_NUM_26
#define X_DIRECTION_PIN         GPIO_NUM_27
#define X_RSENSE                TMC2209_RSENSE_DEFAULT
#define X_DRIVER_ADDRESS        0

#define Y_TRINAMIC_DRIVER       2209
#define Y_STEP_PIN              GPIO_NUM_33
#define Y_DIRECTION_PIN         GPIO_NUM_32
#define Y_RSENSE                TMC2209_RSENSE_DEFAULT
#define Y_DRIVER_ADDRESS        1

菊花链电路参考

Trinamic 驱动程序使用

$$ 设置

几个 $$ 设置用于 Trinamic 电机。阅读本节以查看更多详细信息。

StallGaurd (新加坡)

SG 是 Trinamic 电机的一项功能,可以检测到失速并将信号路由到引脚。有些人喜欢用它来做无传感器归位。Basic Grbl 不支持这个。高级用户可以使用自定义机器功能来实现这一点。

这需要良好的编程技能和对 SG 功能的透彻理解。请随时在 Slack 上就此提出问题,但开发人员回答的优先级低于标准 Grbl 支持。如果您提出很多问题,请考虑向该项目捐款 :-)

基本上…SG 通过查看电机效率的变化来工作。如果电动机在轻负载下运行,则效率更高,如果开始失速,则效率会降低。驱动程序检测到这一点的能力受到许多因素的影响。它无法检测非常高的步进率和非常低的步进率的变化。您需要找到回家的最佳速度才能正常工作。您的机器设置也会影响基准效率。它的正常负载、电线的长度和规格等都会降低效率。您可以更改几个参数来“调整”SG,使其在您的机器上运行。最后,SG 不是非常准确。充其量它精确到几个完整的步骤。普通开关通常更准确。

请参阅此链接以了解StallGuard 调整

故障排除

注意:如果没有主电机电压,驱动器将不会响应。ESP32 似乎只能使用 USB,但驱动程序不会响应。

这篇文章对您有用吗?

我们要如何帮助您?