Willkommen! Anmelden Ein neues Profil erzeugen

Erweiterte Suche

TMC5160 (Watterott) mit Marlin 2.x auf Ramps 1.4

geschrieben von MeisterMJ12 
TMC5160 (Watterott) mit Marlin 2.x auf Ramps 1.4
01. June 2019 16:28
Hey Zusammen,

Hat jemand die oben stehende Konfiguration erfolgreich in Einsatz?
Die Informationen die man findet sind leider recht überschaubar und helfen nicht unbedingt.

Viele Grüße
Toni


P3Steel Toolson MK2 / TMC2209 + TMC2100 / Marlin 1.1.8 / Ramps 1.4 / 24V / S3D
Re: TMC5160 (Watterott) mit Marlin 2.x auf Ramps 1.4
03. June 2019 15:02
Was bisher geschah:
Bisher in Verwendung ist Marlin 1.1.9 mit 4x TMC2130
Ziel ist X/Y TMc5160; Z/E TMC2130.

Verwendet werden sollen TMC5160 von Watterott (https://shop.watterott.com/SilentStepStick-TMC5160-Schrittmotortreiber).
Diese müssen über SPI gesteuert werden und werden von Marlin 2.x unterstützt. Sie können auch von Marlin 1.1.9 als TMC2130 angesprochen werden, dann laufen sie jedoch ohne stealthChop2 und damit sehr rau. Treiber und Pin-Konfiguration in 1.1.9 sind also primär funktionstüchtig bzw. richtig gewählt.
Am Treiber wurden die 4 SPI Pins nach oben gezogen und am Ramps angeschlossen. Der CLK Pin wurde ebenfalls nach oben gezogen und mit GND verbunden, da:
On TMC5160 SilentStepStick v1.3 the CLK pin has to be connected to GND. (https://shop.watterott.com/SilentStepStick-TMC5160-Schrittmotortreiber)

Pin-Konfiguration
Marlin 1.1.9
#define X_CS_PIN         64
#define Y_CS_PIN         40
#define Z_CS_PIN         42
#define E0_CS_PIN       44

#define TMC_SW_MOSI    66
#define TMC_SW_MISO    44
#define TMC_SW_SCK     64


Marlin 2.x
#define X_CS_PIN          64
  #define Y_CS_PIN          40
  #define Z_CS_PIN          42	
  #define E0_CS_PIN        44

  #define TMC_SW_MOSI       66
  #define TMC_SW_MISO       44 
  #define TMC_SW_SCK        64


Die Treiber werden wie folgt in Marlin 2.x aktiviert:
Configuration.h
/**
 * Stepper Drivers
 *
 * These settings allow Marlin to tune stepper driver timing and enable advanced options for
 * stepper drivers that support them. You may also override timing options in Configuration_adv.h.
 *
 * A4988 is assumed for unspecified drivers.
 *
 * Options: A4988, A5984, DRV8825, LV8729, L6470, TB6560, TB6600, TMC2100,
 *          TMC2130, TMC2130_STANDALONE, TMC2208, TMC2208_STANDALONE,
 *          TMC26X,  TMC26X_STANDALONE,  TMC2660, TMC2660_STANDALONE,
 *          TMC2160, TMC2160_STANDALONE, TMC5130, TMC5130_STANDALONE,
 *          TMC5160, TMC5160_STANDALONE
 * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE']
 */
#define X_DRIVER_TYPE TMC5160	//TMC zugewiesen
#define Y_DRIVER_TYPE TMC2130	//TMC zugewiesen
#define Z_DRIVER_TYPE TMC2130	//TMC zugewiesen
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE TMC2130	//TMC zugewiesen
//#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988
//#define E5_DRIVER_TYPE A4988


Configuration_adv.h
/**
 * 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.). <<-- Sind an die verwendeten Pins angepasst
 * 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.
 * [github.com]
#if HAS_TRINAMIC

  #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    1000 // (mA) RMS current. Multiply by 1.414 for peak current.	
    #define X_MICROSTEPS   16  // 0..256
    #define X_RSENSE     0.11 
  #endif
….
  #if AXIS_IS_TMC(Y)
    #define Y_CURRENT     1000	
    #define Y_MICROSTEPS   16
    #define Y_RSENSE     0.11
…
  #if AXIS_IS_TMC(Z)
    #define Z_CURRENT     1000	
    #define Z_MICROSTEPS   16
    #define Z_RSENSE     0.11
…
  #if AXIS_IS_TMC(E0)
    #define E0_CURRENT    1000	
    #define E0_MICROSTEPS  16
    #define E0_RSENSE    0.11
…
  /**
   * Override default SPI pins for TMC2130, TMC2160, TMC2660, TMC5130 and TMC5160 drivers here.
   * The default pins can be found in your board's pins file.
   */
  #define X_CS_PIN          64	
  #define Y_CS_PIN          40
  #define Z_CS_PIN          42
  //#define X2_CS_PIN         -1
  //#define Y2_CS_PIN         -1
  //#define Z2_CS_PIN         -1
  //#define Z3_CS_PIN         -1
  #define E0_CS_PIN         44
…
  /**
   * Use software SPI for TMC2130.
   * Software option for SPI driven drivers (TMC2130, TMC2160, TMC2660, TMC5130 and TMC5160).
   * The default SW SPI pins are defined the respective pins files,
   * but you can override or define them here.
   */
  #define TMC_USE_SW_SPI
  #define TMC_SW_MOSI       66 
  #define TMC_SW_MISO       44 
  #define TMC_SW_SCK        64
  /**
   * Software enable
   *
   * Use for drivers that do not use a dedicated enable pin, but rather handle the same
   * function through a communication line such as SPI or UART.
   */
  #define SOFTWARE_DRIVER_ENABLE
…
   * TMC2130, TMC2160, TMC2208, TMC5130 and TMC5160 only
   * Use Trinamic's ultra quiet stepping mode.
   * When disabled, Marlin will use spreadCycle stepping mode.
   */
  #define STEALTHCHOP_XY
  #define STEALTHCHOP_Z
  #define STEALTHCHOP_E
…
  #define CHOPPER_TIMING CHOPPER_DEFAULT_24V

  #if ENABLED(MONITOR_DRIVER_STATUS)
    #define CURRENT_STEP_DOWN     50  // [mA]
    #define REPORT_CURRENT_CHANGE
    #define STOP_ON_ERROR
  #endif

  /**
   * TMC2130, TMC2160, TMC2208, TMC5130 and TMC5160 only
   * The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
   * This mode allows for faster movements at the expense of higher noise levels.
   * STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
   * M913 X/Y/Z/E to live tune the setting
   */
  #define HYBRID_THRESHOLD	//aktivier 21.5.19

  #define X_HYBRID_THRESHOLD     100  // [mm/s]		//ist 1 bei Marlin 1.9.x 
  #define X2_HYBRID_THRESHOLD    100
  #define Y_HYBRID_THRESHOLD     100		//ist 1 bei Marlin 1.9.x
  #define Y2_HYBRID_THRESHOLD    100
  #define Z_HYBRID_THRESHOLD       1	
  #define Z2_HYBRID_THRESHOLD      3
  #define Z3_HYBRID_THRESHOLD      3
  #define E0_HYBRID_THRESHOLD     0.1	
…


Wenn ich nun Marlin 2.x in dieser Form aufspiele, begrüßt es mich mit der Meldung „tmc connection error“ hot smiley

Übersehe ich etwas? Hat jemand eine Idee? eye rolling smiley

Vielen Dank vorab.


P3Steel Toolson MK2 / TMC2209 + TMC2100 / Marlin 1.1.8 / Ramps 1.4 / 24V / S3D
Re: TMC5160 (Watterott) mit Marlin 2.x auf Ramps 1.4
04. June 2019 14:51
Hallo,

habe mir eben auch mal 3 Stück zum testen gekauft weil die mehr Strom als die 2130 aushalten. Bei mir laufen die 2130 nicht sehr sauber, möchte mehr Strom einstellen als diese ab können.

Dabei ist mir aber aufgefallen: RSense: 0.075 Ohm !

Hast du das auch gesehen? Ist wahrscheinlich die Lösung deines Problems.

mfg,
Rickenharp
Re: TMC5160 (Watterott) mit Marlin 2.x auf Ramps 1.4
05. June 2019 02:27
Hey Rickenharp,

ein Mitstreiter smiling bouncing smiley

Das mit dem RSense: 0.075 Ohm hatte ich auch schon auf dem Schirm, war ohne Veränderung. Zumal sich die bestehenden TMC2130 via Marlin 2.x auch nicht bewegen. Das war also nicht die Wurzel des Übels. Werde es im Auge behalten.

Was ich inzwischen weiß, nur noch nicht testen konnte:
- Ich hatte Software-SPI aktiviert und benötige eigentlich HW-SPI (war beides schon getestet, HW-SPI ist aber bei mir gewünscht und verdrahtet)
- in Marlin 2.x ist der Pin 44 mehrfach definiert, confused smiley das kann nicht klappen, yawning smiley dem muss ich mal noch zu Leibe rücken

Gruß
Toni


P3Steel Toolson MK2 / TMC2209 + TMC2100 / Marlin 1.1.8 / Ramps 1.4 / 24V / S3D
Re: TMC5160 (Watterott) mit Marlin 2.x auf Ramps 1.4
17. June 2019 18:45
Hey,

ich bin noch sehr neu im Geschehen, aber hab ein ähnliches Setup (MKS Gen L + BigTreeTech TMC5160 1.1 X/Y + TMC2100 Z/E) und es nach einigem hin und her zum Laufen bekommen. Ich hatte auch den Connection Error bis ich die Empfehlung mit CLK an GND für die Watterot Treiber auch bei meinen probiert hab und Software SPI abgestellt hab (//#define TMC_USE_SW_SPI). In der BigTreeTech Doku steht davon nichts und auch im Werbevideo sah das einfacher aus. Mag aber sein, dass ich da auch noch etwas falsch gemacht hab. Laut Doku sollte SW SPI an sein.

Die Pin Belegung hab ich von den TMC2130 übernommen für mein Board:
Quote
pins_MKS_GEN_L.h
//
// CS Pins wired to avoid conflict with the LCD
// See [www.thingiverse.com]
//

#ifndef X_CS_PIN
#define X_CS_PIN 59
#endif

#ifndef Y_CS_PIN
#define Y_CS_PIN 63
#endif

#include "pins_RAMPS.h"

Quote
configuration.h
#define X_DRIVER_TYPE TMC5160
#define Y_DRIVER_TYPE TMC5160
#define Z_DRIVER_TYPE TMC2100
...
#define E0_DRIVER_TYPE TMC2100

Quote
configuration_adv.h
#if HAS_TRINAMIC

#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 760 // (mA) RMS current. Multiply by 1.414 for peak current.
#define X_MICROSTEPS 16 // 0..256
#define X_RSENSE 0.075
#endif
...
#if AXIS_IS_TMC(Y)
#define Y_CURRENT 760
#define Y_MICROSTEPS 16
#define Y_RSENSE 0.075
#endif
...
#if AXIS_IS_TMC(Z)
#define Z_CURRENT 800
#define Z_MICROSTEPS 16
#define Z_RSENSE 0.11
#endif
...
#if AXIS_IS_TMC(E0)
#define E0_CURRENT 800
#define E0_MICROSTEPS 16
#define E0_RSENSE 0.11
#endif

Laut BigTreeTech Doku zu den TMC5160 wären nicht einmal die Heatsinks notwendig, allerdings kam es bei mir vorhin nach ca. 1 Stunde im Idle zu Überhitzung eines der 5160er, weshalb ich die Heatsinks nun doch noch angebracht habe. Etwas mysteriös, aber was soll's. Nun laufen alle Treiber seit 2 Stunden augenscheinlich sauber und kühl.

Vielleicht hilft es dir ja. Mir hat dein Post als Referenz jedenfalls schon geholfen, um mich etwas zurecht zu finden smiling smiley
In diesem Forum dürfen leider nur registrierte Teilnehmer schreiben.

Klicke hier, um Dich einzuloggen