Willkommen! Anmelden Ein neues Profil erzeugen

Erweiterte Suche

TMC2208 in Standalone - Marlin-Konfiguration überflüssig?

geschrieben von davidramiro 
TMC2208 in Standalone - Marlin-Konfiguration überflüssig?
05. December 2018 09:21
Hallo zusammen,

und zwar geht's um die Marlin 1.1.x-bugfix, bin gerade dabei die Config für ein RAMPS1.4 Board anzupassen.

Eigentlich ist es nur eine kleine Verständnisfrage, vielleicht kann mich einer aufklären: Ich betreibe meine TMC2208 noch im Standalone, stealthChop war mir wegen der Lautstärke fürs erste das Wichtigste.

Man kann ja in der Configuration.h X_DRIVER_TYPE etc. auf TMC2208_STANDALONE stellen. Bin ich auch fürs erste gut mit gefahren, nach Anpassung der Vref auch keine verlorenen Schritte mehr.

Nun bin ich aber nach ein wenig Recherche doch ein wenig verwirrt, scheinbar ist das definieren gar nicht nötig, da die 2208 plug-and-play zu den ausgetauschten A4988 laufen und Marlin standardmäßig von denen ausgeht.
Nun ist meine Frage, was genau wird mit dem Einstellen in der Config erreicht? Die feineren Einstellungen in der _adv.h werden ja lediglich durch UART-Kommunikation freigeschaltet, richtig?
Oder gibt es dadurch doch irgendwelche Einstellungsmöglichkeiten, die ich übersehen habe?

Besten Dank im Voraus,

David
Re: TMC2208 in Standalone - Marlin-Konfiguration überflüssig?
06. December 2018 01:16
Die 2208 passen und laufen auch ohne Einstellung, du musst vielleicht die Stepperrichtung umkehren aber mehr nicht. Die Firmwareeinstellungen nützen nichts ohne verbundene RX/TX Leitung für UART.


Geeetech i3 Alu Pro (GT2560, LCD2004, TMC2208, MK7 direkt, H6 Wellen, MK2a Carbon Bed, 12V 300W PSU); Von Slic3r 1.3 auf SD Karte
Re: TMC2208 in Standalone - Marlin-Konfiguration überflüssig?
06. December 2018 07:07
Danke für die Antwort!

Dass sie laufen, ist mir bewusst, bin ja schon seit längerem mit denen am Drucken.

Zur Nutzung von UART definiert man allerdings "TMC2208", ohne "_STANDALONE". Das hatte mich lediglich gewundert, da ja Standalone meines Wissens nach keine Möglichkeit der Konfiguration bietet. Deswegen wollte ich nur des Verständnisses halber nachfragen, wieso man die in Marlin explizit auf Standalone definieren kann.
Re: TMC2208 in Standalone - Marlin-Konfiguration überflüssig?
07. December 2018 02:13
Sorry, hab ich falsch verstanden, da fällt mir leider auch nichts ein.


Geeetech i3 Alu Pro (GT2560, LCD2004, TMC2208, MK7 direkt, H6 Wellen, MK2a Carbon Bed, 12V 300W PSU); Von Slic3r 1.3 auf SD Karte
Re: TMC2208 in Standalone - Marlin-Konfiguration überflüssig?
18. December 2018 06:12
Hallo
Würde mich in das Thema auch mal einklinken.

Es gibt ja seit der letzten Firmeware Version diese Einstellung in der "Configuration.h" bzw. "Configuration_adv.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, DRV8825, LV8729, L6470, TB6560, TB6600, TMC2100,
 *          TMC2130, TMC2130_STANDALONE, TMC2208, TMC2208_STANDALONE,
 *          TMC26X,  TMC26X_STANDALONE,  TMC2660, TMC2660_STANDALONE,
 *          TMC5130, TMC5130_STANDALONE
 * :['A4988', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE']
 */
//#define X_DRIVER_TYPE  A4988
//#define Y_DRIVER_TYPE  A4988
//#define Z_DRIVER_TYPE  A4988
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define E0_DRIVER_TYPE A4988
//#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988

// Enable this feature if all enabled endstop pins are interrupt-capable.
// This will remove the need to poll the interrupt pins, saving many CPU cycles.
//#define ENDSTOP_INTERRUPTS_FEATURE

Habe noch nicht so richtig verstanden was ich davon habe. Was bringt das? Was hat das für Vorteile?
Das einzige was ich rausgelesen habe ist das man die Stepper Driver per UART Konfigurieren kann.
Re: TMC2208 in Standalone - Marlin-Konfiguration überflüssig?
05. May 2019 06:19
Naja, genau genommen sind A4988 und TMC2208 zwar pinkompatibel, aber irgendwie muss der TMC ja die Interpolation zwischen zwei Step-Impulsen vornehmen. Für die 16.tel Schritte bekommt man einen Impuls. Wie aber kann man berechnen, wie lange ein 256tel Schrit dauern soll? Das weis der 2208 doch erst nach dem zweiten Impuls. Solange die Geschwindigkeit konstant ist, kein Problem - aber wenn sich der Impulsabstand verkürzt oder verlängert (Beschleunigung oder Bremsen), kann die Interpolation nicht optimal sein.
Ich kann mir durchaus vorstellen, dass sich das Verhalten der Interpolation optimieren lässt, indem minimale Änderungen bezüglich des Zeitpunkts, zu dem der Step-Impuls abgegeben wird, passieren. Sprich: wenn die letzten Schrittimpulse z.B. alle 10 ms kamen und der nächste schon nach 5ms kommen wird, steht die Interpolation noch auf 16 256.tel microsteps in 10ms. Der nächste Step kommt aber schon nach 5ms, der TMC müsste nun die fehlenden 8 256tel. Microsteps "nachholen" und außerdem die 16 256tel Microsteps vornehmen - also 24 256tel. Microsteps in 5 Milisekunden machen.
Weis die Firmware, dass eine Interpolation erfolgt, könnte sie den Schrittimpuls vor dem 5ms Impuls schon etwas "vorverlegen" und damit den Motor noch etwas sanfter laufen lassen.

Ich habe keine Ahnung, ob und wie Marlin das tatsächlich nutzt und wie der 2208 die notwendige Interpolation prognostiziert. Dass es da Optimierungsmöglichkeiten durch das Timing gibt, liegt meines Erachtens jedoch auf der Hand - 1 16tel Step direkt nach einem Stepimpuls ist eben nicht das gleiche wie 16 256tel steps verteilt auf eine noch unbekannte Dauer nach einem Stepimpuls, für die der Treiber eine Kristallkugel bräuchte.

Es schadet jedenfalls nicht, TMC2208_Standalone zu setzten und solange ich nicht definitiv weis, dass die Firmware es nicht beim Timing der Stepimpulse berücksichtigt oder irgendwann berücksichtigen wird, werde ich es auch setzen; selbst wenn die Auswirkung nur minimal wäre.
In diesem Forum dürfen leider nur registrierte Teilnehmer schreiben.

Klicke hier, um Dich einzuloggen