Forum: Mikrocontroller und Digitale Elektronik Entstörung eines Eingangs


von Martin (Gast)


Angehängte Dateien:

Lesenswert?

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

von Bernd das Brot (Gast)


Lesenswert?

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

von Hubert G. (hubertg)


Lesenswert?

Du könntest, je nach dem was dein Endschalter kann, den R34 noch kleiner 
machen. Der Jumper in JP21 wird ja gesteckt sein.

von Martin (Gast)


Lesenswert?

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.

von Ernestus P. (malzeit) Benutzerseite


Lesenswert?

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.

von Martin (Gast)


Lesenswert?

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.

von Dominik W. (Gast)


Lesenswert?

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

von Martin (Gast)


Lesenswert?

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

von Dominik W. (Gast)


Lesenswert?

Achja, die GNDs immer sogut wie möglich verbinden. Da bekommt man in der 
Praxis immer wieder Probleme damit.

von Martin (Gast)


Angehängte Dateien:

Lesenswert?

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

von Ernestus P. (malzeit) Benutzerseite


Lesenswert?

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

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

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

von Soetwa (Gast)


Lesenswert?

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

von Martin (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.