开源改变世界!!

Trinamic 驱动程序使用

推推 grbl 1个月前 (12-01) 98次浏览

Trinamic 驱动程序支持

基本 Trinamic 驱动程序支持

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

本页适用于在固件控制下使用 Trinamic 驱动程序。它不适用于在 StepStick 或独立模式下使用的 Trinamic 驱动程序。这些驱动程序的使用方式与普通的 StepStick 驱动程序相同。

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

SPI 驱动程序

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

驱动器零件编号

对于您使用的每个 Trinamic 驱动器,您需要为每个轴添加一个#define X_TRINAMIC_DRIVER nnnn,其中 nnnn 是驱动器型号(整数)。目前限制为 2130 和 5160。

CS(片选)引脚

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

UART 驱动程序

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

UART 设置

您必须提供有关 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 pin为所有驱动器使用单个启用引脚
  • 您可以使用#define X_DISABLE_PIN pin为每个电机定义一个使能端
  • 您可以使用 SPI 启用#define USE_TRINAMIC_ENABLE

检测电阻值

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

其余的内容如步进、方向等与普通电机驱动器相同。

运行模式

有正常运行和归位运行模式。

  • #定义 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)

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

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

基本上…SG 的工作原理是观察电机效率的变化。如果电机在轻负载下运行,效率会更高,如果电机开始失速,效率就会降低。驱动器检测这种情况的能力受到很多因素的影响。它很难检测到非常高的步进速率和非常低的步进速率的变化。您需要找到最佳速度来让它正常工作。您的机器设置也会影响基线效率。它的正常负载、电线的长度和规格等都会降低效率。您可以更改几个参数来“调整”SG,使其在您的机器上工作。最后,SG 并不是非常准确。最多可以精确到几个完整的步骤。普通开关通常更准确。

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

故障排除

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

页脚

喜欢 (0)