静音打印,UART驱动TMC2208教程 |
您所在的位置:网站首页 › Mega2560最大电流 › 静音打印,UART驱动TMC2208教程 |
工具与材料
工具:焊锡,烙铁,剥线钳,斜口钳,尖嘴钳 材料:TMC2208,1KΩ电阻,跳线,排针,热缩管,杜邦线胶壳,压线端子 3D打印机固件(我使用的是Marlin2.0.x的版本,其他版本修改方法大同小异) 软件:Arduino 1.8.12 硬件连接一般买到手的TMC2208基本都是如下图的: 首先处理的是TMC2208芯片上的UART引脚。默认情况下,TMC2208的UART引脚是不连接到Watterott SilentStepStick的标头引脚的,需要我们手动把焊接跳线。 我买到的2208: 我们要处理的则是图里画圈的部分: 第二个要处理的是排针,原先EN,DIAG,INDEX,MS1,MS2 和模拟电流设置VREF,都被UART线代替,所以只需要留下EN,DIR,STEP,PDN四个引脚即可。其中PDN引脚最好单独引出一根线,就像上图中那样,因为从后续设置里可以看到,UART信号是从其他引脚过来的。 关于散热,现在买来的TMC2208基本都是带一个大的散热块的(如下图)。但是根据我的经验,仅使用这个散热块是不太够的,最好再额外增加一个风扇。 第三步,为了使SilentStepStick通过UART与Ramps板通信,需要从SilentStepStick的UART引脚进行单线连接。然后,将那条线分成两根线(Rx和Tx)以连接到Ramps板,并通过1K Ohm电阻器进行Tx(发送)连接。 以上,硬件部分的处理基本完成。 打印机固件设置首先找到打印机所使用驱动板,我的是RAMPS1.4的。 // Choose the name from boards.h that matches your setup #ifndef MOTHERBOARD #define MOTHERBOARD BOARD_RAMPS_14_EFB #endif再去Pins文件夹找到相应的引脚定义文件,其中HAS_TMC_UART这一段就是TMC2208的UART通信引脚定义 #if HAS_TMC_UART /** * TMC2208/TMC2209 stepper drivers * * Hardware serial communication ports. * If undefined software serial is used according to the pins below */ //#define X_HARDWARE_SERIAL Serial1 //#define X2_HARDWARE_SERIAL Serial1 //#define Y_HARDWARE_SERIAL Serial1 //#define Y2_HARDWARE_SERIAL Serial1 //#define Z_HARDWARE_SERIAL Serial1 //#define Z2_HARDWARE_SERIAL Serial1 //#define E0_HARDWARE_SERIAL Serial1 //#define E1_HARDWARE_SERIAL Serial1 //#define E2_HARDWARE_SERIAL Serial1 //#define E3_HARDWARE_SERIAL Serial1 //#define E4_HARDWARE_SERIAL Serial1 // // Software serial // #ifndef X_SERIAL_TX_PIN #define X_SERIAL_TX_PIN 40 #endif #ifndef X_SERIAL_RX_PIN #define X_SERIAL_RX_PIN 63 #endif #ifndef X2_SERIAL_TX_PIN #define X2_SERIAL_TX_PIN -1 #endif #ifndef X2_SERIAL_RX_PIN #define X2_SERIAL_RX_PIN -1 #endif #ifndef Y_SERIAL_TX_PIN #define Y_SERIAL_TX_PIN 59 #endif #ifndef Y_SERIAL_RX_PIN #define Y_SERIAL_RX_PIN 64 #endif #ifndef Y2_SERIAL_TX_PIN #define Y2_SERIAL_TX_PIN -1 #endif #ifndef Y2_SERIAL_RX_PIN #define Y2_SERIAL_RX_PIN -1 #endif #ifndef Z_SERIAL_TX_PIN #define Z_SERIAL_TX_PIN 42 #endif #ifndef Z_SERIAL_RX_PIN #define Z_SERIAL_RX_PIN 65 #endif #ifndef Z2_SERIAL_TX_PIN #define Z2_SERIAL_TX_PIN -1 #endif #ifndef Z2_SERIAL_RX_PIN #define Z2_SERIAL_RX_PIN -1 #endif #ifndef E0_SERIAL_TX_PIN #define E0_SERIAL_TX_PIN 44 #endif #ifndef E0_SERIAL_RX_PIN #define E0_SERIAL_RX_PIN 66 #endif #endif根据以上内容,在查找相应驱动板上连接的引脚,就是跳线该连接的引脚。 ps:下图是RAMPS1.4的引脚定义,可以看到基本上所用的引脚都集中在AUX2一片。 ps2:图里D48我实测是D40。 取消注释,并将使用的驱动修改到 XX_DRIVER_TYPE 后面即可。TMC2208_STANDALONE这个模式是适用于不使用SPI或UART通信直连。 另外需要修改的代码在Configuration_adv.h文件里,主要修改驱动电流,驱动细分数,保持电流等。 驱动电流0.8A一般足够,分辨率我个人建议不要设置为256,因为实测256细分的时候,回零点会撞。保持电流是个百分比数值,默认的是50%。 // @section tmc_smart /** * To use TMC2130, TMC2160, TMC2660, TMC5130, TMC5160 stepper drivers in SPI mode * connect your SPI pins to the hardware SPI interface on your board and define * the required CS pins in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 * pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). * You may also use software SPI if you wish to use general purpose IO pins. * * To use TMC2208 stepper UART-configurable stepper drivers connect #_SERIAL_TX_PIN * to the driver side PDN_UART pin with a 1K resistor. * To use the reading capabilities, also connect #_SERIAL_RX_PIN to PDN_UART without * a resistor. * The drivers can also be used with hardware serial. * * TMCStepper library is required to use TMC stepper drivers. * https://github.com/teemuatlut/TMCStepper */ #if HAS_TRINAMIC_CONFIG #define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current #define INTERPOLATE true // Interpolate X/Y/Z_MICROSTEPS to 256 #if AXIS_IS_TMC(X) #define X_CURRENT 800 // (mA) RMS current. Multiply by 1.414 for peak current. #define X_CURRENT_HOME X_CURRENT // (mA) RMS current for sensorless homing #define X_MICROSTEPS 128 // 0..256 #define X_RSENSE 0.11 #define X_CHAIN_POS -1 // |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |