Forum: Mikrocontroller und Digitale Elektronik Encodersignal Störungen


von Werz (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Ich habe ein Problem mit dem Einkoppeln von Störsignalen auf eine 
Encoderleitung: ich verwende einen bürstenlosen Motor mit einem Encoder 
mit 1024 Pulsen / Umdrehung und differenzieller Signalübertragung, der 
von einem Motionkontroller angesteuert wird. Zusätzlich werden die 
single ended encodersignale ausgekoppelt und  auf einer STiftleiste 
herausgeführt (hier wird eine weitere Auswertung der Signale 
durchgeführt).

Es werden 2 Achsen verwendet: die Leitungen der ersten Achse sind in 
etwa 1m lang, die Leitungen der zweiten Achse sind 1,5m lang; jeweils 
single enden und ungeschirmt, es war anders nicht möglich. Durch die 3 
Motorphasen des Motors fließen ca 300mA im betrieb, es wurde darauf 
geachtet, dass Motor- und Encoderleitungen möglichst getrennt 
voneinander verlegt werden.

Bei der ersten Achse wurden keine Probleme festgestellt. Die zweite 
Achse mit der längeren Leitung weist Störungen auf, und zwar immer, wenn 
der Motor eingeschalten ist. Siehe Oszilloskopbild im Anhang (eine 
Dekade entspricht 50 ms).

Ich nehme stark an, dass es sich um Einkopplungen auf die 
Encoderleitungen handelt, die von den Motorleitungen herrühren. Kann das 
jemand bestätigen?

Kann mir jemand einen Vorschlag machen, wie ich diese Störungen 
wegbekomme? Die Schaltung reiche ich gleich nach!

LG

von Werz (Gast)


Lesenswert?

Die beiden Signale sind A der A+ und B+ Kanal des Encoders! Der Motor 
ist im Stillstand (aber trotzdem bestromt) und die Störungen kommen ca 
alle 2-4s.

von Frank (Gast)


Lesenswert?

Schirmen, differentiell übertragen, Twisted Pair Leitung, niederohmiger 
Eingang und vernünftige Treiber am Ausgang, Leitung so kurz wie möglich!

Hab ich was vergessen?

von oszi40 (Gast)


Lesenswert?

Ergänzend: Motormasse, Signalmasse, Leitungsführung, Abblock-Cs?

NOTfalls versuchen: mit Software die Ansteuerung so zu optimieren, daß 
der Motor nicht während des Zeitfensters der Messung die STörungen 
aussenden kann.

von Werz (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

die Regelung selbst hat damit eigentlich nichts zu tun, hier verwenden 
wir eh die differentiellen Signale, die Regelung funktioniert auch ganz 
gut. Aber es werden die single ended Signale zusätzlich für eine 
Auswertung verwendet, im Anhang nun die Schaltung:

VEncZ ist 5V, damit werden die Encoder versorgt. Die single ended 
Signale für die Auswertung dürfen aber nur 3,3V haben. D.h. es wird mit 
dem IC2 einmal 3,3 V erzeugt und damit ein Treiberbaustein IC1 versorgt. 
Die 5V Encodersignale (singkkle ended) AX+, BX+ (X-Achse) und AY+, AY- 
(Y Achse) werden über einen Spannunsgteiler auf 3,3V gebracht und dann 
dem Eingang des Linetreibers zugeführt. Am K4ICG werden die Signale dann 
abgegriffen. Wie beschrieben, die Leitungen der X-Achse sind kürzer, 
hier hab ich keinerlei Störungen auf den Pins 1 und 3 von K4ICG. DIe 
Störungen die oben im Bild zub sehen sind, sind von Pin 4 und 6, also 
von der Y-Achse, die länger ist.

Wie könnte ich diese Störungen rausfiltern? Würde ein kleiner 
Kondensator parallel zu R6 und R8 etwas bringen?

Danke!

von Werz (Gast)


Lesenswert?

Frank schrieb:
> Schirmen, differentiell übertragen, Twisted Pair Leitung, niederohmiger
> Eingang und vernünftige Treiber am Ausgang, Leitung so kurz wie möglich!

Danke für die Vorschläge:

Schirmen war leider nicht möglich (aus Platzgründen)

Der Encoder liefert zwar differenzielle Signale, diese werden auch vom 
motionkontroller verwendet, deswegen funktioniert die Regelung auch rel. 
gut. Allerdings werden für die beschriebene Auswertung nach 1,5m Leitung 
nur die Singkle Ended Signale verwendet.

Twisted Pair wird nicht verwendet, es handelt sich um Flexleitungen. 
Twisted Pair würde aber für Single Ended Übertragung eh nichts bringen, 
oder?

Treiberbaustein verwende ich, allerings wird das Signal vorher schon 
über 1,5 m übertragen. Der Encoder hat aber auch einen Linetreiber 
integriert.

Hm, kann mir jemand einen Tipp geben, wie ich die Störungen am besten 
wegfiltern könnte?

von Werz (Gast)


Angehängte Dateien:

Lesenswert?

Im Anhang noch ein Foto der Störung, diesmal ist die Dekade 1ms. Es ist 
eindeutig ein Sinus zu erkennen (ich habe hier ein Video aufgenommen, 
das ist ein Ausschnitt davon, ähnliche Störungen kamen ebenfalls alle 
2-4 s) Das interessant dabei ist, dass die Störung im zweiten Kanal 
(Kanal B, grün) immer im gleichen Verhältnis zur Störung im ersten Kanal 
(Kanaly A, gelb) steht (Amplitude und Verzögerung).

Kann sich das jemand erklären?

von spontan (Gast)


Lesenswert?

Das System ändern und gescheit aufbauen.
Alles was du sollst machst ist Murks.


Zum filtern (siehe oben, ist eher Murks, solange das System nicht besser 
wird) braucht es Frequenzangaben. Wo sind die?

von Georg (Gast)


Lesenswert?

Werz schrieb:
> Schirmen war leider nicht möglich (aus Platzgründen)

Jeder Anfänger weiss, dass bei solchen Signalen geschirmte Leitungen 
notwendig sind. Die Aussage ist einfach völliger Unsinn, und dazu noch 
unglaubwürdig. Da wurde schlicht aus Unfähigkeit gemurkst.

Georg

von Mike (Gast)


Lesenswert?

Werz schrieb:
> Im Anhang noch ein Foto der Störung,

Versuche doch mal, die Screenshot-Funktion von dem DSO zu benutzen. Ein 
unscharfes Photo als PNG anzuhängen, macht es nicht besser.

Werz schrieb:
> Schirmen war leider nicht möglich (aus Platzgründen)

Schlimmstenfalls mußt du dann damit leben, das es aus Platzgründen nicht 
möglich ist, die Signale störfrei elektrisch zu übertragen. Dann hilft 
es, die Empfänger des Encoders mit LWL von der Störquelle wegzuführen, 
sofern es sich um einen optischen Encoder handelt - who knows?

von Werz (Gast)


Lesenswert?

spontan schrieb:
> Das System ändern und gescheit aufbauen.
> Alles was du sollst machst ist Murks.

Ich werde mal versuchen, die Encoderleitung nur für einen Versuch nach 
extern (weit weg von den Motorleitungen) zu verlegen und zu beobachten, 
ob die Störungen weiterhin auftreten.

spontan schrieb:
> Zum filtern (siehe oben, ist eher Murks, solange das System nicht besser
> wird) braucht es Frequenzangaben. Wo sind die?

Kann man das aus den angeführten Diagrammen mit Angaben der Dekaden 
(siehe oben) irgendwie bestimmen oder soll ich versuchen, das Spektrum 
aufzunehmen?

Georg schrieb:
> Jeder Anfänger weiss, dass bei solchen Signalen geschirmte Leitungen
> notwendig sind

Es ist wirklich aus Platzgründen nicht möglich, es handelt sich um dünne 
Flexleitungen mit hohen Zyklenzahlen und geringen Biegeradien.

von Werz (Gast)


Lesenswert?

Ist die oben angeführte Schaltung noch verbesserungsfähig? Wie siehts 
mit den Abblockkondensatoren des Linetreibers aus? sollte ich hier noch 
einen kleineren hinzufügen?

Wäre das Filtern mit einem C parallel zu R6 und R8 denkbar, wenn ich die 
Frequenzen der Störungen herausfinde?

Vielen Dank!

von TK (Gast)


Lesenswert?

Hallo,
ich versteh das ganze Treiben von Dir nicht richtig. Du schreibst, dass 
der Encoder differenzielle Signale ausgibt. Aber nach 1,5m Leitung 
wandelst Du die Signale in single ended um - wieso denn das??
Und wieso nimmst Du nicht den DS26C(LV)32? Der wandelt Dir doch 
differenzielle Encodersignale um, so wie Du Sie scheinbar benötigst - 
also diff. Signale vom Encoder abgreifen, auf den DS26C32 und hinten 
dran kannst Du dann normal weiterarbeiten. Und wichtig: Nicht den GND 
vergessen.

Gruß
TK

von m.n. (Gast)


Lesenswert?

Werz schrieb:
> Zusätzlich werden die
> single ended encodersignale ausgekoppelt und  auf einer STiftleiste
> herausgeführt (hier wird eine weitere Auswertung der Signale
> durchgeführt).

Womit wird diese Auswertung vorgenommen? Sofern die Störungen den 
Enkoder 'überlisten', kann man die Signale nachträglich synchronisieren 
und damit die Signalfrequenz nach oben begrenzen.

von Wayne (Gast)


Lesenswert?

Werz schrieb:
> spontan schrieb:
>> Zum filtern (siehe oben, ist eher Murks, solange das System nicht besser
>> wird) braucht es Frequenzangaben. Wo sind die?
>
> Kann man das aus den angeführten Diagrammen mit Angaben der Dekaden
> (siehe oben) irgendwie bestimmen oder soll ich versuchen, das Spektrum
> aufzunehmen?

Du kannst die Frequenz deiner Encoderimpulse bei maximaler Drehzahl 
nicht vom Oszi ablesen? Was ist denn bitte dein fachlicher Hintergrund? 
So was gehört zu den messtechnischen Basics! Zu mal moderne Oszis das 
für dich auf Knopfdruck erledigen.
Miss einfach die Zeit zwischen zwei steigenden Flanken deines 
Encodersignals und nimm den Kehrwert (Dazu kannst du die Kästchen auf 
dem Oszi-Bildschirm zählen und mit der Zeitbasis multiplizieren).

von Werz (Gast)


Lesenswert?

TK schrieb:
> Aber nach 1,5m Leitung
> wandelst Du die Signale in single ended um - wieso denn das??

Hi!
es ist eine Anforderung, dass die Signale als Single Ended zur Verfügung 
gestellt werden. Was damit weiter passiert, weiß ich leider nicht, ich 
muss sie nur single ended auf einer Stiftleiste rausführen.

Ja, der Encoder liefert differentielle Signale. Was ich aber nicht 
mache, ist, dass ich die differentiellen Signale in single ended 
umwandle, sondern ich nehme direkt nur A+ und B+ her (siehe Schaltung 
oben).

Danke!

von Frank (Gast)


Lesenswert?

Dann fahre bis kurz vor die Stiftleiste mit den differenziellen Signalen 
optimaler weiße mit Twisted pair und wandel die dann richtig in Single 
ended!
So bekommst du vllt die Gleichtakt Störungen raus.

von TK (Gast)


Lesenswert?

Werz schrieb:
>Was ich aber nicht mache, ist, dass ich die differentiellen Signale in single 
ended umwandle, sondern ich nehme direkt nur A+ und B+ her (siehe Schaltung oben).

Und genau hier liegt Dein Problem! Störungen auf differenziellen 
Leitungen haben keine Auswirkung, solange diese auf beide Leitungen 
gleichsam einwirken. Deshalb benutzt der Encoder ja auch dieses 
Übertragungsverfahren. Und genau das solltest Du auch tun - solange es 
geht bleibst Du bei der differenziellen Übertragung. Und dann - und nur 
dann - wenn es notwendig ist, wandelst Du die Signale mit z.B. dem 
DS26C32 in single ended Signale um.
Jedes Signal A / B einzeln umzuwandeln ist murks und geht nur mit 
Filterung. Dazu sind aber Werte von 
Frequenzen,Leitungslängen,Leitungsbeläge usw. notwendig. Das alles kann 
man sich sparen.

Gruß
TK

von Werz (Gast)


Lesenswert?

Hi Frank!

Danke für den Vorschlag, fahre die 1,5m bis zur Platine tatsächlich mit 
den differentiellen Signalen, verwende dann aber wie beschrieben nur die 
single ended, wie in der Schaltung zu sehen. Der Linetreiber ist 
deswegen hier in der Schaltung, weil nach der Stiftleiste noch über 1m 
übertragen wird. D.h. ich könnte vorher eine zusätzliche Umwandlung der 
differentiellen Signale in single ended durchführen, welcher Baustein 
ist hierfür geeignet?
http://at.farnell.com/texas-instruments/ds26c32atm-nopb/line-receiver-quad-5-5v-smd/dp/1468998

Wäre das ein passender Baustein dafür? 5V und 3,3 V habe ich zur 
Verfügung!

Danke, lG

von Werz (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

im Anhang das Datenblatt des Encoders, der 1024 Pulse pro Umdrehung 
liefert.

Kann der oben angeführte TI - Baustein für die Umwandlung der 
differenziellen Signale in single ended verwendet werden?

Danke!

von m.n. (Gast)


Lesenswert?

m.n. schrieb:
> Womit wird diese Auswertung vorgenommen?

Ich frage noch einmal: mit welchem Dekoder wird ausgewertet, daß diese 
Störungen tatsächlich stören?
Oder enstehen die Spikes durch Masseschleifen beim Oszilloskope?

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


Lesenswert?

Werz schrieb:
> Danke für den Vorschlag, fahre die 1,5m bis zur Platine tatsächlich mit
> den differentiellen Signalen,

Dann zapf doch die Signale nach dem differentiellen Empfänger ab, der 
sowieso schon lt. deiner Beschreibung vor dem regelnden Controller ist. 
Der kriegt doch anscheinend saubere Signale, die du nur noch ein wenig 
bufferst, um Rückwirkungen auf den Regler zu vermeiden und dann geht es 
an deine eigene Schaltung.

So riskierst du nur, das du irgendwann auch die differentiellen Signale 
so verbiegst mit deiner Filterei, das die Regelung auch nicht mehr geht.

von Werz (Gast)


Lesenswert?

m.n. schrieb:
> Ich frage noch einmal: mit welchem Dekoder wird ausgewertet, daß diese
> Störungen tatsächlich stören?
> Oder enstehen die Spikes durch Masseschleifen beim Oszilloskope?

HAllo m.n.

wie schon beschrieben, weiß ich nicht, wie diese Signale wirklich 
ausgewertet werden. Die Anforderung ist, dass ich sie auf einer 
Stiftleiste zur Verfügung stelle, was damit weiter passiert, weiß ich 
nicht. Wie ich auf die Störungen komme: ich habe die Signale auf der 
Stiftleiste mit einem Oszilloskop gemessen und dabei beobachtet, dass 
Störungen vorhanden sind.

Matthias Sch. schrieb:
> Dann zapf doch die Signale nach dem differentiellen Empfänger ab, der
> sowieso schon lt. deiner Beschreibung vor dem regelnden Controller ist.
> Der kriegt doch anscheinend saubere Signale, die du nur noch ein wenig
> bufferst, um Rückwirkungen auf den Regler zu vermeiden und dann geht es
> an deine eigene Schaltung.

Das ist leider nicht möglich, weil der Controller nicht auf der gleichen 
Platine ist: d.h. die differenziellen Signale werden weitergeleitet zur 
Controllerplatine und erst dort verarbeitet.

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


Lesenswert?

Werz schrieb:
> Das ist leider nicht möglich, weil der Controller nicht auf der gleichen
> Platine ist: d.h. die differenziellen Signale werden weitergeleitet zur
> Controllerplatine und erst dort verarbeitet.

Suichst du jetzt nur Gründe, um deine Filterei zu rechtfertigen? 'Ist 
leider nicht möglich' ist der falsche Ansatz - dann mach es möglich.

Nimm ein zweites Paar differentielle Empfänger und bau die Schaltung 
nach, die auch in der Regelung drin ist. Damit belastest du nebenbei 
auch wieder beide Leitungen gleichmässig und riskierst keine Irritation 
der Originalschaltung.

von Werz (Gast)


Lesenswert?

Die Motorleitungen sind fast über die gesamte Leitungslänge mindestens 3 
cm von den Encoderleitungen entfernt. Höchstens 10cm, wo dies nicht der 
Fall ist (auf Platinen usw...) Allerdings liegt die Leitung mit den 
Hallsensoren direkt über der Leitung mit den Encoddersignalen, und das 
sind solche Flexleitungen:
https://www.google.at/search?q=flexleitung&biw=1280&bih=596&tbm=isch&tbo=u&source=univ&sa=X&ei=-x5SVd6tOcj9ygP9rIHQCQ&ved=0CB4QsAQ#tbm=isch&q=flexkabel&imgrc=XCqJOicPcSiCNM%253A%3Bw4grc6Zc29OUdM%3Bhttp%253A%252F%252Fwww.esskabel.de%252Fupload%252Fimages%252Fproduktbilder%252FFFC_Cable_100_Raster_500x500_front_ISO.jpg%3Bhttp%253A%252F%252Fwww.esskabel.de%252Fffc-fdc%252Fdatasheet%252Fffc-raster-100%252F146%3B500%3B500

d.h. die Hallsensorsignale sind ca 1 µm von den Encodersignalen 
entfernt. Ich merke auch ein regelmäßiges Muster in den Störungen, die 
gleichen Störungen kommen immer wieder! Das Störungsmuster ist immer das 
gleiche, und das auch nur dann, wenn der Motor bestromt ist, d.h. er die 
Ruheposition hält (aber nicht fährt).

Könnte es sein, dass diese Störungen auch von den Hallsensorleitungen 
herrühren? Ist das theoretisch möglich? Ich habe bei der Verlegung der 
Kabel darauf geachtet, dass die Motorleitungen möglichste weit weg vom 
rest ist, d.h. Encodersignale und Hallsignale sind zusammen entfernt von 
den Motorleitungen gelegt.

Danke für Eure Tips!!

von Achim S. (Gast)


Lesenswert?

Werz schrieb:
> welcher Baustein
> ist hierfür geeignet?
> 
http://at.farnell.com/texas-instruments/ds26c32atm-nopb/line-receiver-quad-5-5v-smd/dp/1468998
>
> Wäre das ein passender Baustein dafür?

Der ist auf jeden Fall viel passender als der differential line driver, 
den du derzeit an der Stelle misbrauchst. (Du behauptest doch, dass du 
auf der Stiftleiste single ended Signale weitergeben sollst. Wieso ist 
dann für jedes Einzelsignal der differentiellen Signalpaare ein Pin der 
Stiftleiste vorgesehen?)

Mit einem Kondensator im Spannungsteiler am Receivereingang kannst du 
auch die gewünschte Filterwirkung erzeugen. Da der Receiver eine 
Hysterese hat, nimmt er dir die gebremsten Flanken am Eingang nicht 
übel. Leider kann man auf deinen Messungen so wenig erkennen, dass es 
schwer ist, zu einem passenden Kondensatorwert zu raten.

Werz schrieb:
> Könnte es sein, dass diese Störungen auch von den Hallsensorleitungen
> herrühren? Ist das theoretisch möglich?

Mach mal richtige Messungen, auf denen man etwas erkennen kann (die 
Breite und Form der Störungen, die Abtastrate, ....) Mach Screenshots 
statt Photos vom Bildschirm. Ich könnte mir vorstellen, dass du bei 
deinen augenblicklichen Beobachtungen (Sörungen alle 2-4 s) durchaus 
auch Messartefakte eine Rolle spielen können.

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.