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.
Das wird auch über 50m funktionieren, kommt nur auf das Kabel und die Taktrate an. Die Abschlusswiderstände nicht vergessen.
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
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/
TI wirft dazu auch noch einige Grundlagen und Zahlen in den Raum: http://www.ti.com/lit/an/slyt441/slyt441.pdf
@ 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.
Operationsverstaerker sind fuer analog signale.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.