Forum: Mikrocontroller und Digitale Elektronik Differentieller Tranceiver mit nur einen Pin als single-ended IO


von G V (Gast)


Lesenswert?

Hallo,

ich habe einen Sensor bei welchem ein Pin, je nachdem wie er 
konfiguriert wird, entweder Eingang oder Ausgang ist. Diesen 
single-ended IO möchte ich differenziell an mein System (RS485) 
anbinden. Das Problem wenn ich z.B. einen RS485 tranceiver ala SN65HVD75 
verwende ist, dass ich auf der single-ended Seite immer noch 2 pins habe 
aus denen ich auswählen muss. Wie kann ich das bewerkstelligen? 
Anstreben würde ich eine Lösung bei welchem ich über einen digitalen 
Ausgang auswählen kann, ob ich dem Pin des Sensors ein Signal sende oder 
eines von ihm emfpange. Jumper möchte ich vermeiden.

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

G V schrieb:
> ich habe einen Sensor bei welchem ein Pin, je nachdem wie er
> konfiguriert wird, entweder Eingang oder Ausgang ist. Diesen
> single-ended IO möchte ich differenziell an mein System (RS485)
> anbinden.

Was denn für ein System? RS485 ist normalerweise ein Bus, da hat ein 
einzelner, "dummer" IO Pin nix mitzureden.

> Das Problem wenn ich z.B. einen RS485 tranceiver ala SN65HVD75
> verwende ist, dass ich auf der single-ended Seite immer noch 2 pins habe
> aus denen ich auswählen muss.

Wie meinen?

> Anstreben würde ich eine Lösung bei welchem ich über einen digitalen
> Ausgang auswählen kann, ob ich dem Pin des Sensors ein Signal sende oder
> eines von ihm emfpange. Jumper möchte ich vermeiden.

Die Pins DE und !RE tun das bereits. Siehe Anhang.

DIR = LOW,  RS 485 Empfänger aktiv, DATA-IO ist Eingang.
DIR = HIGH, RS 485 Sender aktiv, DATA-IO ist Ausgang.

von G V (Gast)


Lesenswert?

Falk B. schrieb:
> G V schrieb:
>> ich habe einen Sensor bei welchem ein Pin, je nachdem wie er
>> konfiguriert wird, entweder Eingang oder Ausgang ist. Diesen
>> single-ended IO möchte ich differenziell an mein System (RS485)
>> anbinden.
>
> Was denn für ein System? RS485 ist normalerweise ein Bus, da hat ein
> einzelner, "dummer" IO Pin nix mitzureden.

Ich möchte einen ADXL355 an einen FPGA anbinden. RS485 ist in dem Fall 
nur der Standard für die verwendeten Pegel (zw. Sensor und FPGA ist ein 
Kabel und um weniger anfällig gegen Störungen zu sein erfolgt die 
Übertragung hier differenziell). Es ist in dem Fall eine reine Punkt zu 
Punkt Verbindung.

>> Das Problem wenn ich z.B. einen RS485 tranceiver ala SN65HVD75
>> verwende ist, dass ich auf der single-ended Seite immer noch 2 pins habe
>> aus denen ich auswählen muss.
>
> Wie meinen?
>
>> Anstreben würde ich eine Lösung bei welchem ich über einen digitalen
>> Ausgang auswählen kann, ob ich dem Pin des Sensors ein Signal sende oder
>> eines von ihm emfpange. Jumper möchte ich vermeiden.
>
> Die Pins DE und !RE tun das bereits. Siehe Anhang.
>
> DIR = LOW,  RS 485 Empfänger aktiv, DATA-IO ist Eingang.
> DIR = HIGH, RS 485 Sender aktiv, DATA-IO ist Ausgang.

Mir war nicht klar, dass ich R und D einfach direkt zusammenhängen darf.

von Falk B. (falk)


Lesenswert?

G V schrieb:
> Mir war nicht klar, dass ich R und D einfach direkt zusammenhängen darf.

Jetzt kennst du den Zusammenhang ;-)

von G V (Gast)


Lesenswert?

Funktioniert das bei allen Tranceivern oder muss ich auf was spezielles 
achten?

von Falk B. (falk)


Lesenswert?

G V schrieb:
> Funktioniert das bei allen Tranceivern oder muss ich auf was spezielles
> achten?

Bei ALLLEN sicher nicht, aber bei denen, die sich wie der Klassiker 
MAX485 & Co verhalten und die gleichen Pins mit der gleichen 
Funktionalität haben.
Warum meinst du, für ein bischen Kabel das differentiell machen zu 
müssen? Wie lang ist denn das Kabel? Und vor allem, welches Pin soll das 
sein? Dein IC hat SPI oder IC2 als Schnittstelle. Was soll da RS485?

von G V (Gast)


Lesenswert?

Ja als Protokoll verwende ich SPI. RS485 steht in der Beschreibung der 
Schnittstelle am FPGA. Wie gesagt, das sind nur die Signalpegel soweit 
ich das verstehe.
Ohne differenzielle Übertragung bekommen wir im aktuellen Umfeld zu 
viele Störungen. Das hat sich bei den anderen Signalen gezeigt.

Die INT2 und DRDY Pins da ich den Synch Mechanismus umschaltbar machen 
will.

Da wir auch mit dem SN65HVD75 gute Erfahrungen gemacht haben wäre es 
interessant ob es mit diesem auch geht. Was müsste im DB stehen wenn es 
nicht geht?

von Falk B. (falk)


Lesenswert?

G V schrieb:
> Ja als Protokoll verwende ich SPI. RS485 steht in der Beschreibung der
> Schnittstelle am FPGA. Wie gesagt, das sind nur die Signalpegel soweit
> ich das verstehe.
> Ohne differenzielle Übertragung bekommen wir im aktuellen Umfeld zu
> viele Störungen. Das hat sich bei den anderen Signalen gezeigt.

Das war nicht meine Frage.

> Da wir auch mit dem SN65HVD75 gute Erfahrungen gemacht haben wäre es
> interessant ob es mit diesem auch geht. Was müsste im DB stehen wenn es
> nicht geht?

Also wenn ich dich hier so rumstolpern sehe, würde es mich nicht wundern 
wenn du und deine Leute nicht viel Ahnung von Hardware und gescheiter 
Signalführung habe und mit Kanonen auf Spatzen schießt. Das kommt davon, 
wenn man keinen echten HArdwerker mit Wissen und Erfahrung hat und nur 
Softis ranläßt.

Mein Gott, die ERSTE Seite des Datenblatts zeigt ALLLES! Soviel wie das 
Girl von Seite drei! Damals, in der guten, alten Zeit! ;-)

von G V (Gast)


Lesenswert?

Falk B. schrieb:
> G V schrieb:
>> Ja als Protokoll verwende ich SPI. RS485 steht in der Beschreibung der
>> Schnittstelle am FPGA. Wie gesagt, das sind nur die Signalpegel soweit
>> ich das verstehe.
>> Ohne differenzielle Übertragung bekommen wir im aktuellen Umfeld zu
>> viele Störungen. Das hat sich bei den anderen Signalen gezeigt.
>
> Das war nicht meine Frage.

Deine Frage war was RS485 da soll...

>> Da wir auch mit dem SN65HVD75 gute Erfahrungen gemacht haben wäre es
>> interessant ob es mit diesem auch geht. Was müsste im DB stehen wenn es
>> nicht geht?
>
> Also wenn ich dich hier so rumstolpern sehe, würde es mich nicht wundern
> wenn du und deine Leute nicht viel Ahnung von Hardware und gescheiter
> Signalführung habe und mit Kanonen auf Spatzen schießt. Das kommt davon,
> wenn man keinen echten HArdwerker mit Wissen und Erfahrung hat und nur
> Softis ranläßt.
> Mein Gott, die ERSTE Seite des Datenblatts zeigt ALLLES! Soviel wie das
> Girl von Seite drei! Damals, in der guten, alten Zeit! ;-)

Tja dann seh ich wohl den notwendigen Zusammenhang nicht. Ich seh da, 
wie ich mehrere Teilnemer auf den Bus hängen kann...

von Falk B. (falk)


Lesenswert?

G V schrieb:
>> Das war nicht meine Frage.
>
> Deine Frage war was RS485 da soll...

Da waren mehrere Fragen! Mein Gott, ist das die Kommunikation von Gen-Z?

> Tja dann seh ich wohl den notwendigen Zusammenhang nicht.

Ja, genau so wenig wie du konkrete Fragen nicht beantworten kannst oder 
willst.

> Ich seh da,
> wie ich mehrere Teilnemer auf den Bus hängen kann...

Deine Frage war

"Da wir auch mit dem SN65HVD75 gute Erfahrungen gemacht haben wäre es 
interessant ob es mit diesem auch geht. Was müsste im DB stehen wenn es 
nicht geht?"

Welche sich auf meine Schaltung bezieht!

https://www.mikrocontroller.net/attachment/586179/RS485_Umschaltung.png

Also könnte man im Datenblatt nachschauen, ob DEIN IC die gleichen Pins 
mit der gleichen Funktion hat.

von G V (Gast)


Lesenswert?

Nur weil er die gleichen Pins hat heißt das noch nicht, dass es dann 
auch funktioniert.

von Falk B. (falk)


Lesenswert?

G V schrieb:
> Nur weil er die gleichen Pins hat heißt das noch nicht, dass es dann
> auch funktioniert.

Schon wieder Gen-Z, die nur Halbsätze versteht? Ich wünsch dir noch viel 
Spaß und Erfolg bei deinem Projekt.

von G V (Gast)


Lesenswert?

Naja wenn ich jedes angriffige Kommentar und jede unnötige Nachfrage 
kommentieren würde würd das ausarten und man würde noch weiter vom Thema 
abkommen.
Man versteht offenbar schwer, dass man gewisse Gegebenheiten hat an 
denen man nichts ändern kann und darauf dann entsprechend reagieren 
muss.

Falk B. schrieb:
> Also könnte man im Datenblatt nachschauen, ob DEIN IC die gleichen Pins
> mit der gleichen Funktion hat
Tja viel mehr gibst du an Infos ja auch nicht von dir. Dass die Pins 
gleich sind liegt ja nahe, ist ja ein RS485 Tranceiver

von Uwe (Gast)


Lesenswert?

Hi,
alles sehr verwirrend.
> Ja als Protokoll verwende ich SPI.
> RS485 steht in der Beschreibung der Schnittstelle am FPGA
SPI ist kein Protokoll, es ist eine definierte Übertragungsart.
SPI=Serial Peripheral Interface mit DI  DO  CKL und wenn nötig SS
dabei ist immer einer Master und der andere Slave. Die Umkehrung von 
Master und Slave ist unüblich, geht allerdings auch.
RS485 ist nur die Art der Übertragung eines Signals. (diff. Halbduplex)
> ich habe einen Sensor bei welchem ein Pin, je nachdem wie er
> konfiguriert wird, entweder Eingang oder Ausgang ist. Diesen
> single-ended IO möchte ich differenziell an mein System (RS485)
> anbinden.
Das scheint aber etwas anderes zu sein. Wenn du das willst brauchst du 
für jedes Signal 2 zb. Max485. Damit du die in deinem gestörten Umfeld 
sicher umschalten kannst brauchst du 2 weitere zb. Max485 welche du nur 
zur Hälfte nutzt. Mit denen kannst du aber jetzt die Datenrichtung der 
"Signal" Max485
sicher umschalten.
Ich habe aber Bedenken das du das geordnet bekommst und muss Falk 
rechtgeben wenn er sagt:
> Mein Gott, die ERSTE Seite des Datenblatts zeigt ALLLES! Soviel wie das
> Girl von Seite drei! Damals, in der guten, alten Zeit! ;-)
Wer ein Datenblatt nicht interpretieren kann sollte die Finger davon 
lassen.
trotzdem, viel Erfolg, Uwe

[Mod: Zitatformatierung korrigiert]

: Bearbeitet durch Moderator
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

G V schrieb:
> Ja als Protokoll verwende ich SPI.
SPI verwendet 4 Leitungen. Wenn du die differentiell übertragen willst, 
dann brauchst du logischerweise 4x 2 verdrillte Signalleitungen. 
Allerdings brauchst du dann nicht den richtungsumschaltbaren RS485, 
sondern den unidirektionalen RS422. Mein Tipp dafür: nimm "übliche" LVDS 
Treiber.

G V schrieb:
> Ich möchte einen ADXL355 an einen FPGA anbinden.
Wenn du die Datenleitungen auf einem RS485 übertragen willst, dann 
brauchst du eine zusätzliche Logik, die die Richtung der Treiber auf 
beiden Seiten des Busses umschaltet, je nachdem, welcher Befehl (read 
oder write) grade abgeht, denn bei einem read musst du nach 8 Bits die 
Treiberrichtung am FPGA und am ADXL umschalten. Beim CS und beim SCLK 
gibt es nur 1 Richtung: vom FPGA zum ADXL.

> Ich möchte einen ADXL355 an einen FPGA anbinden.
Mein Vorschlag: setz einen µC an den ADXL und lass den dann über ein 
"normales" asynchrones serielles Protokoll mit dem FPGA reden. Der µC 
wandelt also von 4-Draht-SPI nach RX/TX RS485. Und weil du dann sowieso 
ein eigenes serielles Protokoll zwischen diesem µC und deinem FPGA 
brauchst, ist auch die Richtungsschaltung wesentlich einfacher und 
unkritischer.

Falk B. schrieb:
> Mein Gott, die ERSTE Seite des Datenblatts zeigt ALLLES!
Aber auch im Rest des Datenblatts stehen recht interessante Dinge.
So z.B. ab Seite 25 die Kommunikationsmöglichkeiten des Bausteins.

: Bearbeitet durch Moderator
von STK500-Besitzer (Gast)


Lesenswert?

G V schrieb:
> Mir war nicht klar, dass ich R und D einfach direkt zusammenhängen darf.

Das sind Eingänge. Die darf man meistens zusammenschalten. Interessant 
wäre dann höchtens das Fanout des treibenden Ausgangs.

G V schrieb:
> Nur weil er die gleichen Pins hat heißt das noch nicht, dass es dann
> auch funktioniert.

Millionen von Entwicklern, die das so verwenden, irren sich?

Lothar M. schrieb:
> Mein Tipp dafür: nimm "übliche" LVDS
> Treiber.

Oder RS422-Treiber, um bei der RS-Schnittstellenfamile zu bleiben.

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.