Hi Leute!
Ich steuere eine Schrittmotor-Achse an.
Das Problem: Manchmal glaubt der µC, während der Fahrt, ein Endschalter
habe ausgelöst, obwohl das nicht der Fall ist.
Das Problem konnte durch einen Filter besser in den Griff bekommen
werden, aber es sind immer noch Störungen zu messen, was mich dazu
bewegt, zu überlegen, ob es nicht bessere Schaltungen gibt.
Deshalb hoffe ich auf eure kompetenten Aussagen.
Genauere Details sind nun beschrieben:
Dazu verwende ich eine Hauptplatine mit einem ATXMEGA. Über ein
14poliges Flachbandkabel ist die Hauptlatine mit der Motortreiberplatine
verbunden. Die Steuersignale werden mit diesem Kabel übertragen (Clock,
Richtung, Endschalter, Enable usw.).
Auf der Motortreiberplatine ist der Baustein A4982.
Damit die Steuerung mit möglichst allen Achsen funktioniert, habe ich
den Jumper JP21 eingebaut, damit high-aktiv und low-aktiv Signale
verarbeitet werden können.
In der mitgesendeten Zeichnung habe ich euch schematisch die Beschaltung
eines einzelnen Endschalters aufgezeichnet.
Das Problem war, dass während des Fahrens der µC ab und zu gedacht hat,
dass ein Endschalter ausgelöst wurde, obwohl die Achse noch nicht am
Ende war. Das Motorkabel induziert sehr hohe Störspannungen in die
Leitungen der Endschalter.
Deshalb habe ich den beschriebenen Filter für den Endschalter auf der
Motortreiberplatine aufgebracht und es scheint zu funktionieren, aber
man misst mit dem Oszi an "Punkt1", während der Fahrt, immer noch eine
Störspannung von +/- 1,2V.
An "Punkt2" und am Eingangspin des Prozessors ist nur noch +/- 400mV zu
messen.
Ich würde das Ganze gerne noch besser filtern, um die Störspannungen zu
verkleinern. - Oder die Frage ist auch, ob das überhaupt notwendig ist?
BZW, ob es vorteilhaftere Schaltungen für eine Endschalterabfrage gibt?
Vielen Dank im Voraus.
LG
Martin
Evtl. reicht da schon ein Pull-Up bzw. Pull-Down mit ca. 5kOhm um die
induzierten Spannungen kurz zu schliessen. Wäre das erste was ich
probieren würde.
Es wäre aber auch interressant zu wissen, was für ein Signal vom Sensor
kommt(TTL, OpenCollector etc.)
Es handelt sich in diesem Fall um einen Öffner.
Im nicht ausglösten Zustand zieht er das Signal auf GND hinunter.
Wenn er auslöst, also öffnet, ist er OpenCollector.
Egal aber, ob er ausgelöst hat oder nicht, die Störspannungen sind immer
gleich hoch.
Die Höhe der Störspannungen sind sehr stark achsenabhängig.
Hey, dein Posting verdient Pokal ordentlichster TO des Monats :D.
Du solltest auch deine Masseleitung auf Störspannungen untersuchen. Und
dann könntest du für den Meldekontakt eine seperate Masseleitung ohne
die Störströme aus dem Leistungsteil führen.
Ja, der JP21 ist gesteckt.
Den R34 zu verkleinern wäre kein Problem. Man müsste aber dann auch auf
den R35 achten.
Wenn der R34 nämlich zu klein wird und R35 zu groß ist, könnte es sein,
dass sich der MOSFET nicht mehr abschalten lässt.
Ich hatte ebenfalls schon Probleme mit Schaltern in Motoren. In meinem
Fall war es ein Klixon-Thermoschutz, ebenfalls ein Öffner.
Ich vermute durch die magnetischen Felder werden ungewollte Spannungen
induziert. Mein Motor hatte immerhin einen Aufnahmestrom von 100A.
Mein Tipp:
Wie schon erwähnt Pullup, bzw Pulldown mit 10kOhm. Vor dem
Mikrocontroller noch mit einem Tiefpass Filter entstören. Das heisst:
einen 10kOhm Widerstand in Serie und einem 100nF Keramikkondensator auf
GND. So wird das ganze etwas Träger und Störungen kommen nicht mehr
durch.
Gruss
Hi Ernestus Pastell!
Das mit den Masseleitungen hört sich gut an.
Der Leistungsteil selbst befindet sich nur auf der Motortreiberplatine.
Sie ist doppelseitig. Die freien Flächen dieser sind mit Masse
ausgfüllt.
Da die Masseflächen auf der Oberseite und Unterseite der
Motortreiberplatine relativ groß sind, dachte ich mir, dass von der
Masse selbst eher keine Störung kommen (sollten/könnten/müssten) ;-)
Ich könnte versuchen, den GND des Endschalters und auch das Signal des
Endschalter direkt mit der µC-Platine zu verbinden und nicht über die
Motortreiberplatine laufen zu lassen.
Dann hätte ich eine Aussage darüber, ob die Motortreiberplatine etwas
mit den Störungen zu tun hat oder ob diese Ausschließlich vom Motorkabel
und von der Motorachse kommen.
Vielen Dank.
LG
Martin
Hi Dominik W!
Okay, dann werde ich den Pull-Up bzw. Pull-Down verkleinern.
Wegen des zweiten Tiefpasses vor dem µC. Sollte ich an Drain des MOSFETS
einen zusätzlichen Pull-Up anhängen?
In der Zeichnung ist Variante 1 und Variante 2 sichtbar.
LG
Martin
@Martin:
Den Kondensatoren von deinem Schalter solltest du einen Vorwiderstand
verpassen. Schließt der Meldeschalter fließen, wenn auch nur kurz, große
Ströme, die dessen Schaltspiel auf wenige hundert Schaltvorgänge
reduziert, statt einige zehntausend.
Und noch ein Tipp: Mit einem DSO kannst du sehr gut den unregelmäßigen
Störpegel entlang einer Leitung messen. So lässt sich die Problematik
mit der Masseleitung schon im voraus eingrenzen.
Hallo Martin!
Ich würde als erstes Mal Motorleitungen und Endschalter räumlich trennen
und beide (getrennt!) abschirmen. Ich war diese Woche noch bei einem
Kunden, dem sein Kabelbaumlieferant Motoranschlüsse und Encoder in eine
ungeschirmte Leitung gelegt hat. Da gab es soviel Störungen, dass die
Achsen keine Minute ohne Fehler liefen. ;)
Mit freundlichen Grüßen
Thorsten Ostermann
> Deshalb habe ich den beschriebenen Filter für den Endschalter
> auf der Motortreiberplatine aufgebracht
Das soll hoffentlich heissen, der Filter wurde auf einer kleinen extra
Platine aufgebaut und dann auf die Motortreiberplatine draufgeschraubt.
Und die Masse des Filters hat einen eigenen Massedraht der an einen
Sternpunkt geht.
Hi Leute!
@Thorsten Ostermann
Das mit dem Schirmen und räumlichen Trennen hab ich mir schon durch den
Kopf gehen lassen. Soweit ich das mitbekommen habe, liefern Firmen wie
Torlabs oder Standa ihre Achsen mit nur einem Kabel. Die Störungen
können somit leicht übersprechen.
Ein Alternative wäre, dass man sich selbst die Kabel bastelt.
@Soetwa
Zur Zeit sind die Filterbauteile direkt auf der Motortreiberplatine. Es
existiert auf dieser nur ein GND, der aber als Massefläche ausgeführt
ist.
Natürlich wäre es auch möglich, die Massefläche zu verkleinern, um den
GND der Schalter separat zu halten und am Anschlusspunkt mit dem
Leistungs-GND zusammenzuführen.
Aber ich dachte mir, wenn sowieso eine ganze Fläche als GND ausgeführt
ist, dann gäbe es in Bezug auf Störungen kein Problem. Ist dies nicht
so? Wäre es besser die Leistungs-GND-Fläche zu verkleinern, um einen
separaten GND für die Schalter durchzuziehen, um die beinden GNDs später
an einem Punkt wieder zu verbinden? Ich bin bei diesem Thema noch nicht
so sattelfest.
Schöne Grüße
Martin