Forum: Mikrocontroller und Digitale Elektronik DRV8811 Richtungswechsel


von Bülent C. (mirki)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe ein "kleines" Problem mit meinem DRV8811 Stepper Board 
(Schaltplan ist beigefügt).
Das Problem besteht darin, das ich keinen Richtungswechsel hinbekomme. 
Am DIR PIN kann ich den Pegelwechsel erkennen, aber der Schrittmotor 
dreht nur in eine Richtung.
Das Testprogramm füge ich unten ein.
Bin ich hier auf einen Bug gestoßen, oder ist irgendwo ein Problem in 
der Schaltung, oder im Testprogramm?

STEP, Enable, USM0 und USM1 funktionieren, halt nur DIR nicht.
1
#define MOT_ENABLE PC0
2
#define MOT_SM1 PC1
3
#define MOT_SM0 PC2
4
#define MOT_DIR PC3
5
#define MOT_STEP PC4


1
int main(void)
2
{
3
  
4
  
5
  DDRC = 0xff;
6
  PORTC= 0b00000000;
7
  
8
  //PORTC &= ~(1<<MOT_ENABLE); // Enable
9
  //PORTC &= ~(1<<MOT_SM0); // SM0
10
  //PORTC &= ~(1<<MOT_SM1); // SM1
11
  //PORTC &= ~(1<<MOT_DIR);
12
  
13
  
14
  while(1)
15
  {
16
    PORTC |= (1<<MOT_DIR);
17
    
18
    for (int j=0; j<=100; j++)
19
    {
20
      
21
      long_delay(1);
22
      PORTC |=  (1<<MOT_STEP);
23
      long_delay(150);
24
      PORTC &= ~(1<<MOT_STEP);
25
    }
26
    
27
    long_delay(2000);
28
    PORTC &= ~(1<<MOT_DIR); // DIR
29
    long_delay(2000);
30
    
31
    
32
    for (int j=0; j<=100; j++)
33
    {
34
      
35
      long_delay(1);
36
      PORTC |=  (1<<MOT_STEP);
37
      long_delay(150);
38
      PORTC &= ~(1<<MOT_STEP);
39
    }
40
    
41
    
42
  }

: Verschoben durch User
von Werner M. (Gast)


Lesenswert?

Bülent C. schrieb:
> ich habe ein "kleines" Problem mit meinem DRV8811 Stepper Board
> (Schaltplan ist beigefügt).

Zeig doch mal einen richtigen Schaltplan. Diese graphisch angehauchten 
Netzlisten sind eine Krankheit.

> Bin ich hier auf einen Bug gestoßen

Zumindest beim Treiber-IC kannst du dir sicher sein, dass du nicht der 
erste bist, der damit einen Schrittmotor rückwärts drehen lassen will.

von Mike (Gast)


Lesenswert?

Bülent C. schrieb:
> schaltung.JPG

Werner M. schrieb:
> Diese graphisch angehauchten Netzlisten sind eine Krankheit.

Und die Lesbarkeit wird durch die Verwendung des JPEG-Formates mit den 
damit einhergehenden Kompressionsartefakten nicht gerade gefördert. Wozu 
gibt es eigentlich den Artikel über Bildformate, auf den beim Upload 
extra hingewiesen wird, insbesondere den Absatz zu technischen 
Zeichnungen?

von Bülent C. (mirki)


Lesenswert?

Werner M. schrieb:
> Bülent C. schrieb:
> ich habe ein "kleines" Problem mit meinem DRV8811 Stepper Board
> (Schaltplan ist beigefügt).
>
> Zeig doch mal einen richtigen Schaltplan. Diese graphisch angehauchten
> Netzlisten sind eine Krankheit.
>
Was soll am Schaltplan verkehrt sein?
> Bin ich hier auf einen Bug gestoßen
>
> Zumindest beim Treiber-IC kannst du dir sicher sein, dass du nicht der
> erste bist, der damit einen Schrittmotor rückwärts drehen lassen will.
Ich schrieb ja bereits, dass alles bis auf die Richtungsänderung 
funktioniert. Am DIR Pin kann ich auch die Pegeländerung messen.

von Helmut L. (helmi1)


Lesenswert?

Bülent C. schrieb:
> Was soll am Schaltplan verkehrt sein?

Irgendwo auf dem Blatt verstreute Schaltzeichen malen und an den Pinen 
Querverweise dranschreiben und der geneigte Leser soll dann das passende 
andere Ende suchen sind ein Krankheit. Da kann man auch direkt nur noch 
eine Netzliste posten.

von Bülent C. (mirki)


Lesenswert?

Helmut Lenzen schrieb:
> Bülent C. schrieb:
> Was soll am Schaltplan verkehrt sein?
>
> Irgendwo auf dem Blatt verstreute Schaltzeichen malen und an den Pinen
> Querverweise dranschreiben und der geneigte Leser soll dann das passende
> andere Ende suchen sind ein Krankheit. Da kann man auch direkt nur noch
> eine Netzliste posten.

Wer den Drv8811 kennt, der würde die einzelnen Komponenten wieder 
erkennen. In Komponenten teilt man die Schaltung auf, um der 
Übersichtlichkeit wegen.

von Helmut L. (helmi1)


Lesenswert?

Bülent C. schrieb:
> Wer den Drv8811 kennt, der würde die einzelnen Komponenten wieder
> erkennen.

Also muss man erst das Datenblatt studieren um den Plan lesen zu 
koennen?
Merkwuerdige Zeichnungserstellung.

von Bülent C. (mirki)


Lesenswert?

Helmut Lenzen schrieb:
> Bülent C. schrieb:
> Wer den Drv8811 kennt, der würde die einzelnen Komponenten wieder
> erkennen.
>
> Also muss man erst das Datenblatt studieren um den Plan lesen zu
> koennen?
> Merkwuerdige Zeichnungserstellung.

Wenn man den Drv8811 nicht kennt, dann sollte man sich vielleicht aus 
dem thread raushalten.

von Helmut L. (helmi1)


Lesenswert?

Ey Ey Sir wie du befiehlst du bist hier der Boss.

Allerdings haben 2 andere dir das auch gesagt.

von Werner M. (Gast)


Lesenswert?

Bülent C. schrieb:
> Wenn man den Drv8811 nicht kennt, dann sollte man sich vielleicht aus
> dem thread raushalten.

Dann tue ich das mal.

von Karl H. (kbuchegg)


Lesenswert?

welcher µC eigentlich?

Auf einigen AVR Typen liegt am Port C das JTAG INteerface, das per 
Default eingeschaltet ist. Da kannst du dann programmintern an den Piuns 
umstellen soviel du willst, da tut sich extern nichts.

von Bülent C. (mirki)


Lesenswert?

Karl Heinz schrieb:
> welcher µC eigentlich?
>
> Auf einigen AVR Typen liegt am Port C das JTAG INteerface, das per
> Default eingeschaltet ist. Da kannst du dann programmintern an den Piuns
> umstellen soviel du willst, da tut sich extern nichts.

Es handelt sich um einen ATMega8. Das problem mit dem PortC am 32'er 
kenne ich, trifft hier aber nicht zu. Wie ich schon schrieb, den 
Pegelwechsel (siehe sourcecode) kann ich direkt am DRV8811 DIR PIN 
messen.

von Karl H. (kbuchegg)


Lesenswert?

Bülent C. schrieb:

> Es handelt sich um einen ATMega8. Das problem mit dem PortC am 32'er
> kenne ich, trifft hier aber nicht zu. Wie ich schon schrieb, den
> Pegelwechsel (siehe sourcecode) kann ich direkt am DRV8811 DIR PIN
> messen.

Na dann muss der Motor auch in die andere Richtung drehen.

Im schlimmsten Fall kannst du ja mal die Leitungen Dir und Step vom µC 
losmachen und einfach mal händisch die Leitungen mit Vcc bzw. GND 
verbinden. Dir legst du einfach entweder an Vcc oder GND und jedesmal 
wenn du mit dem Step-Draht an Vcc kommst, macht der Motor einen Schritt. 
Legst du Dir auf den jeweils anderen Pegel, dann eben einen Schritt in 
die andere Richtung.

So sollte das erst mal sein. Ganz ohne µC oder Programm kann man das 
problemlos testen.

Und für einen verspielten Hund wie mich, wäre das sowieso das allererste 
was ich tue, wenn ich einen Schrittmotortreiber bauen oder bekomme: ihn 
ganz einfach erst mal ohne µC testen, indem ich die Eingänge korrekt mit 
Vcc bzw. GND verbinde (wie der Baustein das eben haben will) und dann 
mit dem Step Draht Pulse durch Antippen von an Vcc bzw. GND erzeuge. (ja 
nachdem was das Datenblatt sagt, ob ich positive oder negative Pulse 
erzeugen muss).
Das würde ich schon alleine deswegen tun, damit ich sicher bin, dass der 
Treiber funktioniert und ich ein bischen 'Erfahrung' kriege, wie er an 
seinen Eingangsleitungen angesteuert werden will.

: Bearbeitet durch User
von Bülent C. (mirki)


Lesenswert?

Karl Heinz schrieb:
> Na dann muss der Motor auch in die andere Richtung drehen.

Tut er leider nicht.

Karl Heinz schrieb:
> ihn
> ganz einfach erst mal ohne µC testen, indem ich die Eingänge korrekt mit
> Vcc bzw. GND verbinde (wie der Baustein das eben haben will) und dann
> mit dem Draht an Vcc tippe.

Das habe ich auch schon als erstes getestet. Leider dreht er sich nur in 
eine Richtung.

Kann der DRV8811 defekt sein? Ich kann mir das schwer vorstellen, das 
nur die Richtungsänderung defekt sein soll. Wenn so ein Chip defekt 
geht, dann funktioniert vieles nicht mehr. Wobei auch noch STEP, 
USM0/USM1 und DIR im gleichen Logikteil des Chip's sind.

Das ist zum verrückt werden. Ich dachte zuerst, das es evtl. am timing 
liegen könnte. Deswegen hatte ich großzügige delayas vor und nach dem 
Richtungswechsel gesetzt.

Hier scheint auch noch jemand mal das gleiche Problem gehabt zu haben:
Beitrag "Problem mit TI DRV8811 (kompatibel zu Allegro A3979)"

von Ogottogot (Gast)


Lesenswert?

Bülent C. schrieb:
> Was soll am Schaltplan verkehrt sein?

Frage lieber was daran richtig ist. Ein Schaltplan dient dazu die 
Zusammenhänge einer Schaltung auf einen Blick zu erfassen. Dieses 
neumodische Auseinanderreißen und Zerfasern in einer LABEL-ORGIE 
angeordneter Teilfunktionen, das das dem Lesenden vor die Füße geworfen 
wird, ist einfach nicht schön und übrigens auch nicht notwendig. Das 
Verwenden von jpeg setzt dem ganzen dann noch eines drauf und deine 
Uneinsichtigkeit oder besser Sturheit untermauert dann ein solches 
Fehlverhalten.

von Bülent C. (mirki)


Angehängte Dateien:

Lesenswert?

Ogottogot schrieb:
> Frage lieber was daran richtig ist. Ein Schaltplan dient dazu die
> Zusammenhänge einer Schaltung auf einen Blick zu erfassen. Dieses
> neumodische Auseinanderreißen und Zerfasern in einer LABEL-ORGIE
> angeordneter Teilfunktionen, das das dem Lesenden vor die Füße geworfen
> wird, ist einfach nicht schön und übrigens auch nicht notwendig.

UNGLAUBLICH!! Wenn man nicht in der Lage ist, die Zusammenhänge in einem 
Schaltplan zu erkennen, dann sollte man sich fragen, ob man was von der 
Materie versteht. Hier in dem Fall vom DRV8811.
Und die Bereiche für RCA, RCB, Vref, Decay hat man übersichtlicht zu 
gestalten.

Schau Dir mal das PDF im Anhang an. Das ist ein Schaltplan von TI.
Und auch viele andere Schaltpläne zum DRV881 habe ich so in der Form 
gesehen. Was soll das gequake hier?

Ogottogot schrieb:
> as
> Verwenden von jpeg setzt dem ganzen dann noch eines drauf

Gut, das könnte man so durchgehen lassen.

: Bearbeitet durch User
von Ogottogot (Gast)


Lesenswert?

Bülent C. schrieb: schrieb:

> Schau Dir mal das PDF im Anhang an. Das ist ein Schaltplan von TI.
> Und auch viele andere Schaltpläne zum DRV881 habe ich so in der Form
> gesehen.

Ja und? Schlechte Beispiele lassen sich immer finden (auch bei den 
Kommerziellen). Auf der Autobahn erklären auch immer irgendwelche 
Vollhonks, die herausgewunken werden, warum gerade ihr schlechter 
Fahrstil auffällig sei, der angeblich voll "normal" ist. Und die Fehler 
haben dann immer die anderen begangen. Kennt man alles.

> Was soll das gequake hier?

Wie schon beschrieben: UNEINSICHTIG und stures Verhalten. Beides muss 
nicht sein.

von Karl H. (kbuchegg)


Lesenswert?

Bülent C. schrieb:
> Karl Heinz schrieb:
>> Na dann muss der Motor auch in die andere Richtung drehen.
>
> Tut er leider nicht.
>
> Karl Heinz schrieb:
>> ihn
>> ganz einfach erst mal ohne µC testen, indem ich die Eingänge korrekt mit
>> Vcc bzw. GND verbinde (wie der Baustein das eben haben will) und dann
>> mit dem Draht an Vcc tippe.
>
> Das habe ich auch schon als erstes getestet. Leider dreht er sich nur in
> eine Richtung.

Das sieht eigentlich alles gut aus.

Irgendwelche ungewollten Brücken, kalte Lötstellen?

von Karl H. (kbuchegg)


Lesenswert?

Bülent C. schrieb:

> UNGLAUBLICH!! Wenn man nicht in der Lage ist, die Zusammenhänge in einem
> Schaltplan zu erkennen, dann sollte man sich fragen, ob man was von der
> Materie versteht. Hier in dem Fall vom DRV8811.
> Und die Bereiche für RCA, RCB, Vref, Decay hat man übersichtlicht zu
> gestalten.

Na ja. Man kann alles übertreiben.
Wenn man dann nur noch am Signalnamen ablesen und das Gegenstück suchen 
ist, dann ist es des Guten zu viel.

Aber soo schlimm ist das jetzt in dem Plan auch wieder nicht. So viele 
Teile sinds dann auch wieder nicht.
Die Bauteilwerte hab ich jetzt nicht mit dem Datenblatt verglichen. Ich 
kann mir aber ehrlich gesagt auch nicht wirklich vorstellen, dass man 
die so wählen kann, dass der Motor in die eine Richtung dreht und in die 
andere nicht.

von Bülent C. (mirki)


Lesenswert?

Karl Heinz schrieb:
> Das sieht eigentlich alles gut aus.
>
> Irgendwelche ungewollten Brücken, kalte Lötstellen?

Die betroffenen Bereiche hatte ich bereits überprüft und es sieht gut 
aus, keine ungewollten Brücken und/oder kalte Lötstellen.
Die Pegel sind im definiertem Bereich.
Der DIR Pin am DRV8811 ist intern mit 1MOhm gegen Masse gezogen.


Es ist zum verrückt werden. Wenn der Chip kaputt wäre, dann würde ja 
nichts funktionieren, oder?!

von Bülent C. (mirki)


Lesenswert?

Karl Heinz schrieb:
> Na ja. Man kann alles übertreiben.
> Wenn man dann nur noch am Signalnamen ablesen und das Gegenstück suchen
> ist, dann ist es des Guten zu viel.
>
> Aber soo schlimm ist das jetzt in dem Plan auch wieder nicht. So viele
> Teile sinds dann auch wieder nicht.

Eben! Es sind nicht viele Bauteile! Daher muss man nicht viel suchen. 
Und wenn man die Bauteile direkt an den IC beschalten würde, dann würde 
es sehr unübersichtlich werden.
Es ist halt 'ne Gratwanderung zwischen direkt beschalten und Signalnamen 
vergeben.

von Bülent C. (mirki)


Lesenswert?

Ogottogot schrieb:
> Wie schon beschrieben: UNEINSICHTIG und stures Verhalten. Beides muss
> nicht sein.

Naja, mir kann man sicher nicht vorwerfen, das ich uneinsichtig wäre.
Beitrag "Feedback für DRV8811 Board"
In dem verlinkten Thread geht es auch genau um diese Applikation.

von Bülent C. (mirki)


Lesenswert?

Hallo Mods,

könnte bitte einer diesen Thread nach "µC & Elektronik" verschieben? Ich 
glaube hier ist der fehl am Platz.
Danke!

von Werner M. (Gast)


Lesenswert?

Bülent C. schrieb:
> Und wenn man die Bauteile direkt an den IC beschalten würde, dann würde
> es sehr unübersichtlich werden.

Ich fände es nicht übertrieben, wenn z.B. die Sense-Widerstände auch an 
den Sense-Pins dran wären.

Wo wir gerade bei Sense sind: Was hast du als Wicklungsstrom 
eingestellt. Wenn man sich deine Beschaltung dann zusammen buchstabiert 
hat, sieht man, dass es da beliebige Fehlermöglichkeiten gibt.

von Bülent C. (mirki)


Lesenswert?

Der Strom wurde auf 400mA begrenzt. Was hat das für eine Auswirkung auf 
den Logikteil des Drv8811?

von Bülent C. (mirki)


Lesenswert?

Sonst noch jemand ne Idee?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.