用户工具

站点工具


knowledge:3d_print:2022100601

这是本文档旧的修订版!


APE G1 TMC2130步进电机驱动配置说明

关键概念

TMC2130 实现了 TRINAMIC 产品独有的高级功能。这些特点有助于实现更高的精度、更高的能源效率、更高的可靠性、更平稳的运动,以及在许多步进电机应用中的冷却操作。

  • StealthChop™:无噪音、高精度斩波算法,用于降低电机在运动与静止状态的噪音。
  • SpreadCycle™:高精度斩波算法,用于高动态运动和绝对干净的电流波。
  • DcStep™:负载相关的速度控制。电机以尽可能快的速度移动,并且永不失步。
  • StallGuard2™:无传感器失速检测和机械负载测量。
  • CoolStep™:负载自适应电流控制可将能耗降低多达 75%。
  • MicroPlyer™:使用 STEP/DIR 接口时,微步插值器可提高微步的平滑度。

除了这些性能增强之外,TRINAMIC 电机驱动器还提供保护措施来检测并防止输出短路、输出开路、过热和欠压提高安全性和从设备故障中恢复的条件。

StealthChop Driver

StealthChop 是一种基于电压斩波器的原理。它保证绝对安静的电机静止和安静的慢动作,除了滚珠轴承产生的噪音。 StealthChop 可以与经典的逐周期斩波模式,可在所有速度范围内实现最佳性能。另外两个提供斩波器模式:传统的恒定关断时间模式和 SpreadCycle 模式。这恒定关闭时间模式在最高速度下提供高扭矩,而 SpreadCycle 提供平滑在很宽的速度和负载范围内运行和良好的功率效率。自动展开循环集成了快速衰减周期并保证了平滑的过零性能。极StealthChop 的平滑运动对许多应用都是有益的。可编程微步形状允许优化低成本电机的电机性能。

使用 StealthChop 的好处:

  • 使用低成本电机显着改进微步
  • 电机运行平稳安静
  • 绝对没有待机噪音
  • 减少机械共振产生改进的扭矩

StallGuard2 – 机械负载感应

StallGuard2 可准确测量电机负载。它可用于失速检测以及在低于使电机失速的负载下的其他用途,例如 CoolStep 负载自适应电流减小。这提供了有关驱动器允许功能的更多信息,例如:驱动机械的无传感器归位和诊断。

CoolStep – 负载自适应电流控制

CoolStep 以最佳电流驱动电机。它使用 StallGuard2 负载测量信息将电机电流调整到实际负载情况下所需的最小量。
这可以节省能源并保持组件冷却。
好处是:

  • 能效功耗降低高达75%
  • 电机产生的热量更少,提高了机械精度
  • 更少或没有冷却提高了可靠性
  • 使用较小的电机,所需的扭矩储备更少→更便宜的电机可以完成这项工作

DcStep – 负载相关的速度控制

DcStep 允许电机在其负载极限和速度极限附近运行,而不会丢失一个步。如果电机上的机械负载增加到堵转负载,电机会自动减小速度,以便它仍然可以驱动负载。使用此功能,电机将永远不会失速。除了在较低速度下增加扭矩外,动态惯性将使电机能够克服机械通过减速过载。 DcStep 将状态信息反馈给外部运动控制器或系统 CPU,以便达到目标位置,即使电机速度需要由于机械负荷增加而减少。 DcStep 可以覆盖高达 10 倍或更多的动态范围,而不会出现任何阶跃损失。通过优化高负载情况下的运动速度,此功能进一步提高了整体系统效率。

好处是:

  • 电机在过载情况下不会松动
  • 应用程序尽可能快地工作
  • 最高可能的自动加速度
  • 限速时最高能效
  • 使用全步驱动的最高电机扭矩
  • 更便宜的电机可以完成这项工作

在源码的Configuration_prusa.h中217行开始是TMC2130的配置信息。

/*------------------------------------
 TMC2130 default settings
 *------------------------------------*/

#define TMC2130_FCLK 12000000       // fclk = 12MHz

#define TMC2130_USTEPS_XY   16        // microstep resolution for XY axes
#define TMC2130_USTEPS_Z    16        // microstep resolution for Z axis
#define TMC2130_USTEPS_E    32        // microstep resolution for E axis
#define TMC2130_INTPOL_XY   1         // extrapolate 256 for XY axes
#define TMC2130_INTPOL_Z    1         // extrapolate 256 for Z axis
#define TMC2130_INTPOL_E    1         // extrapolate 256 for E axis

#define TMC2130_PWM_GRAD_X  2         // PWMCONF
#define TMC2130_PWM_AMPL_X  230       // PWMCONF
#define TMC2130_PWM_AUTO_X  1         // PWMCONF
#define TMC2130_PWM_FREQ_X  2         // PWMCONF

#define TMC2130_PWM_GRAD_Y  2         // PWMCONF
#define TMC2130_PWM_AMPL_Y  235       // PWMCONF
#define TMC2130_PWM_AUTO_Y  1         // PWMCONF
#define TMC2130_PWM_FREQ_Y  2         // PWMCONF

#define TMC2130_PWM_GRAD_Z  4         // PWMCONF
#define TMC2130_PWM_AMPL_Z  200       // PWMCONF
#define TMC2130_PWM_AUTO_Z  1         // PWMCONF
#define TMC2130_PWM_FREQ_Z  2         // PWMCONF

#define TMC2130_PWM_GRAD_E  4         // PWMCONF
#define TMC2130_PWM_AMPL_E  240       // PWMCONF
#define TMC2130_PWM_AUTO_E  1         // PWMCONF
#define TMC2130_PWM_FREQ_E  2         // PWMCONF

// experimental setting for E-motor cooler operation
#define TMC2130_PWM_GRAD_Ecool  84        // PWMCONF 730mA @ 375mm/min  970mA phase peak at feedrate 900mm/min
#define TMC2130_PWM_AMPL_Ecool  43        // PWMCONF 500mA phase peak at feedrate 10 mm/min
#define TMC2130_PWM_AUTO_Ecool  0         // PWMCONF

#define TMC2130_TOFF_XYZ    3         // CHOPCONF // fchop = 27.778kHz
#define TMC2130_TOFF_E      3         // CHOPCONF // fchop = 27.778kHz
//#define TMC2130_TOFF_E      4         // CHOPCONF // fchop = 21.429kHz
//#define TMC2130_TOFF_E      5         // CHOPCONF // fchop = 17.442kHz

//#define TMC2130_STEALTH_E // Extruder stealthChop mode
//#define TMC2130_CNSTOFF_E // Extruder constant-off-time mode (similar to MK2)

//#define TMC2130_PWM_DIV   683         // PWM frequency divider (1024, 683, 512, 410)
#define TMC2130_PWM_DIV   512         // PWM frequency divider (1024, 683, 512, 410)
#define TMC2130_PWM_CLK   (2 * TMC2130_FCLK / TMC2130_PWM_DIV) // PWM frequency (23.4kHz, 35.1kHz, 46.9kHz, 58.5kHz for 12MHz fclk)

#define TMC2130_TPWMTHRS  0         // TPWMTHRS - Sets the switching speed threshold based on TSTEP from stealthChop to spreadCycle mode
#define TMC2130_TPWMTHRS_E 403      // Switch extruder from StealthChop to SpreadCycle at around 900mm/min
#define TMC2130_THIGH     0         // THIGH - unused

//#define TMC2130_TCOOLTHRS_X 450       // TCOOLTHRS - coolstep treshold
//#define TMC2130_TCOOLTHRS_Y 450       // TCOOLTHRS - coolstep treshold
#define TMC2130_TCOOLTHRS_X 430       // TCOOLTHRS - coolstep treshold
#define TMC2130_TCOOLTHRS_Y 430       // TCOOLTHRS - coolstep treshold
#define TMC2130_TCOOLTHRS_Z 500       // TCOOLTHRS - coolstep treshold
#define TMC2130_TCOOLTHRS_E 500       // TCOOLTHRS - coolstep treshold

#define TMC2130_SG_HOMING       1     // stallguard homing
#define TMC2130_SG_THRS_X       3     // stallguard sensitivity for X axis
#define TMC2130_SG_THRS_Y       3     // stallguard sensitivity for Y axis
#define TMC2130_SG_THRS_Z       4     // stallguard sensitivity for Z axis
#define TMC2130_SG_THRS_E       3     // stallguard sensitivity for E axis
#define TMC2130_SG_THRS_HOME {3, 3, TMC2130_SG_THRS_Z, TMC2130_SG_THRS_E}

//new settings is possible for vsense = 1, running current value > 31 set vsense to zero and shift both currents by 1 bit right (Z axis only)
#define TMC2130_CURRENTS_H {16, 20, 35, 30}  // default holding currents for all axes
#define TMC2130_CURRENTS_FARM 36             // E 805 mA peak for ECool/farm mode
#define TMC2130_CURRENTS_R {16, 20, 35, 30}  // default running currents for all axes
#define TMC2130_CURRENTS_R_HOME {8, 10, 20, 18}  // homing running currents for all axes

#define TMC2130_STEALTH_Z
#define TMC2130_DEDGE_STEPPING

//#define TMC2130_SERVICE_CODES_M910_M918

//#define TMC2130_DEBUG
//#define TMC2130_DEBUG_WR
//#define TMC2130_DEBUG_RD

这两行代码表示XY与Z轴的步进电机细分是16细分,挤出头E的细分是32细分。

#define TMC2130_USTEPS_XY   16        // microstep resolution for XY axes
#define TMC2130_USTEPS_Z    16        // microstep resolution for Z axis
#define TMC2130_USTEPS_E    32        // microstep resolution for E axis

TMC2130_PWM_AMPL

该值应该对应的是TMC2130中的PWM_AMPL,功能是用户定义的PWM幅度偏移 (0-255),产生的幅度(限制为 0…255)

TMC2130_PWM_GRAD

该值对应的是TMC2130中的PWM_GRAD,用户定义的最大PWM幅度每半波10次变化(1到15)

TMC2130_SG

这个值控制 StallGuard2 的失速级别。较低的值表示较高的灵敏度。0值是与大多数电机匹配的起始值。

这个值就是无传感器归位的灵敏度设置。

灵敏度
最低+63
最高-64

-64 到 +63:值越高,StallGuard2 灵敏度越低。
高灵敏度可能会产生误报。
低灵敏度可能无法触发。

knowledge/3d_print/2022100601.1665064760.txt · 最后更改: 2023/06/07 04:09 (外部编辑)