TMC2208 NEMA 17 Problem (Motor bewegt sich schlichtweg nicht)

Hallo zusammen,
ich habe nun jede mögliche Fehlerquelle drei mal geprüft und bekomme meinen Motor dennoch einfach nicht ans laufen. Ich möchte lediglich meinen NEMA 17 rotieren lassen. Leider passiert nicht mehr als dass die Welle unter Spannung fixiert wird. Habe beide Motor-Wicklungen mit dem Multimeter durch gemessen und es ist alles in Ordnung. Darüber hinaus habe ich Motor und Treiber jeweils einmal ausgetauscht um einen Bauteildefekt auszuschließen.

Im Folgenden mein Quellcode und der Schaltkreis. Habe ich irgendetwas übersehen? Nachdem der Enable Pin auf GND gezogen wurde, wird die Welle korrekt fixiert, aber keinerlei Anzeichen einer Drehung. Den Strom habe ich korrekt eingestellt. Das Haltemoment beweist ebenfalls dass genügend Power anliegt.

Stepper Treiber: TMC2208 V1.2
MCU: Wemos D1 (ESP8266)
IDE: Arduino

Code:

#define EN_PIN 15    //D8                
#define STEP_PIN 4   //D2            
#define DIR_PIN 5    //D1
#define LED_PIN 2    //D4

void setup() {

  pinMode(DIR_PIN, OUTPUT);
  pinMode(EN_PIN, OUTPUT);
  pinMode(STEP_PIN, OUTPUT);
  pinMode(LED_PIN, OUTPUT);

  digitalWrite(DIR_PIN, LOW);
  digitalWrite(EN_PIN, LOW);
          
}

void loop() {
  digitalWrite(STEP_PIN, HIGH); 
  delay(50);
  digitalWrite(STEP_PIN, LOW); 
  delay(50);
}

Schaltkreis:

Pinout:

Hallo und guten Morgen,
überprüfe mit der Hilfe des TMC2208 Datenblattes welche Logic Voltages an den Steuerpins erwartet werden und ob diese zuverlässig vom Wemos D1 zur Verfügung gestellt werden.

Ist das ein TMC2208-Modul (dann bitte Link bereitstellen) oder tatsächlich der nackte Chip?
Falls Letzteres: fehlen dann da nicht ein paar Pins (Charge Pump) und Kondensatoren?

Guten Morgen zusammen,
hier das Datenblatt. Ich verwende ein Modul, nicht den IC als Standalone.
http://wiki.fysetc.com/TMC2208/

Laut Datenblatt liegt das Logiklevel zwischen 3-5V, demnach müssten die Pins ausreichen

Ja, dann scheint das zu passen.
Annahme: Der Motor ist nicht zu kräftig (1.4A) und die beschriebene Einstellung hast Du durchgeführt.
Dann fällt mir nicht mehr viel ein, außer die Pins nochmal zu kontrollieren: Ist D8 nicht Pin 16?

wno158:
Ist D8 nicht Pin 16?

Nope, habe das Pinout oben angehangen. Ich bin leider auch ratlos. Kam mir selten so doof vor. Ich möchte doch einfach nur meinen MOtor rotieren lassen :smiley:

Hmm. Kenne mich mit den Wemos-Dingern nicht wirklich sus. Hast du noch einen Uno oder Nano zum Gegentesten?

Hallo
schaue dir mit einem einfachen Logikanalyser, aufgebaut mit LED´s plus Vorwiderstände, die Steuersignale, ohne Treiber an.

Gibts einen enable Pin, der ein Signal erwartet bevor er loslegt?

Man darf die Anschlüsse vom Motor nicht abziehen. Das kann glaub ich den Treiber killen, oder?

In welchem Modus läuft dein Board? Die Konfiguration kann ja per UART oder über die M-Pins eingestellt werden.
Wenn das Board im UART-Mode startet, dürfte es ohne entsprechende Programmierung nicht funktionieren.
Ich habe TMC2130-Boards, die ebenfalls wahlweise per SPI oder über Pins konfiguriert werden können. Da musste ich auf der Rückseite winzige Lötpads überbrücken, damit der SPI-Modus abgeschaltet war.
Hast Du ein Schaltbild von deinem Board? Und ein Bild von der Rückseite?

themanfrommoon:
Gibts einen enable Pin, der ein Signal erwartet bevor er loslegt?

Da der Motor ja ein Haltemoment hat, dürfte enable korrekt aktiviert sein.

wno158:
Hmm. Kenne mich mit den Wemos-Dingern nicht wirklich sus. Hast du noch einen Uno oder Nano zum Gegentesten?

Okay, habe nun zum testen einen Arduino Uno angeschlossen und 5V als Logiklevel benutzt, aber leider alles beim alten.

MicroBahner:
In welchem Modus läuft dein Board? Die Konfiguration kann ja per UART oder über die M-Pins eingestellt werden.
Wenn das Board im UART-Mode startet, dürfte es ohne entsprechende Programmierung nicht funktionieren.
Ich habe TMC2130-Boards, die ebenfalls wahlweise per SPI oder über Pins konfiguriert werden können. Da musste ich auf der Rückseite winzige Lötpads überbrücken, damit der SPI-Modus abgeschaltet war.
Hast Du ein Schaltbild von deinem Board? Und ein Bild von der Rückseite?
Da der Motor ja ein Haltemoment hat, dürfte enable korrekt aktiviert sein.

Der Hinweis mit dem Boot-Modus des TMC2208 ist interessant. Leider finde ich hierzu nichts. Weiß jemand wie ich das Modul im "Pin-Modus" starte (DIR und STEP). Ich möchte UART nicht nutzen!

/*
 *  Arduino   1
 *  WEMOS D1  2
 */

#define DEBUG 1 

#if DEBUG == 1
  #define EN_PIN 7                   
  #define STEP_PIN 2          
  #define DIR_PIN 5   
  #define LED_PIN 13   
#endif

#if DEBUG == 2
  #define EN_PIN 15    //D8                
  #define STEP_PIN 4   //D2            
  #define DIR_PIN 5    //D1
  #define LED_PIN 2    //D4
#endif

void setup() {

  Serial.begin(9600);
  Serial.println("Start");

  Serial.println(EN_PIN);

  pinMode(EN_PIN, OUTPUT);
  digitalWrite(EN_PIN, HIGH); //deactivate driver (LOW active)
  pinMode(DIR_PIN, OUTPUT);
  digitalWrite(DIR_PIN, LOW); //LOW or HIGH
  pinMode(STEP_PIN, OUTPUT);
  digitalWrite(STEP_PIN, LOW);

  digitalWrite(EN_PIN, LOW); //activate driver
          
}

void loop() {
  digitalWrite(STEP_PIN, HIGH); 
  delay(50);
  digitalWrite(STEP_PIN, LOW); 
  delay(50);
}

paulpaulson:
Hallo
schaue dir mit einem einfachen Logikanalyser, aufgebaut mit LED´s plus Vorwiderstände, die Steuersignale, ohne Treiber an.

Anstelle dessen habe ich einfach eine LED an meinen STEP Pin angeschlossen und blinkt brav im vorgegebenen Takt. Es ist ein Trauerspiel :smiley: Auf dem Bild ist die LED gerade aus, aber an den Signalen liegt es nicht.

Hier die Bilder des Moduls. Übrigens mit einem A4988 Stepper Treiber geht es problemlos. Aber ich möchte gerne den TMC Silent-Treiber nutzen

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.