如何在 Marlin 固件中获取或设置 Trinamic TMC 步进电机电流

在 Marlin 中,你可以动态配置 Trinamic 步进驱动器(如 TMC2208 或 TMC5160)的步进电机电流。

通过 G-Code 更改电机电流

最简单的选项是使用 G-Code。为了将 XYZ 的步进电机电流设置为 2 安培(2000 mA),像这样使用 M906

set_trinamic_current.gcode
M906X2000Y2000Z2000

现在使用以下命令将设置保存到 EEPROM

save_eeprom.gcode
M500

你也可以使用以下命令查询当前步进电机电流

m906_output.txt
M906
X driver current: 2000
Y driver current: 2000
Z driver current: 2000
E driver current: 800
ok

在配置文件中更改电机电流

你也可以在 Marlin 配置文件中设置默认步进电机电流值。注意这些将被 EEPROM 中的任何值覆盖。

Configuration_adv.h 中,查找

Configuration_adv.h
#if HAS_TRINAMIC_CONFIG

其中包含类似这样的轴定义

Configuration_adv.h
#if AXIS_IS_TMC(X)
  #define X_CURRENT       800        // (mA) RMS 电流。乘以 1.414 得到峰值电流。
  #define X_CURRENT_HOME  X_CURRENT  // (mA) 用于无传感器归位的 RMS 电流
  #define X_MICROSTEPS     32        // 0..256
  #define X_RSENSE          0.11
  #define X_CHAIN_POS      -1        // -1..0: 未链式连接。1: MCU MOSI 已连接。2: 链中的下一个,...
  //#define X_INTERPOLATE  true      // 启用以覆盖 X 轴的 'INTERPOLATE'
#endif

更改行中的值

Configuration_adv.h
#define X_CURRENT 800 // (mA) RMS 电流。乘以 1.414 得到峰值电流。

因此,例如要设置 2A=2000 mA),将其设置为

Configuration_adv.h
#define X_CURRENT 2000 // (mA) RMS 电流。乘以 1.414 得到峰值电流。

Check out similar posts by category: 3D Printing