Mit RS422 / 485 SPI Signale über 5 Meter übertragen

Gast #2474176
Lesenswert?

Ja, aber die Flanken der verschiedenen SPI-Signale sollten genügend weit 
auseinanderliegen, weil RS485 Transceiver gerne die Flanken verschleifen 
und dadurch den genauen Zeitpunkt der Flanken auf der Zeitachse 
verschieben können.
Gast #2475232
Lesenswert?

Beim senden/schreiben von Daten über SPI sind Verzögerungen über die 
Leitungen kein Problem, da Takt und Daten gleich verzögert werden. Beim 
Lesen kann es aber für den Mikrocontroller zu spät sein wenn die Daten 
zum Takt zu stark verzögert werden. Im Datenblatt sind die 
erforderlichen Zeiten aber spezifiziert.
Gast #2475416
Lesenswert?

>Beim senden/schreiben von Daten über SPI sind Verzögerungen über die
>Leitungen kein Problem, da Takt und Daten gleich verzögert werden.

Aber eben nur, wenn die Transceiver schnell genug und die Toleranzen der 
Verzögerungszeiten vernachlässigbar klein sind.
Gast #2475462
Lesenswert?

Der Wandler ISL3179EFBZ kann 40MBps, ich denke, dass das reichen sollte 
:-)

Im Datenblatt ist die Zeit "Driver Differential Output Delay" 
(Verzögerungszeit? ) mit unter 20ns spezifiziert, ich wollte zuerst 
eigentlich nur Daten senden, beim Empfangen sollte das doch auch keine 
Probleme geben?

Kleine Frage zur VCC, im Datenblatt steht zwar bei den absoluten maximum 
Angaben 7V, ich wollte das Teil zwar nur mit 5V betreiben, die Leute im 
Datenblatt haben aber scheinbar überall 3,3V verwendet. Sollte ich das 
dann besser auch so machen?

Als Abschlusswiderstand würde ich jetzt 110 Ohm nehmen, gute oder 
schlechte Wahl?

Gruß aus München
Gast #2476363
Lesenswert?

hurrahurra schrieb:
> Kleine Frage zur VCC, im Datenblatt steht zwar bei den absoluten maximum
> Angaben 7V, ich wollte das Teil zwar nur mit 5V betreiben, die Leute im
> Datenblatt haben aber scheinbar überall 3,3V verwendet. Sollte ich das
> dann besser auch so machen?

Nein

>
> Als Abschlusswiderstand würde ich jetzt 110 Ohm nehmen, gute oder
> schlechte Wahl?

Vom Prinzip her schließt du mit dem Wellenwiderstand des verwendeten 
Kabels ab. Bei Standard twisted pair Kabel ist das eben 110 Ohm. Bei 10m 
ist das aber alles eher unkritisch.
Moderator (Firma: Titel) Persönliche Seite #2476410
Lesenswert?

hurrahurra schrieb:
> für das Übertragen von SPI Signalen über
> etwas größere Distanz (5 Meter) zu verwenden?
Flanki schrieb:
> Aber eben nur, wenn die Transceiver schnell genug und die Toleranzen
> der Verzögerungszeiten vernachlässigbar klein sind.
Warum, zur Hölle, kann eigentlich keiner Zahlen zu seinen Aussagen 
dazuschreiben? So ist das alles nur Geschwafel... :-o

Weil der SPI taktsynchron ist und (per Definition**) jeweils mit der 
eine Taktflanke die Daten geändert sowie mit der anderen Taktflanke 
übernommen werden, sind z.B. bei 10MHz SPI-Takt auch Unterschiede 
(zwischen MOSI und SCLK) von 20ns absolut kein Problem.

Ein deutliches Problem kann dagegen (wie erwähnt) die Laufzeit in 
Leserichtung vom Slave zum Master werden. Denn dort gibt der Master 
seinen Takt aus, dieser Takt muß ans andere Ende der Leitung, der Slave 
muß die "neuen" Daten auf die MOSI Leitung legen und dann müssen diese 
neuen Daten zurück zum Master und rechtzeitig (Setupzeit, tsu) vor der 
Übernahmeflanke da sein.
Und wie Dominik Friedrichs da im 
Beitrag "Re: Signallaufzeit in Cat 5e" nachgemessen hat, 
fallen für 7m Kabel ca. 35ns an. Das wären dann für 5m schon mal 25ns. 
Und Hin-Zurück sind damit 50ns. Bei den erwähnten 10MHz ist das aber 
schon die Zeit zwischen der Änderungs- und Überhameflanke. Fazit: bei 
dieser SPI-Taktfrequenz werden die Daten auf jeden Fall zu spät beim 
Master ankommen.

Also: Her mit Zahlen. Dann erst kann man sinnvolle Aussagen treffen.


**Ein ordinäres Schieberegister weiß nichts von dieser Definition, und 
deshalb wird es seine Daten mit der selben Taktflanke übernehmen und den 
Ausgang ändern. Aber so ist das Leben eben... ;-)
#2476425
Lesenswert?

@  Lothar Miller (lkmiller) Benutzerseite

>> Aber eben nur, wenn die Transceiver schnell genug und die Toleranzen
>> der Verzögerungszeiten vernachlässigbar klein sind.
>Warum, zur Hölle, kann eigentlich keiner Zahlen zu seinen Aussagen
>dazuschreiben? So ist das alles nur Geschwafel... :-o

Weil dann geschätze 80% des Forums-"inhalts" sich in Luft auflösen 
würden.

>fallen für 7m Kabel ca. 35ns an. Das wären dann für 5m schon mal 25ns.
>Und Hin-Zurück sind damit 50ns. Bei den erwähnten 10MHz ist das aber
>schon die Zeit zwischen der Änderungs- und Überhameflanke. Fazit: bei
>dieser SPI-Taktfrequenz werden die Daten auf jeden Fall zu spät beim
>Master ankommen.

SPI ist ja auch nie für 5m Kabellänge gemacht worden. Für sowas nimmt 
man eh asynchrone Sache ala RS232 oder ähnliches.

>Also: Her mit Zahlen. Dann erst kann man sinnvolle Aussagen treffen.

Oder kurz: Netiquette!

MfG
Falk
#2476499
Lesenswert?

@  Mine Fields (minefields)

>Trotzdem gibt es Anwendungen mit 16 MBit und bis 100m Kabellänge.
>Natürlich dann nicht mehr ohne Laufzeitkompensation:

>http://www.heidenhain.de/de_DE/grundlagen/endat-22/

Dieses endat ist die größte Bastellösung vor dem Herrn! Sollte hier mit 
eingetragen werden.

Beitrag "Gröbster Pfusch - beichtet eure Sünden!"

Hat wahrscheinlich ein unterdurchschnittlicher Mechatronikstudent in der 
Kaffeepause erfunden . . .
Gast #2476555
Lesenswert?

Also ich hab nochmal nachgemessen.

Als Weg reichen mir etwa 2 Meter, was ja dann eine Laufzeit von 10ns 
darstellt.

Als Daten habe ich 1200 Bits beim Senden von meinem ATMega1284p an die 
Peripherie und villeicht 100 Bits beim Empfangen der Daten von meiner 
Peripherie, diese Werte sollen sich 500mal die Sekunde ändern können, 
also bleib ich doch noch weit unter 1Mhz ?

Damit wäre die Laufzeit doch noch einigermaßen in Ordnung?
Gast #2476563
Lesenswert?

Falk Brunner schrieb:
> Hat wahrscheinlich ein unterdurchschnittlicher Mechatronikstudent in der
> Kaffeepause erfunden . . .

Na irgendwas muss er aber richtig gemacht haben, wenn diese Lösung von 
hunderten Elektroingenieuren akzeptiert wird ;-)

Ich habe ja nicht gesagt, dass es eine gute Lösung ist. Es zeigt aber, 
was technisch zuverlässig (industrieerprobt) machbar ist.
#2476582
Lesenswert?

@  hurrahurra (Gast)

>Als Daten habe ich 1200 Bits beim Senden von meinem ATMega1284p an die
>Peripherie und villeicht 100 Bits beim Empfangen der Daten von meiner
>Peripherie, diese Werte sollen sich 500mal die Sekunde ändern können,
>also bleib ich doch noch weit unter 1Mhz ?

Grundrechenarten?

1200 Bit * 500 Hz = 600.000 Hz bzw Bit/s.

>Damit wäre die Laufzeit doch noch einigermaßen in Ordnung?

Ja.
Gast #2476583
Lesenswert?

hurrahurra schrieb:
> Als Weg reichen mir etwa 2 Meter, was ja dann eine Laufzeit von 10ns
> darstellt.
>
> Als Daten habe ich 1200 Bits beim Senden von meinem ATMega1284p an die
> Peripherie und villeicht 100 Bits beim Empfangen der Daten von meiner
> Peripherie, diese Werte sollen sich 500mal die Sekunde ändern können,
> also bleib ich doch noch weit unter 1Mhz ?
>
> Damit wäre die Laufzeit doch noch einigermaßen in Ordnung?

Eine rein akademische Diskussion da die Laufzeit die kleinere Rolle 
spielt. Eine Leitung hat kapazitive und induktive Anteile . Sie muss bei 
Pegelwechsel komplett umgeladen werden und das dauert.

Aber auch das ist egal, mach deine Hardware und dreh die Geschwindigkeit 
so weit rauf wie es geht und nötig ist. Wenn es Probleme beim Empfang 
gibt dann muss halt der Master gewechselt werden. Wenn das alles nichts 
hilft dann machst du halt die klassische Variante mit RS422 in beide 
Richtungen. Bei Cat Kabel das 4 verdrillte Paare hat ist das eh die 
bessere Lösung und Sie ist bis 1200m spezifiziert.
Gast #2476590
Lesenswert?

^^

stimmt beim SPI gibts ja kein solchen Overhead wie beim RS232 oder I2C.

Die Wandler ISL3179EFBZ sind ja für RS422 gemacht.


Ist es eigentlich klug, Operationsverstärker für das Verstärken von 
solchen Signalen zu verwenden, nachdem sie von einem Wandler ausgegeben 
wurden?
Gast #2476607
Lesenswert?

Ich muss mit dem Signal für den Takt 8 Schieberegister ansteuern, der 
ISL3179EFBZ schafft das nicht, soll ich einfache MOSFETs oder bipolar 
Transistoren verwenden um das Signal zu verstärken?
Moderator (Firma: Titel) Persönliche Seite #2476615
Lesenswert?

hurrahurra schrieb:
> Als Daten habe ich 1200 Bits beim Senden von meinem ATMega1284p an die
> Peripherie und villeicht 100 Bits beim Empfangen der Daten von meiner
> Peripherie,
Lustig, dass beim SPI Senden und Empfangen gleichzeitig geschehen (wenn 
mans richtig anstellt)...

Ansonsten: Was für Daten? Wohin gehen die? Müssen alle Daten 500mal pro 
Sekunde geändert werden, oder reicht ein Teil aus?
Kurz: Was willst du machen?

hurrahurra schrieb:
> Ich muss mit dem Signal für den Takt 8 Schieberegister ansteuern, der
> ISL3179EFBZ schafft das nicht, soll ich einfache MOSFETs oder bipolar
> Transistoren verwenden um das Signal zu verstärken?
Du steuerst damit nur das 1. Schieberegister an, und der Ausgang des 1. 
steuert dann das 2. an, usw...
Nur beim Takt hast du eine Multidrop Architektur.
Gast #2476665
Lesenswert?

>Warum, zur Hölle, kann eigentlich keiner Zahlen zu seinen Aussagen
>dazuschreiben? So ist das alles nur Geschwafel... :-o

Es ist die Aufgabe des TE sich um die Zahlen zu kümmern. Ich habe 
lediglich auf eine mögliche Falle aufmerksam machen wollen.
Gast #2476822
Lesenswert?

war doof ausgedrückt, sorry.

Ich muss die ganzen Sachen unter anderem das Slave Select ja auch noch 
übertragen und da gehen einmal 8 Stück auf 8 Schieberegister drauf, nach 
meinen Erfahrungen packt der ISL3179EFBZ das nicht, deshalb muss ich das 
Signal irgendwie verstärken.
Gast #2476853
Lesenswert?

hurrahurra schrieb:
> da gehen einmal 8 Stück auf 8 Schieberegister drauf, nach
> meinen Erfahrungen packt der ISL3179EFBZ das nicht

Erst einmal geht das differentielle Signal ja nicht direkt auf die 
Schieberegister, sondern auf einen Receiver. Und dann kommt es stark auf 
deine Topologie an, und die ist wahrscheinlich sehr sehr unglücklich 
gewählt, wenn du keine 8 Teilnehmer zustande kriegst.
Gast #2477016
Lesenswert?

Flanki schrieb:
> Es ist die Aufgabe des TE sich um die Zahlen zu kümmern.

Wenn er das könnte würde er solch Fragen nicht stellen.

hurrahurra schrieb:
> Ich muss mit dem Signal für den Takt 8 Schieberegister ansteuern, der
> ISL3179EFBZ schafft das nicht,

Das ist ein Transceiver, was bedeutet das er aus dem differentiellen 
Signal der "Fernverbindung" wieder ein einfaches mit high low macht. Das 
Dingens hat so clevere Sachen wie Hysterese und Störunterdrückung drin, 
braucht dich aber alles nicht kümmern.

Es hindert dich auch keiner 8 Stück davon parallel zu betrieben (bzw. 
16. über SPI). Das ist aber overkill da das Ding sicher 8 Eingänge 
gleichzeitig treiben kann.

Einfacher wäre vielleicht zu beschreiben was für eine Funktion die 
Schaltung haben soll.

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