Differentieller Tranceiver mit nur einen Pin als single-ended IO

Gast #7328895
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.

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

Angehängte Dateien:
Gast #7328928
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.

#7328994
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?

Gast #7329061
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?

#7329075
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! ;-)

Gast #7329084
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...

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

Gast #7329109
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

Gast #7329125
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]

Moderator (Firma: Titel) Persönliche Seite #7329187
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.

Angehängte Dateien:
Gast #7329311
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren