Hi, prinzipiell müsste es doch möglich sein mit RS422 / 485 Wandlern wie
zum Beispiel dem ISL3179EFBZ für das Übertragen von SPI Signalen über
etwas größere Distanz (5 Meter) zu verwenden?
Gruß aus München
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.
Was ? Man sollte natuerlich keine 250kbit Treiber waehlen und dann MBit
uebertragen wollen. SPI ist flankengeriggert, da sollte eigentlich
nichts schiefgehen. Im Zweifelsfall den schnelleren Treiber waehlen.
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.
>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.
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
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.
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... ;-)
@ 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
@ 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 . . .
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?
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.
@ 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.
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.
^^
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?
hurrahurra schrieb:> stimmt beim SPI gibts ja kein solchen Overhead wie beim RS232 oder I2C.
Trotzdem musst du deine Daten ja noch verarbeiten.
hurrahurra schrieb:> Ist es eigentlich klug, Operationsverstärker für das Verstärken von> solchen Signalen zu verwenden, nachdem sie von einem Wandler ausgegeben> wurden?
Nein.
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?
hurrahurra schrieb:> Ich muss mit dem Signal für den Takt 8 Schieberegister ansteuern, der> ISL3179EFBZ schafft das nich
Wieso nicht?
hurrahurra schrieb:> soll ich einfache MOSFETs oder bipolar> Transistoren verwenden um das Signal zu verstärken?
Weder noch.
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.
>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.
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.
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.
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.