TMC 2100 Vs 2130 Vs 2208/2224 March 03, 2017 11:11AM |
Registered: 8 years ago Posts: 754 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 March 04, 2017 04:01AM |
Registered: 8 years ago Posts: 754 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 March 04, 2017 08:10AM |
Registered: 10 years ago Posts: 6,409 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 March 04, 2017 08:45AM |
Registered: 8 years ago Posts: 754 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 March 07, 2017 09:41AM |
Registered: 8 years ago Posts: 754 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 March 07, 2017 11:27AM |
Registered: 10 years ago Posts: 6,409 |
#define HAVE_TMC2130DRIVER // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY //#define X_IS_TMC2130 //#define X2_IS_TMC2130 //#define Y_IS_TMC2130 //#define Y2_IS_TMC2130 //#define Z_IS_TMC2130 //#define Z2_IS_TMC2130 //#define E0_IS_TMC2130 //#define E1_IS_TMC2130 //#define E2_IS_TMC2130 //#define E3_IS_TMC2130
Re: TMC 2100 Vs 2130 Vs 2208/2224 March 07, 2017 02:05PM |
Registered: 8 years ago Posts: 754 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 March 07, 2017 02:23PM |
Registered: 8 years ago Posts: 754 |
Quote
MagoKimbra
#define HAVE_TMC2130DRIVER // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY //#define X_IS_TMC2130 //#define X2_IS_TMC2130 //#define Y_IS_TMC2130 //#define Y2_IS_TMC2130 //#define Z_IS_TMC2130 //#define Z2_IS_TMC2130 //#define E0_IS_TMC2130 //#define E1_IS_TMC2130 //#define E2_IS_TMC2130 //#define E3_IS_TMC2130
Poi c'è tutta la parte di anvanced configration... ma che non so proprio cosa sia.. Ho copiato e basta...
Il firmware usa i pin CS per ogni asse driver, li ho impostati solo per la ramps se non è la tua scheda li devi impostare nel fili pins.h
/******************************************************************************\ * enable this section if you have TMC2130 motor drivers. * you need to import the Trinamic_TMC2130 library into the Arduino IDE for this ******************************************************************************/ // @section tmc2130 #define HAVE_TMC2130DRIVER // ADVANCED CONFIGURATION ("DOUBLE ADVANCED") #define TMC2130_ADVANCED_CONFIGURATION #if ENABLED(HAVE_TMC2130DRIVER) #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY #define X_IS_TMC2130 //#define X2_IS_TMC2130 #define Y_IS_TMC2130 //#define Y2_IS_TMC2130 //#define Z_IS_TMC2130 //#define Z2_IS_TMC2130 //#define E0_IS_TMC2130 //#define E1_IS_TMC2130 //#define E2_IS_TMC2130 //#define E3_IS_TMC2130 // IF YOU HAVE ENABLED TMC2130_ADVANCED_CONFIGURATION, // YOU CAN DEFINE GLOBAL SETTINGS HERE, BUT YOU STILL NEED // TO CONFIGURE THE tmc2130.init() METHOD MANUALLY IN THE FILE // // stepper_indirection.cpp // // PLEASE READ THE TMC2130 DATASHEET: // [www.trinamic.com] // ALL SETTINGS HERE HAVE THE SAME (SOMETIMES CRYPTIC) // NAMES AS IN THE DATASHEET. // // THE FOLLOWING, UNCOMMENTED SETTINGS ARE ONLY SUGGESTION. /* GENERAL CONFIGURATION */ //#define GLOBAL_EN_PWM_MODE 0 #define GLOBAL_I_SCALE_ANALOG 1 // [0,1] 0: Normal, 1: AIN //#define GLOBAL_INTERNAL_RSENSE 0 // [0,1] 0: Normal, 1: Internal #define GLOBAL_EN_PWM_MODE 0 // [0,1] 0: Normal, 1: stealthChop with velocity threshold //#define GLOBAL_ENC_COMMUTATION 0 // [0,1] #define GLOBAL_SHAFT 0 // [0,1] 0: normal, 1: invert //#define GLOBAL_DIAG0_ERROR 0 // [0,1] //#define GLOBAL_DIAG0_OTPW 0 // [0,1] //#define GLOBAL_DIAG0_STALL 0 // [0,1] //#define GLOBAL_DIAG1_STALL 0 // [0,1] //#define GLOBAL_DIAG1_INDEX 0 // [0,1] //#define GLOBAL_DIAG1_ONSTATE 0 // [0,1] //#define GLOBAL_DIAG1_ONSTATE 0 // [0,1] //#define GLOBAL_DIAG0_INT_PUSHPULL 0 // [0,1] //#define GLOBAL_DIAG1_INT_PUSHPULL 0 // [0,1] //#define GLOBAL_SMALL_HYSTERESIS 0 // [0,1] //#define GLOBAL_STOP_ENABLE 0 // [0,1] //#define GLOBAL_DIRECT_MODE 0 // [0,1] /* VELOCITY DEPENDEND DRIVE FEATURES */ #define GLOBAL_IHOLD 22 // [0-31] 0: min, 31: max #define GLOBAL_IRUN 31 // [0-31] 0: min, 31: max #define GLOBAL_IHOLDDELAY 15 // [0-15] 0: min, 15: about 4 seconds //#define GLOBAL_TPOWERDOWN 0 // [0-255] 0: min, 255: about 4 seconds //#define GLOBAL_TPWMTHRS 0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s //#define GLOBAL_TCOOLTHRS 0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s #define GLOBAL_THIGH 10 // [0-1048576] e.g. 20 corresponds with 2000 steps/s /* SPI MODE CONFIGURATION */ //#define GLOBAL_XDIRECT 0 // /* DCSTEP MINIMUM VELOCITY */ //#define GLOBAL_VDCMIN 0 // /* MOTOR DRIVER CONFIGURATION*/ //#define GLOBAL_DEDGE 0 // //#define GLOBAL_DISS2G 0 // #define GLOBAL_INTPOL 1 // 0: off 1: 256 microstep interpolation #define GLOBAL_MRES 16 // number of microsteps #define GLOBAL_SYNC 1 // [0-15] #define GLOBAL_VHIGHCHM 1 // [0,1] 0: normal, 1: high velocity stepper mode #define GLOBAL_VHIGHFS 0 // [0,1] 0: normal, 1: switch to full steps for high velocities // #define GLOBAL_VSENSE 0 // [0,1] 0: normal, 1: high sensitivity (not recommended) #define GLOBAL_TBL 1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended #define GLOBAL_CHM 0 // [0,1] 0: spreadCycle, 1: Constant off time with fast decay time. //#define GLOBAL_RNDTF 0 // //#define GLOBAL_DISFDCC 0 // //#define GLOBAL_FD 0 // //#define GLOBAL_HEND 0 // //#define GLOBAL_HSTRT 0 // #define GLOBAL_TOFF 10 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase //#define GLOBAL_SFILT 0 // //#define GLOBAL_SGT 0 // //#define GLOBAL_SEIMIN 0 // //#define GLOBAL_SEDN 0 // //#define GLOBAL_SEMAX 0 // //#define GLOBAL_SEUP 0 // //#define GLOBAL_SEMIN 0 // //#define GLOBAL_DC_TIME 0 // //#define GLOBAL_DC_SG 0 // //#define GLOBAL_FREEWHEEL 0 // //#define GLOBAL_PWM_SYMMETRIC 0 // //#define GLOBAL_PWM_AUTOSCALE 0 // //#define GLOBAL_PWM_FREQ 0 // //#define GLOBAL_PWM_GRAD 0 // //#define GLOBAL_PWM_AMPL 0 // //#define GLOBAL_ENCM_CTRL 0 // #else #define X_IS_TMC2130 #define X_IHOLD 31 // [0-31] 0: min, 31: max #define X_IRUN 31 // [0-31] 0: min, 31: max #define X_IHOLDDELAY 15 // [0-15] 0: min, 15: about 4 seconds #define X_I_SCALE_ANALOG 1 // 0: Normal, 1: AIN #define X_MRES 16 // number of microsteps #define X_TBL 1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended #define X_TOFF 8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase //#define X2_IS_TMC2130 #define X2_IHOLD 31 // [0-31] 0: min, 31: max #define X2_IRUN 31 // [0-31] 0: min, 31: max #define X2_IHOLDDELAY 15 // [0-15] 0: min, 15: about 4 seconds #define X2_I_SCALE_ANALOG 1 // 0: Normal, 1: AIN #define X2_MRES 16 // number of microsteps #define X2_TBL 1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended #define X2_TOFF 8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase #define Y_IS_TMC2130 #define Y_IHOLD 31 // [0-31] 0: min, 31: max #define Y_IRUN 31 // [0-31] 0: min, 31: max #define Y_IHOLDDELAY 15 // [0-15] 0: min, 15: about 4 seconds #define Y_I_SCALE_ANALOG 1 // 0: Normal, 1: AIN #define Y_MRES 16 // number of microsteps #define Y_TBL 1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended #define Y_TOFF 8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase //#define Y2_IS_TMC2130 #define Y2_IHOLD 31 // [0-31] 0: min, 31: max #define Y2_IRUN 31 // [0-31] 0: min, 31: max #define Y2_IHOLDDELAY 15 // [0-15] 0: min, 15: about 4 seconds #define Y2_I_SCALE_ANALOG 1 // 0: Normal, 1: AIN #define Y2_MRES 16 // number of microsteps #define Y2_TBL 1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended #define Y2_TOFF 8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase //#define Z_IS_TMC2130 #define Z_IHOLD 31 // [0-31] 0: min, 31: max #define Z_IRUN 31 // [0-31] 0: min, 31: max #define Z_IHOLDDELAY 15 // [0-15] 0: min, 15: about 4 seconds #define Z_I_SCALE_ANALOG 1 // 0: Normal, 1: AIN #define Z_MRES 16 // number of microsteps #define Z_TBL 1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended #define Z_TOFF 8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase //#define Z2_IS_TMC2130 #define Z2_IHOLD 31 // [0-31] 0: min, 31: max #define Z2_IRUN 31 // [0-31] 0: min, 31: max #define Z2_IHOLDDELAY 15 // [0-15] 0: min, 15: about 4 seconds #define Z2_I_SCALE_ANALOG 1 // 0: Normal, 1: AIN #define Z2_MRES 16 // number of microsteps #define Z2_TBL 1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended #define Z2_TOFF 8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase //#define E0_IS_TMC2130 #define E0_IHOLD 31 // [0-31] 0: min, 31: max #define E0_IRUN 31 // [0-31] 0: min, 31: max #define E0_IHOLDDELAY 15 // [0-15] 0: min, 15: about 4 seconds #define E0_I_SCALE_ANALOG 1 // 0: Normal, 1: AIN #define E0_MRES 16 // number of microsteps #define E0_TBL 1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended #define E0_TOFF 8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase //#define E1_IS_TMC2130 #define E1_IHOLD 31 // [0-31] 0: min, 31: max #define E1_IRUN 31 // [0-31] 0: min, 31: max #define E1_IHOLDDELAY 15 // [0-15] 0: min, 15: about 4 seconds #define E1_I_SCALE_ANALOG 1 // 0: Normal, 1: AIN #define E1_MRES 16 // number of microsteps #define E1_TBL 1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended #define E1_TOFF 8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase //#define E2_IS_TMC2130 #define E2_IHOLD 31 // [0-31] 0: min, 31: max #define E2_IRUN 31 // [0-31] 0: min, 31: max #define E2_IHOLDDELAY 15 // [0-15] 0: min, 15: about 4 seconds #define E2_I_SCALE_ANALOG 1 // 0: Normal, 1: AIN #define E2_MRES 16 // number of microsteps #define E2_TBL 1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended #define E2_TOFF 8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase //#define E3_IS_TMC2130 #define E3_IHOLD 31 // [0-31] 0: min, 31: max #define E3_IRUN 31 // [0-31] 0: min, 31: max #define E3_IHOLDDELAY 15 // [0-15] 0: min, 15: about 4 seconds #define E3_I_SCALE_ANALOG 1 // 0: Normal, 1: AIN #define E3_MRES 16 // number of microsteps #define E3_TBL 1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended #define E3_TOFF 8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase #endif #endif
Re: TMC 2100 Vs 2130 Vs 2208/2224 March 07, 2017 05:17PM |
Registered: 10 years ago Posts: 6,409 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 March 08, 2017 06:06PM |
Registered: 10 years ago Posts: 756 |
Quote
Elstak
cmq scaldano da morire.
Re: TMC 2100 Vs 2130 Vs 2208/2224 April 09, 2017 03:49AM |
Registered: 9 years ago Posts: 32 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 April 11, 2017 11:04AM |
Registered: 8 years ago Posts: 754 |
Quote
salvatore993
da un occhiata veloce, la cosa è mooooolto interessante. si dovrebbe poter configurare un andamento di curva che segue l'esigenza della stampa.
le stampanti rumorose, imprecise, e con degli stalli improvvisi, devono questi difetti (dando per scontato che la meccanica sia ok) alla errata impostazione/scelta, proprio perché spesso si ignora la curva del motore, in accoppiata al relativo drive.
se si da un'occhiata al sito della RTA si vede che a parità di ampere (parametro col quale erroneamente tanti scelgono la motorizzazione) vi sono curve totalmente diverse, e addirittura in alcuni casi un motore con più ampere ha meno coppia.
stabilendo che anche per l'elettronica vale "la legge del gobbo" (per chi non lo sapesse, il gobbo o tromba, o bacia) una volta scelta la coppia driver motore più adatta, dopo dovresti far lavorare la macchina, con la consapevolezza dei limiti che la scelta fatta impone, in termini di velocità, accelerazione ecc. Cosa che spesso risolvi cambiando il settaggio del driver, ma in effetti togli dei limiti e ne metti altri. questi driver è come se ti permetterebbero di cambiare il settaggio a volo, a seconda del movimento richiesto dal g-code.
se il mago è disponibile per la parte firmware, a disposizione sull'hardware. Ho iniziato tempo fa una stampante, postai le mie intenzioni tempo fa, il lavoro, e le continue evoluzioni mi fanno cambiare parti del progetto di continuo, spero di iniziare a costruire qualcosa approfittando della settimana santa. ovviamente posterò il tutto.
Re: TMC 2100 Vs 2130 Vs 2208/2224 April 12, 2017 01:23AM |
Registered: 9 years ago Posts: 545 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 April 12, 2017 02:22AM |
Registered: 9 years ago Posts: 32 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 April 12, 2017 05:43AM |
Registered: 8 years ago Posts: 754 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 April 12, 2017 05:52AM |
Registered: 8 years ago Posts: 754 |
Quote
c128
si potrebbe fare una scheda driver con un pro mini che gestisce i vari parametri del TMC
RDS (la resistenza dei mosfet) e' uno dei parametri piu' impostanti per avere un drv che scalda poco
Re: TMC 2100 Vs 2130 Vs 2208/2224 April 14, 2017 01:54AM |
Registered: 9 years ago Posts: 32 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 April 14, 2017 07:41AM |
Registered: 8 years ago Posts: 754 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 April 14, 2017 11:01AM |
Registered: 9 years ago Posts: 545 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 April 14, 2017 06:08PM |
Registered: 8 years ago Posts: 754 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 July 03, 2017 01:00PM |
Registered: 12 years ago Posts: 414 |
--- Prusa i3 Steel (20x20x20) --- Prusa i3 Steel XL (30x30x30)
Motori 200 passi Motori 400 passi
Stepper drive - DRV8825 Stepper drive - DRV8825
RAMPS 1.4 RADDS 1.5
HotEnd IeC HotEnd IeC
FW MK4DUO 4.3.2 FW MK4DUO 4.3.5
Re: TMC 2100 Vs 2130 Vs 2208/2224 July 04, 2017 02:42AM |
Registered: 8 years ago Posts: 754 |
Quote
laudix
Ciao a tutti.
Siete poi risuciti a fare dei test?
Io prima di ordinarli volevo capire se sono montabili sulle nostre schede (io ho una RADDS); da quello che penso di aver capito su arduino i pin per la gestione della SPI sono 3
- (MOSI)
- (MISO)
- (SCK)
Questi sono i PIN di controllo comunicazione e per ogni modello di Arduino sono quelli e fissi, poi ci sono i PIN SS/CS (Slave select o Client Select) che sono invece impostabili da programma tra i PIN digitali disponibili sulla scheda.
Quindi ogni periferica SPI Slave condivide con il master 4 PIN, i tre mezionati prima piu un SS (o CS a seconda della nomenclatura)
- i tre pin di controllo sono collegati ai tre pin di prima, ovviamente il MOSI del master con il MISO dello slave e vicevrsa (RX e TX) i due SCK tra di loro (il clock)
- il SS dello slave si collega ad un pin digitale di arduino libero
nel caso di piu periferiche slave collegate ad un master i tre segnali di controllo del sono connessi in parallelo a tutti i medesimi degli slave. mentre per gli SS c'e' un PIN del master dedicato ad ogni slave
In pratica il Master che sa con chi vuole parlare ed è lui a decidere con chi parlare cosa fa:
- in partenza tutti i PIN SS sono a livello alto (comunicazione inibita)
- il master mette a livello basso l'SS dello slave con cui vuole parlare
- Il master inizia la comunicazione
- alla fine il master mette a livello alto l'SS dello slave e la sessione di comunicazione finisce.
Il problema sollevato da Paolo (c128) non è banale, io penso che non ci sia una limitazione nell'uso di pin specifici per i segnali SS ma penso che sulle nostre schede potrebbero non esserci pin sufficienti per gestire molti slave.
Sempre da una occhiata sommaria data al codice mi sembra che le impostazioni debbano essere impostate in fase di compilazione (sono quindi fise), poi vi sono dei comadi gcode che permettono di modificare qualcosa:
- M906: Set motor currents XYZ T0-4 E
- M911: Report TMC2130 prewarn triggered flags
- M912: Clear TMC2130 stepper driver overtemperature pre-warn flag held by the library
- M913: Set HYBRID_THRESHOLD speed.
- M914: Set SENSORLESS_HOMING sensitivity.
Ho individuato inoltre delle funzioni di monitoraggio (es: controlli sulla temperatura dei motori) che probabilmente sono utlizzate per gestire in modo specifico situazioni non gestibili con gli altri.
Per me sarebbe sufficiente che qualcuno abbia provato a mantarli e li ha fatti funzionare anche se con impostazioni di base, allora li ordinerei e mi cimenteri a far prove.
Un saluto
Re: TMC 2100 Vs 2130 Vs 2208/2224 July 04, 2017 03:33AM |
Registered: 12 years ago Posts: 414 |
--- Prusa i3 Steel (20x20x20) --- Prusa i3 Steel XL (30x30x30)
Motori 200 passi Motori 400 passi
Stepper drive - DRV8825 Stepper drive - DRV8825
RAMPS 1.4 RADDS 1.5
HotEnd IeC HotEnd IeC
FW MK4DUO 4.3.2 FW MK4DUO 4.3.5
Re: TMC 2100 Vs 2130 Vs 2208/2224 October 02, 2017 06:49AM |
Registered: 12 years ago Posts: 414 |
--- Prusa i3 Steel (20x20x20) --- Prusa i3 Steel XL (30x30x30)
Motori 200 passi Motori 400 passi
Stepper drive - DRV8825 Stepper drive - DRV8825
RAMPS 1.4 RADDS 1.5
HotEnd IeC HotEnd IeC
FW MK4DUO 4.3.2 FW MK4DUO 4.3.5
Re: TMC 2100 Vs 2130 Vs 2208/2224 October 05, 2017 05:08PM |
Registered: 10 years ago Posts: 756 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 October 15, 2017 07:53AM |
Registered: 8 years ago Posts: 103 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 October 15, 2017 08:13AM |
Registered: 10 years ago Posts: 756 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 October 22, 2017 12:32PM |
Registered: 10 years ago Posts: 756 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 October 22, 2017 01:50PM |
Registered: 8 years ago Posts: 103 |
Re: TMC 2100 Vs 2130 Vs 2208/2224 October 24, 2017 05:25PM |
Registered: 10 years ago Posts: 756 |