Forum: Mikrocontroller und Digitale Elektronik Rs422 Pegel auf 3,3 V umwandeln


von Niko U. (Gast)


Lesenswert?

Hallo zusammmen :)

Ich bin auf der Suche nach einem passendem Logic Level Wandler, habe 
aber noch ein paar Verständnisprobleme.

Folgender rotativer Encoder soll vom Raspberry Pi ausgelesen werden:
[Datenblatt Siko MSK2000] 
https://www.siko-global.com/adbimage/1713/asset_original/datenblatt-msk2000.pdf

Dieser hat folgende Kennwerte:
Betriebsspannung: 5 V Dc
Ausgangsschaltung: Line Driver RS422-Pegel (es werden nur die 
Spannungspegel genutzt, keine vollwertige RS422 Kommunikation)
Ausgangssignale: A, /A, B, /B (Voll Duplex)

Bei meiner Suche nach den Spannungspegeln für den RS422 Standard, bin 
ich auf unterschiedliche Ergebnisse gestoßen. Wikipedia sagt folgendes:
Maximale Ausgangsspannung des Senders: +- 6 V
Maximale Differenzspannung des Senders: 10 V

Andere Quellen sprechen von 5 V, was ja auch Sinn ergeben würde, da der 
Sensor eine Betriebsspannung von 5 V hat:
http://www.vicon-security.com/Collateral/Documents/English-US/support/RS422_Data_Standard_Tip.pdf

Welcher Spannungspegel liegt den nun im Betrieb des Sensors vor?

Des Weiteren handelt es sich beim RS422-Standard ja um eine 
differentielle Datenübertragung, sprich, man wertet die Differenz der 
invertieren und nicht invertierten Leitung aus, um den entsprechenden 
Pegel (HIGH / LOW) zu erhalten. Ich kann mir noch nicht ganz vorstellen, 
wie die Auswertung am Raspberry PI (hardwareseitig) aussehen soll. 
Reicht hier ein einfacher Logic Level Wandler und man bildet die 
Differenz dann softwareseitig am Raspi? Oder brauche ich ein anderes 
Bauteil, als den reinen Logic Level Wandler?


Danke schon mal für euer Feedback :)

LG

Niko

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Niko U. schrieb:
> Ausgangssignale: A, /A, B, /B (Voll Duplex)

Was soll an einem Drehencoder "voll duplex" sein?


> Ich kann mir noch nicht ganz vorstellen, wie die Auswertung am
> Raspberry PI (hardwareseitig) aussehen soll. Reicht hier ein einfacher
> Logic Level Wandler und man bildet die Differenz dann softwareseitig am
> Raspi?

Du könntest einen RS422-Empfänger verwenden, wie z.B. den hier:

http://www.ti.com/product/am26lv32e-ep

von Falk B. (falk)


Lesenswert?

@  Niko Unknown (niko88)

>https://www.siko-global.com/adbimage/1713/asset_or...

>Ausgangsschaltung: Line Driver RS422-Pegel (es werden nur die
>Spannungspegel genutzt, keine vollwertige RS422 Kommunikation)

Das ist schon vollwertig. RS422 legt NICHT fest, dass dort Daten mittel 
UART oder sonstwar drüber gehen muss.

>Ausgangssignale: A, /A, B, /B (Voll Duplex)

Nö, simplex, denn die Datenrichtung ist immer vom Geber zur 
Auswerteelektronik.
Du meinst eher differentiell.

>Welcher Spannungspegel liegt den nun im Betrieb des Sensors vor?

+/.5V

>>Pegel (HIGH / LOW) zu erhalten. Ich kann mir noch nicht ganz vorstellen,
>wie die Auswertung am Raspberry PI (hardwareseitig) aussehen soll.

Mit einem passenden Empfänger. 2xMAX488 sind deine Freunde. Da dur ja 
nur 2 Empfänger brauchst kann man auch einen IC mit eben diesen nmutzen, 
musst du mal bei Maxim suchen.

>Reicht hier ein einfacher Logic Level Wandler und man bildet die
>Differenz dann softwareseitig am Raspi?

Nein.

> Oder brauche ich ein anderes
>Bauteil, als den reinen Logic Level Wandler?

Ja.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Laut Datenblatt liefert der Sensor bei High UB-2.5V. Bei 5V wären das 
2.5V. Das liegt innerhalb der Spezifikation für 3.3V-Systeme. Du musst 
auch nicht differenziell auswerten, wenn Dein Kabel nicht allzu lang 
ist. A und B reichen, dann hast Du 2 Pins am RasPi, die mit 
Standard-Drehehcoder-Routinen abgefragt werden können. Wenn Du 2 
Angstwiderstande im Wert von 10kOhm in die Signalleitungen einschleifst, 
sind die Eingänge auch vor Überspannungen geschützt. Im industriellen 
Umfeld ist jedoch ein ordentlicher RS422-Empfänger zu empfehlen, der 
sämtliche Schutzmaßnahmen schon auf dem Chip mitbringt.

: Bearbeitet durch User
von Hartmut S. (hsemken)


Lesenswert?

RS422 und RS485 definieren diffrentielle Übertragung.
Die Pegel sind 5V, die Differenz daher 10V.

Als Transceiver benutze ich immer den "guten alten" SN75176.
Der braucht zwar mehr Strom als modernere Chips, aber ist robust, billig 
und bewährt.

Für Deinen Zweck würde ich den dann fest auf Empfänger verdrahten (ist 
ein Transceiver; DE und -RE auf Masse) und den Ausgangspegel dann über 
1k/3V3-Zener auf 3V3-Pegel begrenzen.
Fertig.
(also: ein Receiver pro Phase natürlich).

Durch die differentielle Übertragung sind auch lange Kabel und Störungen 
durch die Maschine kein Problem. Natürlich wie immer Störungen 
minimieren durch verdrillte Kabel.

Das Datenblatt des 75176 bringt Dich vermutlich weiter als akademische 
Diskurse serieller Schnittstellen.

hase

von MCUA (Gast)


Lesenswert?

>Die Pegel sind 5V, die Differenz daher 10V.
ne, typ min nur +-200mV, keine 10V

von Niko U. (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Was soll an einem Drehencoder "voll duplex" sein?

Da hast du natürlich recht. Das habe ich wohl falsch verstanden. Es gibt 
also jeweils ein Adernpaar für Signal A und Signal B des Encoders, 
welches ja zeitlich versetzt ist.

Rufus Τ. F. schrieb:
> Du könntest einen RS422-Empfänger verwenden, wie z.B. den hier:
>
> http://www.ti.com/product/am26lv32e-ep

Der sieht super aus :D Danke für den Tipp :) Es würde aber auch einer 
mit 2 Anschlusspaaren ausreichen, sehe ich richtig oder? Der von dir 
verlinkte hat 4 Anschlusspaare und nach dem Datenblatt vom Siko MSK 2000 
habe ich zwei Leitungspaare.

Falk B. schrieb:
>>Ausgangsschaltung: Line Driver RS422-Pegel (es werden nur die
>>Spannungspegel genutzt, keine vollwertige RS422 Kommunikation)
>
> Das ist schon vollwertig. RS422 legt NICHT fest, dass dort Daten mittel
> UART oder sonstwas drüber gehen muss.

Meine Information diesbezüglich war, dass wenn keine weiteren Infos zur 
Übertragung via RS422 im Datenblatt gegeben werden, dann werden 
lediglich die Spannungspegel vom RS422 Standard genutzt. Meinst du das 
mit "vollwertig", oder bist du der Meinung, dass hier eine RS422 
Kommunikation stattfindet (wenn ja, woran machst du das aus?)? Nach 
meinem bisheriger Wissensstand dachte ich, dass ich lediglich einen 
Level converter brauche. Aber dann habe ich ja wie du schon meintest das 
Problem, dass noch die Differenz bestimmt werden muss.


> Mit einem passenden Empfänger. 2xMAX488 sind deine Freunde. Da dur ja
> nur 2 Empfänger brauchst kann man auch einen IC mit eben diesen nmutzen,
> musst du mal bei Maxim suchen.

Beim MAX488 handelt es sich um einen Transceiver. Ein Receiver würde 
auch reichen oder?

Knut B. schrieb:
> Laut Datenblatt liefert der Sensor bei High UB-2.5V. Bei 5V wären
> das
> 2.5V. Das liegt innerhalb der Spezifikation für 3.3V-Systeme.

Es gibt mehrere konfigurationen des Sensors. Den, den ich bestellt habe, 
nutzt als Ausgangsschaltung den Line Driver mit RS422 Spannungspegeln. 
Dort steht dann für High und Low lediglich "nach RS422" :)

von MCUA (Gast)


Lesenswert?

>aber dann habe ich ja wie du schon meintest das
>Problem, dass noch die Differenz bestimmt werden muss.
nein der RS... Baustein wertet das aus, raus kommt TTL

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Niko U. schrieb:
> Es würde aber auch einer mit 2 Anschlusspaaren ausreichen, sehe ich
> richtig oder?

Ja. Kleine Übung, richtig erkannt. Gut!

von Niko U. (Gast)


Lesenswert?

Mahlzeit :)

Ich hätte noch eine Verständnisfrage.
Bei den Receivern / Transceivern wird immer eine data transmission rate 
angegeben. Von was für Größen sprechen wir denn da, wenn eine Auflösung 
von 0,25 mm vorliegt?

Hier wurden jetzt Receiver mit 32 mbps, 10 mbps und 250kbps 
vorgeschlagen. Ich bin verunsichert...

von MCUA (Gast)


Lesenswert?

>Von was für Größen sprechen wir denn da, wenn eine Auflösung
>von 0,25 mm vorliegt?
0,25 mm sind 1/40 cm.

von Falk B. (falk)


Lesenswert?

@ Niko Unknown (niko88)

>Bei den Receivern / Transceivern wird immer eine data transmission rate
>angegeben.

Ja, meist in Bit/s

> Von was für Größen sprechen wir denn da, wenn eine Auflösung
>von 0,25 mm vorliegt?

Das kommt auf die Wegänderungsgeschindigkeit an.

Der Sensor hat eine örtliche Auflösung von 0,25mm und max. 25 m/s 
Verfahrgeschwindigkeit. Macht

f = 25 m/s * 4000 Pulse/m = 100.000 Pulse/s

>Hier wurden jetzt Receiver mit 32 mbps, 10 mbps und 250kbps
>vorgeschlagen. Ich bin verunsichert...

250 kbps reichen.

von Niko U. (Gast)


Lesenswert?

Falk B. schrieb:
> f = 25 m/s * 4000 Pulse/m = 100.000 Pulse/s
>
>>Hier wurden jetzt Receiver mit 32 mbps, 10 mbps und 250kbps
>>vorgeschlagen. Ich bin verunsichert...
>
> 250 kbps reichen.

Danke, das hilft ungemein :)

So, ich habe nochmal ein bisschen nach ICs geguckt. Bei TI habe ich kein 
äquivalentes Bauteil mit zwei (Paaren) differentiellen Anschlüssen 
gefunden.
Bei Maxim integrated bin ich auch nur auf Bausteine mit mindestens 3 
bzw. 4 Receive Anschlüssen gestoßen:

[Max3096]
https://datasheets.maximintegrated.com/en/ds/MAX3095-MAX3096.pdf

[Max3097E]
https://datasheets.maximintegrated.com/en/ds/MAX3097E-MAX3098E.pdf

Kann jemand aus Erfahrung sagen, wie sich die Bausteine verhalten, wenn 
nicht alle Anschlüsse verwendet werden? Aus den technischen 
Dokumentationen ergeben sich aus meiner Sicht hieraus keine Nachteile 
oder Probleme.

LG
Niko

von Falk B. (falk)


Lesenswert?

@ Niko Unknown (niko88)

>Kann jemand aus Erfahrung sagen, wie sich die Bausteine verhalten, wenn
>nicht alle Anschlüsse verwendet werden?

Das funktioniert. Je nach IC sollte man die Eingänge nicht offen lassen 
und mittels Widerständen auf definierte Potentiale (GND/VCC) legen.

von Georg (Gast)


Lesenswert?

Hartmut S. schrieb:
> Die Pegel sind 5V, die Differenz daher 10V.

Natürlich nicht. Entweder ist A +5V und /A 0V, das ergibt nach meiner 
Rechnung eine Differenz von 5 V. Oder es ist umgekehrt, dann ist die 
Differenz -5V. Eine Differenzspannung von 10 V tritt niemals auf, 
jedenfalls nicht im Geltungsbereich der klassischen Physik.

Georg

von Niko U. (Gast)


Lesenswert?

Habe mich jetzt für den IC von TI entschieden :) Danke für eure 
Unterstützung, das hat mir sehr geholfen.

Ich melde mich nochmal, wenn es Neuigkeiten gibt :)

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.