PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Störungen durch PWM-Einstreuung



Der Eisvogel
25.06.2014, 12:37
Hallo,

vergangenes Jahr habe ich angefangen eine Steuerung für den Teach-Robot der Firma Kalms & Mürb zu basteln und eine entsprechende Steuerungssoftware zu schreiben. Das funktioniert auch schon alle bestens. Der Roboter bewegt sich entsprechend, die Software kann alles steuern.

Aber mir ist in den vergangenen Wochen ein unangenehmens Problem aufgefallen. Der Roboter verfügt über 6 Gleichstrommotoren mit Inkrementalgebern. Dafür ist an der Spindel der Motoren ein Reflektor für eine Lichtschranke angebracht, die über folgende Schaltung das Puls-Signal generiert:
28525

Die Lichschranke schaltet dabei den Transistor V3 auf Masse durch wodurch ich ein 0V-Signal am Puls anliegen habe. Wird die Lichtschranke nicht beleuchtet, sperrt V3 und es liegt ein 5V-Signal am Puls an.

Um diese Puls-Signale der 6 Motoren einzulesen verwende ich ein Schieberegister (IC4), welches die Signale parallel einließt und dann seriel an den Mikrocontroller weitergibt:
28526

An SV3 hängen zudem noch zwei weitere PISO-Schieberegister die vier L293B ansteuern um die Motoren-Richtung zu kontrollieren. Über einen weiteren Port des Controllers sind die Enable-Eingänge der L293Bs angeschlossen, damit ich die Geschwindigkeit der Motoren mit den PWM-Ausgängen des Controller regeln kann. Über SV4 wird der Roboter mit einem Flachbandkabel angeschlossen. Die Motoren arbeiten derzeit mit ca. 16V, der Controller mit 5V.

Das Problem an der Sache ist jetzt, dass ich Störungen auf den Puls-Leitungen habe, sobald die PWM-Steuerung aktiv ist. Das ist ja auch kein Wunder, da das Flachbandkabel auch überhaupt nicht abgeschirmt ist, genauso wenig wie die interne Verkabelung des Roboters. Daher ist eine Abschirmung der Kabel Leitungen keine Option um diese Störungen zu beheben, außer ich will die gesamte Verkabelung des Roboters neu machen, was mir schier unmöglich scheint, da ich dann auch die kleinen Platinen, die jeweils an den Motoren sitzen neu machen müsste.

Die Störungen auf den Puls-Leitungen machen sich dadurch bemerkbar, dass das Schieberegister plötzlich Flankenwechsel an den Controller gibt. Dies tritt aber auch nur auf, wenn auf der jeweiligen Puls-Leitung ein 0V-Signal liegt. Wenn 5V anliegen, dann sind keine Störungen bemerkbar.

Meine bisherigen Lösungsversuche bestanden darin mit 100kOhm bzw. 10kOhm die Puls-Leitungen gegen Masse zu ziehen. Das hatte jedoch leider keinen Effekt.

Leider habe ich kein Oszilloskop zur Verfügung, um die Störungen genauer zu untersuchen.

Hab ich bei meiner Verschaltung irgendetwas grob falsch gemacht? Wie könnte man diese Störungen eliminieren? Hat jemand eine Idee, oder muss ich mir irgendwie Zugang zu einem Oszilloskop verschaffen, um das ganze genauer untersuchen zu können? Alles verwendeten ICs haben einen Abblockkondensator von 100nF direkt neben ihnen im Platinnlayout (Lochraster). Zudem ist die Spannungsversorgung für die Motoren (16V) noch zusätzlich mit einem 100µF Elko entkoppelt.

Ich bin über jeden Vorschlag dankbar. Gibt es in Baden-Baden (Rebland?) und Umgebung vielleicht jemanden, der mir bei Bedarf mit einem Oszilloskop zur Seite stehen könnte?

MfG
Der Eisvogel

BMS
25.06.2014, 13:37
Hallo,

Das Problem an der Sache ist jetzt, dass ich Störungen auf den Puls-Leitungen habe, sobald die PWM-Steuerung aktiv ist. Das ist ja auch kein Wunder, da das Flachbandkabel auch überhaupt nicht abgeschirmt ist, genauso wenig wie die interne Verkabelung des Roboters. Daher ist eine Abschirmung der Kabel Leitungen keine Option um diese Störungen zu beheben, außer ich will die gesamte Verkabelung des Roboters neu machen, was mir schier unmöglich scheint, da ich dann auch die kleinen Platinen, die jeweils an den Motoren sitzen neu machen müsste.
Nach meinen Erfahrungen liegt es eher an ungünstiger Masseführung, d.h. die Störungen koppeln durch die Versorgungsspannung ein, genauer: durch die hohe Stromaufnahme der Motoren verschieben sich bei ungünstiger Masseführung auch die Potentiale der Sensoren. Jedes Kabel, jeder Draht und jede Leiterbahn hat einen bestimmten (wenn auch kleinen) Widerstand, an dem bei Stromfluss natürlich auch eine Spannung abfällt. Abhilfe schafft entweder größerer Querschnitt der Masseleitungen oder konsequente, sternförmige Verdrahtung von GND (Quelle ist Sternpunkt).


Die Störungen auf den Puls-Leitungen machen sich dadurch bemerkbar, dass das Schieberegister plötzlich Flankenwechsel an den Controller gibt. Dies tritt aber auch nur auf, wenn auf der jeweiligen Puls-Leitung ein 0V-Signal liegt. Wenn 5V anliegen, dann sind keine Störungen bemerkbar.
Ich vermute, dass deine Masseführung ungünstig ist und beim Einschalten der Motoren die Potentiale so weit verschoben werden, dass dein Schieberegister den ursprünglichen Low-Pegel nicht mehr als Low erkennt sondern kurz in den High-Zustand kippt. Kurze Störungen könnte man noch durch einen kleinen Kondensator vom Sensorsignalausgang nach Masse abfangen. Das geht aber auch nur bis zu einem bestimmten Grad, da so auch die maximale Signalfrequenz beschränkt wird (Tiefpassfilter).
Um die Masseführung zu beurteilen, muss man sich das Platinenlayout (wo verlaufen die GND-Leitungen) und die Verkabelung genauer anschauen.
Grüße,
Bernhard

Der Eisvogel
25.06.2014, 14:24
Hallo Bernhard,

vielen Dank für deine Antwort! An die Masseführung habe ich damals beim Erstellen der Platine noch gar nicht gedacht, da ich damals wie heute noch ein Anfänger bin und mit der Zeit viel dazu lerne, was ich damals hätte wissen sollen. Aber wie sagt man so schön: "Ach hätte ich doch nur gestern schon den Verstand von heute gehabt, dann wäre das ganz anders gelaufen."

Zum Platinenlayout: Das sind zwei Lochraster-Platinen, die zusammengesteckt werden. Ich habe mal Masse grün und 5V orange markiert. Leider alles freihand, deswegen nicht so sauber (nur die Markierungen):
Unten:
28529
Oben:
28528

Die Platinen werden dann einfach übereinander gesteckt. Die Spannungsversorungversorgungs-Leitungen, die vom Netzteil zu den Treibern führen haben einen Durchmesser von 8mm. Die Leitungen von den Treibern zu den Motoren sind dann, wie alle anderen Leitungen, 4mm.
Das Rot-Umkreiste ist der Port an dem die PWM-Signale vom Controller kommen. Das Weiße sind die Motoren-Leitungen die von den Treibern kommen und entsprechend höhere Spannung haben.

Wenn es tatsächlich an der Masse liegt, so wie du es beschrieben hast, würde es dann etwas bringen, wenn ich mal, nur um es auszuprobieren, eine weitere Masseleitung direkt an einen Motor lege?

EDIT: Eine Sache noch: Die roten und gelben (nicht von Hand gezeichneten) Leitungen sind die Pulsleitungen, die zu dem Schieberegister 74HC165 führen.

MfG
Der Eisvogel

BMS
25.06.2014, 19:00
Hallo,
das hast du aber sehr genau geplant, finde ich gut :)
Für die Platine mit den L293 habe ich einen Vorschlag für die Masseführung im Anhang, das könnte etwas Abhilfe bringen.
Auf der 5V-Versorgung könnten auch noch ein oder zwei Elkos mit z.B. 10µF nicht schaden ;)
Die L293 dürfen auch gerne größere Elkos in der Versorgungsspannung erhalten.
Woher kommen eigentlich die 5V?
Die Versorgungsspannung für die Motortreiber wird unten rechts an der Stiftleiste eingespeist, richtig?
Außerhalb der Platine gibt es keine zusätzlichen Verbindungen der Masse, oder?
Grüße, Bernhard

Der Eisvogel
25.06.2014, 20:22
Hallo Bernhard,

die Versorgungsspannnung kommt über die Stiftleiste von einem externen Netzteil, richtig. Die 5V kommen von der Mikrocontroller-Platine (http://ces.karlsruhe.de/~BUB/Controller/USB_Boards/Schaltplan_Maxi-USB-Board.pdf). Auf der sitzt noch einiges anderes an Peripherie. Da sind auch entsprechende Kondensatoren für die 5V. Der Strom kommt derzeit noch vom Computer über USB. Der Anschluss erfolgt über zwei 10-pol Flachbandkabel, die an die zwei Wannenstecker auf der oberen Platine gesteckt werden.

Deinen Vorschlag für die Masseführung werde ich mal ausprobieren. Da kann ich doch einfach isoliertes Kabel nehmen und direkt hinlegen, oder? Die Leitungen von der Stiftleiste zu den Treibern hat bereits 8mm Durchmesser. Allerdings ist dann dann auch alles, die andere Verlegungen der Masse haben nur 4mm.

Ich werde das jetzt mal ausprobieren und mich dann wieder melden. Bis dahin bedanken ich mich für deine Hilfe!

MfG
Der Eisvogel