Hallo zusammen,
ich möchte mit einem L293D am ATmega 328p zwei kleine 6V-DC-Motoren mit
PWM steuern. Der ATmega sitzt als Shield auf einem Raspberry, der ihn
mit Strom versorgt bzw. programmiert. (Randbemerkung: extrem praktisches
Setup, Programmierung on-the-fly über WLAN ohne jegliches Stöpseln). Der
Raspberry wird versorgt über ein USB-Ladegerät, L293D Motorstrom mit 7V
über lineares Labornetzteil, GND jeweils verbunden. PWM geht vom ATmega
mit jeweils 500Hz an die Enable Pins des L293D.
Funktioniert auch alles ganz gut, aber mir sind am Oszilloskop deutliche
Störsignale aufgefallen.
Im Einzelnen
1) Obiges Setup
GND und +5V/+3V zeigen jeweils ca. 200mV Störung im Takt der
PWM-Frequenz, wenn die Motoren an sind.
Bei abgeschalteten Motoren gibt es keine Störung.
Ohne PWM bei voller Motorleistung Störung von vielleicht 100-150mV
ohne messbare Frequenz
2) Gleiches Setup, aber Raspberry und Motorstrom über Akku (Powerbank)
versorgt
keinerlei Störung messbar
3) Wie 2) aber Motorstrom über Labornetzteil
leichte Störung an GND und +5/+3V von vielleicht 50mV
4) ATmega und L293D nicht am Raspberry, sondern versorgt über
Labornetzteile
GND ist gestört wie bei 1)
+5V/+3V zeigen dagegen keine Störung
5) L293D solo auf Breadboard, versorgt über Labornetzteile, PWM über
Frequenzgenerator
keinerlei Störung messbar
Wie kann das sein?
Ich hätte ja vermutet, dass ich eine Komponente (z.B. USB Lader) als
Ursache aussortieren kann. Aber so einfach ist es ja offensichtlich
nicht.
Viele Grüße,
Felix
Zeichne bitte erst mal einen Schaltplan, wo man durchblickt! Bitte keine
Leitungen im Innern von Funktionsblöcken oder durch Bauelemente.
Ausreichend Abblockkondensatoren wirken meist Wunder. Die bitte an allen
Spannungsanschlüssen und nicht nur einmal pro Baugruppe. Und dann bitte
ein Foto deines Aufbaus. Steckbrettaufbauten sind kontraproduktiv wegen
großer Übergangswiderstände.
Auf die Schnelle bekomme ich leider keinen besseren Schaltplan hin. Ich
hätte gehofft, dass der Verdrahtungsplan für diese 0815
Standardschaltung reicht.
Die üblichen 100nF Abblockkondensatoren sind ja auch verbaut und
eingezeichnet.
Zum Breadboard: Das ist ja gerade nicht kontraproduktiv, hier hat ja
alles ohne jegliche Störungen funktioniert. Übrigens auch nach Entfernen
der Kondensatoren.
Hi
>Die üblichen 100nF Abblockkondensatoren sind ja auch verbaut und>eingezeichnet.
AppNote042:
For devices with multiple pairs of power and ground pins, it is
essential that
every pair of pins get its own decoupling capacitor.
Bei dir fehlt der Kondensator zwischen PIN7 und 8.
MfG Spess
Felix schrieb:> Auf die Schnelle bekomme ich leider keinen besseren Schaltplan hin.
Dann nimm sie Dir. Und immer bedenken, wer hier Hilfe braucht. Ich bin
es nicht.
Hast du Gnd auch schön sternförmig verlegt? Dein Punkt 1) hört sie stark
nach Spannungsabfall auf der Gnd leitung an. hängt stark davon ab, wo du
gemessen und verbunden hast. ein paar Bilder vom Aufbau wären nett.
Danke für die Antworten. Insbesondere die Kondensatoren an Pin 7/8 und
an den Spannungsanschlüssen werde ich nachrüsten.
Ein Bild der Platine von Aufbau 1-4 habe ich angehängt. Unter der
Platine hängt der Raspberry Pi, verbunden über den GPIO-Header.
Motorstrom wird über Port 6 rechts vorne versorgt. Die Massenbahnen sind
in der Tat eher nicht sternförmig angeordnet. Gemessen habe ich
praktisch überall, die Fehlersignale sind an allen Stellen der Schaltung
in gleicher Weise zu sehen (sowohl GND als auch +5V/+3V).
Zu Schaltplänen: Ich verstehe, dass das in der Elektrotechnik der
Standard ist. Aber in diesem konkreten Fall der Störungsanalyse müsste
der Schaltplan doch auch die relevanten Teile der Netzgeräte bzw. des
Raspberry Pis umfassen, oder? Schließlich gibt es mit meiner Schaltung
an sich über Batterien ja keinerlei Probleme. Für diese Teile habe ich
leider keinen Schaltplan, da sie dazugekauft sind.
Und für das Ermitteln der fehlenden Kondensatoren hat meine Skizze ja
ausgereicht.
Nach dem Einbau der weiteren Kondensatoren werde ich bei meiner
Fehleranalyse aber erstmal in Richtung Aufbau gehen, z.B. schlecht
geplante Masseleitungen. Da werde ich mal einen alternativen Aufbau auf
dem Breadboard ausprobieren. Erscheint das sinnvoll?
Felix schrieb:> Für diese Teile habe ich> leider keinen Schaltplan, da sie dazugekauft sind.
Dann mache entsprechend Input/Output(Link der Teile) + deinen Schaltplan
Felix schrieb:> Fehlersignale
Die wie aussehen?
Felix schrieb:> Aber in diesem konkreten Fall der Störungsanalyse müsste> der Schaltplan doch auch die relevanten Teile der Netzgeräte bzw. des> Raspberry Pis umfassen, oder?
ja natürlich und ich habe bedenken bei dem
Felix schrieb:> USB-Ladegerät
Wie viel liefert der(Leistung/Volt/Ampere)? Bleibt der konstant mit oder
ohne Last?
Felix schrieb:> Schließlich gibt es mit meiner Schaltung> an sich über Batterien ja keinerlei Probleme.
Was für Probleme treten den ohne Batterien auf außer die
Störungen(Anlaufstrom berücksichtigt)?
Felix schrieb:> Und für das Ermitteln der fehlenden Kondensatoren hat meine Skizze ja> ausgereicht.
Wenn du dir selber den Schaltplan zeichnest fällt dir auch der ein oder
andere Fehler auf. Dabei kontrollierst du ja nochmal die Schaltung und
dokumentierst diese.
Außerdem hätten wir dann nicht soviele Fragen um den Fehler zu finden.
Bei einen kompletten Schaltplan + Layout hätte man vielleicht dir im
ersten Post sagen können was verkehrt wäre.
Felix schrieb:> Da werde ich mal einen alternativen Aufbau auf> dem Breadboard ausprobieren. Erscheint das sinnvoll?Helmut -. schrieb:> Steckbrettaufbauten sind kontraproduktiv wegen> großer Übergangswiderstände.Felix schrieb:> Schließlich gibt es mit meiner Schaltung> an sich über Batterien ja keinerlei Probleme.
Warum dann nochmal aufbauen? Finde die Fehlerquelle.
Fehlersuche
Felix schrieb:> Der Raspberry wird versorgt über ein USB-Ladegerät
Nimm eine vernünftige Versorgung zur Entwicklung von elektronischen
Geräten. Wenn du so ein windiges 1€-USB-Ladegerät mal aufmachst und
genauer anschaust, dann freust du dich in Zukunft jedes Mal, wenn das
angesteckte Gerät hinterher überhaupt noch funktioniert.
Felix schrieb:> Aber in diesem konkreten Fall der Störungsanalyse müsste der Schaltplan> doch auch die relevanten Teile der Netzgeräte bzw. des Raspberry Pis> umfassen, oder?
Wenn du deine eigene Versorgungsbeschaltung gut ausgelegt hast, dann ist
in weitem Bereich egal, woher die Versorgung kommt. Im Zweifelsfall
solltest du aber immer auf ein gutes Labornetzteil zurückgreifen können.
> Für diese Teile habe ich leider keinen Schaltplan, da sie dazugekauft sind.
Zumindest für den RPi lässt sich der Schaltplan aber leicht finden...
Felix schrieb:> Picture1.jpg
So richtig geschickt ist das aber nicht. Der L293 ist weit weg von den
Motoranschlüssen, die Motorversorgung geht quer über die Platine und die
Verdrahtung ist generell zu chaotisch.
Lege da anständige Versorgungsleitungen separat zu den Motoren und dem
L293 und nicht so, das die Ströme quer über die ganze Platine laufen.
Trenne Versorung der Motoren und des MC auf und blocke das alles
ausreichend ab. Bei der Motorversorgung kann auch ein LC Filter gute
Dienste tun.
Hier der Versuch eines Schaltplanes - die bei dem Versuch oben nicht
benutzten Sensoren habe ich weggelassen. Macht es das klarer?
Wirkliche Fehler treten auch mit dem USB Netzteil nicht auf, nur die
beschriebenen Störungen auf dem Oszilloskop. Meine Befürchtung ist, dass
sich das später mit größeren Motoren in Richtung echte Fehler verstärkt.
Das USB Netzteil hat 2.5A, es ist das offizielle Raspberry Netzteil.
Einen Spannungseinbruch habe ich auf dem Oszi nicht gesehen, nur die
Störungen. Kann aber nochmal mit dem Multimeter genauer nachmessen und
auch einen Screenshot des Oszis mit den Störsignal zeigen. Aber selbst
bei Versorgung mit einem Rohde&Schwarz Labornetzteil treten die
Störungen in abgeschwächter Form auf (Fälle 3 und 4).
Die Kritik an der Platine ist sicher berechtigt. Ich werde nach
Experimentieren mit Abblockkondensatoren den Aufbau mal auf einem
Breadboard in die vorgeschlagene Richtung angehen.
Eine Frage zu "Trenne Versorung der Motoren und des MC auf":
Im L293D sind ja GND von MC und Motoren hart miteinander verdrahtet.
Gibt es irgendwelche Maßnahmen, das zu verbessern?
Felix schrieb:> Gibt es irgendwelche Maßnahmen, das zu verbessern?
Die müssen schon verbunden bleiben. Aber der Motorstrom sollte mit
dicken Leitungen gemacht werden (also auch GND) und möglichst kurz an
den Motorversorgungsanschluss. Dabei nicht über den MC führen.
Felix,
schau doch 'mal in das Datenblatt des L293 NE (z.B. das von Texas
Instruments, Abb. 8.2). Da siehst Du, dass Du den Motor mit Lösch-Dioden
beschalten musst, sonst machen Dir die Spikes der Motorinduktivitäten
das Leben schwer ;-).
Ciao, Karl.
Karl schrieb:> Da siehst Du, dass Du den Motor mit Lösch-Dioden> beschalten musst...
Hallo Karl,
der hier verwendete L293D hat die schon eingebaut.
Außerdem: Wäre das die Fehlerursache, dann würde ich Störsignale ja
immer erwarten und nicht nur bei Variationen des Aufbaus drumherum.
Viele Grüße,
Felix
Axel R. schrieb:> MISO, MOSI ist richtig rum oder Malfehler in der schematic?
MISO, MOSI und SCLK werden 1:1 verbunden, nicht gekreuzt. So
funktioniert es bei mir und ich meine, so ist es in der Skizze und im
Schaltplan eingezeichnet.
Siehst Du da irgendwo einen Fehler?
Flip B. schrieb:> Dein Laststrom fließt über deine einzige GND verbindung zum Raspberry.> Durch den Aufbau vermute ich da etwa 1-2Ohm. Da liegt dein Problem.
Du hast zwar prinzipiell sehr Recht aber das wird dir der TO kaum
glauben. Solange man keinen detaillierten Aufbau zu Gesicht
bekommt bei dem man die Masse und Versorgungsleitungen klar auf-
lösen kann, besteht keine Hoffnung dies nachzuweisen bzw. aufzu-
zeigen. Ein Schaltplan hilft da gar nicht weiter da er fast immer
den Aufbau nicht 1:1 wiedergibt. Und solch ein "Problem-Inhaber"
wird immer glauben dass mit der Erstellung eines korrekten
Schaltplans die Aufgabe bereits hundertprozentig erledigt ist.
jo mei schrieb:> Und solch ein "Problem-Inhaber"> wird immer glauben dass mit der Erstellung eines korrekten> Schaltplans die Aufgabe bereits hundertprozentig erledigt ist.
Nö, tue ich nicht. Mir ist klar, dass das Problem nicht im tausendfach
von anderen ebenfalls ausprobierten Schaltplan liegt, sondern im Aufbau.
Die Masseführung ist in der Tat chaotisch und kann gut die Ursache sein.
Große Ströme dürften allerdings nicht fließen, da die
Motorstromversorgung +7V und Masse vom Netzteil bekommt.
Mein Projekt fürs Wochenende...
Felix schrieb:> Große Ströme dürften allerdings nicht fließen, da die> Motorstromversorgung +7V und Masse vom Netzteil bekommt.
"Große Ströme" sind in diesem Zusammenhang relativ da es meist
um Induktionsspitzen geht die die Masse sehr kurz aber deutlich
"anheben" oder anderweitig in die empfindlichen Mikrocontroller-
Schaltungen einstreuen. Sobald fliegende Aufbauten mit Dupont-
Verbindungs-Strippen-Chaos im Spiel sind kann man gar nichts
mehr aussagen da die fliegenden Leitungen in jeder Position
eine andere Wirkung haben (können).
Bei Motoren können die Abblock-Elkos übrigens gar nicht groß
genug ausfallen. Da muss man aber bei Schaltelementen aufpassen
dass diese nicht die Last der Elkos mitschalten müssen.
Flip B. schrieb:> Durch den Aufbau vermute ich da etwa 1-2Ohm
Es muss auch gar nicht der ohmsche Widerstand sein der Probleme
macht sondern die Längsinduktivität der stromführenden Kabel.
Aber solange man keinen Aufbau kennt kann man da trefflich
darüber spekulieren.
jo mei schrieb:> Aber solange man keinen Aufbau kennt kann man da trefflich> darüber spekulieren.
Blöde Frage: was fehlt denn? Es gibt den Schaltplan, eine Lageskizze und
ein Foto der Platine auf dem die Bauteile und die meisten Verbindungen
zu sehen sind. Die restlichen Verbindungen sind auf der Unterseite.
Kurzes Fazit: Ich gebe es erstmal auf.
An der gezeigten Schaltung bewirken Änderungen nichts. Habe weitere
100nF Abblockkondensatoren nach ATmega-Datasheet eingelötet. Dadurch ist
keinerlei Änderung festzustellen. Hinzunahme weitere Masseleitungen
haben eine leichte Verbesserung ergeben, das Phänomen aber nicht
gestoppt.
Ein Aufbau auf dem Breadboard ist gescheitert. Die Wackelkontakte waren
so heftig, dass ich den ATmega auf dem Board noch nicht mal
programmieren konnte. Da lässt sich wohl keinerlei Erkenntnis gewinnen.
Ich müsste ein neues Board aufbauen, wozu mir momentan die Zeit fehlt.
Wenn es dazu kommt, werde ich aber die hier gegebenen Tipps gerne
berücksichtigen. Top-Kandidaten sind sicher Masseführung,
Spannungsstabilisierung, Trennung der Motorversorgung (auch räumlich),
LC-Filter.
Ansonsten hängt das Störsignal erheblich von der Konfiguration ab.
Versorgung mit Batterie/Labornetzteil/USB Lader, PWM vom ATmega oder
Frequenzgenerator, verwendeter Motor, PWM-Frequenz, PWM-Duty %, Messort
in der Schaltung. Das sauber aufzubauen, durchzumessen und zu
dokumentieren füllt ein paar Tage... Neben der Zeit ist das Problem,
dass ich gar nicht weiß, welches Störsignal denn noch akzeptabel ist und
welches nicht.
Hier noch ein Bild der Störung (nur L293D mit Motor am Labornetzteil,
PWM vom Frequenzgenerator, kein ATmega), gemessen am GND-Pin des Chips
bei vielleicht 30% PWM Duty. Man sieht deutlich die Störung im
200Hz-Takt des PWM Signals und dazu hochfrequentere Störungssignale. Bei
Volllast (PWM Duty 100%) bleiben letztere bestehen, die Störung im
PWM-Takt verschwindet. Misst man an weiter an GND mit größerem Abstand
(z.B. am Frequenzgenerator), dann schwächt sich das niederfrequente
Signal sehr deutlich ab bis fast auf 0, das hochfrequente bleibt
bestehen.
Nimmt man den ATmega als PWM-Generator dazu, dann schaukeln sich diese
Störungen hoch durchs ganze System - wenn man den ATmega mit einem
Netzteil betreibt. Mit Batterien ist alles kein Problem.
Vielen Dank für die ganzen Tipps!
Felix schrieb:> Blöde Frage: was fehlt denn?Felix schrieb:> Aufbau
Was ist an dieser Bezeichnung so schwer zu verstehen? Wenn dir
der Unterschied zwischen Schaltplan und Aufbau nicht zu vermitteln
ist, wie soll man dir verständlich machen welche Masseströme oder
ähnliches dir deine Schaltung stören? Ich sehe da kein Land ...
Hi,
> Mit Batterien ist alles kein Problem.
ömm, Batterien sind recht niederohmig.
Versuche doch mal so 2200µ am L293 statt deiner 100µ.
Viel Erfolg, Uwe
Ich würde dir empfehlen, das Board mit dem L293D extra zu bauen und mit
Pfostenfeldanschlüssen Richtung MC zu versehen. Motor und Speisung auf
extra Verbinder.
Dann hast du ein kleines Experimentierboard, das nicht fest an einen
bestimmten Controller gelötet ist.
Auf das Board setzt du Abblockelko und evtl. eine Eingangsdrossel für
die Versorgung und in die Ausgangsleitungen zu den Motoren nochmal
kleine Drosseln (33µh - 100µH).
Uwe schrieb:> Versuche doch mal so 2200µ am L293 statt deiner 100µ.
Leider kein Erfolg. Die Störung auf GND direkt am Chip ändert sich
überhaupt nicht (siehe Foto Oszilloskop oben), ob mit 1000µ, 100m oder
0.
Die Störung an Vcc2 ändert sich kaum merklich. Lässt man da aber den
Elko ganz weg, dann geht die Störung dort auf über 200m-300mV hoch. Er
ist also notwendig, aber 100µ sind wohl ausreichend.
Matthias S
>Board mit dem L293D extra zu bauen
Darauf wird es in Zukunft wohl hinauslaufen. Gesteuert per I2C, brauche
ich eh für diverse Sensoren. Das mit den Drosseln probiere ich auch,
muss sie aber erstmal bestellen.