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.)
Du könntest, je nach dem was dein Endschalter kann, den R34 noch kleiner machen. Der Jumper in JP21 wird ja gesteckt sein.
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
Achja, die GNDs immer sogut wie möglich verbinden. Da bekommt man in der Praxis immer wieder Probleme damit.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.