Forum: Mikrocontroller und Digitale Elektronik Störung Motorsteuerung mit ATmega


von Felix (Gast)


Angehängte Dateien:

Lesenswert?

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

von Helmut -. (dc3yc)


Lesenswert?

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.

: Bearbeitet durch User
von Felix (Gast)


Lesenswert?

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.

von Spess53 (Gast)


Lesenswert?

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

von Lötlackl *. (pappnase) Benutzerseite


Lesenswert?

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.

von K. S. (the_yrr)


Lesenswert?

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.

von Felix (Gast)


Angehängte Dateien:

Lesenswert?

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?

von Rainer S. (enevile) Benutzerseite


Lesenswert?

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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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...

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von Felix (Gast)


Angehängte Dateien:

Lesenswert?

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?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

: Bearbeitet durch User
von Karl (Gast)


Lesenswert?

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.

von Felix (Gast)


Lesenswert?

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

von Axel R. (axlr)


Lesenswert?

MISO, MOSI ist richtig rum oder Malfehler in der schematic?
Hat ja nun mit dem Fehler nix zu tun, fiel mir nur auf...

von Felix (Gast)


Lesenswert?

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?

von Flip B. (frickelfreak)


Lesenswert?

Dein Laststrom fließt über deine einzige GND verbindung zum Raspberry. 
Durch den Aufbau vermute ich da etwa 1-2Ohm. Da liegt dein Problem.

von jo mei (Gast)


Lesenswert?

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.

von Felix (Gast)


Lesenswert?

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...

von jo mei (Gast)


Lesenswert?

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.

Beitrag #6550609 wurde von einem Moderator gelöscht.
Beitrag #6551029 wurde von einem Moderator gelöscht.
Beitrag #6551213 wurde von einem Moderator gelöscht.
von Felix (Gast)


Lesenswert?

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.

von Felix (Gast)


Angehängte Dateien:

Lesenswert?

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!

von jo mei (Gast)


Lesenswert?

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 ...

von jo mei (Gast)


Lesenswert?

jo mei schrieb:
> Felix schrieb:
>> Aufbau

Ich meinte jedoch: "jo mei schrieb: > Aufbau"

von Uwe (Gast)


Lesenswert?

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

Beitrag #6553333 wurde von einem Moderator gelöscht.
Beitrag #6553343 wurde von einem Moderator gelöscht.
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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).

: Bearbeitet durch User
Beitrag #6553909 wurde von einem Moderator gelöscht.
Beitrag #6553928 wurde von einem Moderator gelöscht.
Beitrag #6554201 wurde von einem Moderator gelöscht.
von Felix (Gast)


Lesenswert?

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.

Beitrag #6554716 wurde von einem Moderator gelöscht.
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Felix schrieb:
> Gesteuert per I2C

Auch das nochmal überlegen. I²C ist ein Bus, der sich durch kurze 
Störungen schnell mal ausser Tritt bringen lässt.

Beitrag #6555458 wurde von einem Moderator gelöscht.
Beitrag #6556064 wurde von einem Moderator gelöscht.
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.