mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI mit (M-)LVDS-Technik - Bitte um Konzeptbewertung


Autor: noips (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!

Die SPI-Kommunikation zwischen Master und mehreren Slaves soll über LVDS 
erfolgen. Das Prizip ist in der angehängten Skizze zu sehen.

Die Verbindung wird über abgeschirmte Kabel mit verdrillten Aderpaaren 
realisiert. Kabellänge bis zu 10 m. Datenrate bis 50 MBit/s, später 
vielleicht mehr. Auf der Slave-Platine wird es einen Stecker zum 
Zuführen und einen zum Weiterleiten der SPI-Signale geben. Somit führt 
ein Kabel vom Master zum ersten Slave, ein weiteres vom ersten Slave zum 
nächsten usw.

Die Länge der Stichleitungen ist auf die Leiterbahnlänge vom Stecker zum 
Treiber/Receiver begrenzt (einige cm) und damit vernachlässigbar. Auf 
den Slave-Platinen werden Pads zum Terminieren der Leitungspaare 
vorgesehen und die vom Master aus gesehen letzte Platine wird mit 100 
Ohm Abschlußwiderstand bestückt. Die MISO-Leitung wird beidseitig 
terminiert, weil z.B. beim Senden durch den 1. Slaves das Signal in 
beide Richtungen (zum Master und zum letzten Slave) läuft. Dazu werden 
masterseitig und slaveseitig Abschlußwiderstandspads vorgesehen.

An den Leitungen SS1/2, MOSI und CLK gehen die Signale nur in eine 
Richtung (vom Master zu den Slaves) und es handelt sich dann um eine 
Punkt-zu-Punkt-Verbindung. Daher können hier Standard 
LVDS-Treiber/Receiver eingesezt werden. Bei MISO dagegen geht das Signal 
unter Umständen in beide Richtungen (siehe oben). Deswegen sind hier 
Multipoint LVDS-Treiber (M-LVDS) nötig. Beim Receiver bin ich mir noch 
unsicher. Wenn LVDS-Receiver problemlos M-LVDS Signale empfangen können 
ist hier die Verwendung eines normalen LVDS-Receivers möglich.

Denkbar wäre noch die Verwendung eines Serializers mit LVDS-Übertragung 
wie z.B. MAX 9205-9208. Damit könnten die Signale SS, MOSI und CLK 
zusammengefasst auf einem Leitungspaar übertragen werden.

Und nun würde ich mich freuen, wenn ihr eure Bewertung zu diesem Konzept 
gebt. Ist es praktisch umsetzbar und sinnvoll oder habe ich etwas nicht 
berücksichtig, woran das ganze scheitert?

Ich danke für jeden Hinweis!!!

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mag niemand seine Bewertung geben?

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein letzter Post, mit dem ich diesen Thread nach oben holen wollte, 
wurde gelöscht. Ich verstehe aber nicht, was ich damit falsch gemacht 
habe. Wenn der Thread eine Zeit lang nicht beantwortet wurde (aufgrund 
anderer interessanten Threads oder weil niemand gerade da war, der sich 
mit dem Thema auskennt) so geht der Thread unter und wird dann nicht 
mehr beantwortet. Wie soll man das Problem denn lösen, wenn nicht den 
Thread einfach wieder holen?

Autor: Martin R. (herki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Wollte ich auch mal machen...
Habs dann gelassen weil es bei mir nicht zwingend notwendig war.
50MBit/s und dass via SPI finde ich sehr schwer realisierbar (ich bin 
aber noch am Anfang meines Berufslebens)
Was für ein Baustein kann den 50MBit/s?

LVDS ist soweit ich weiß eine Punkt zu Punkt Verbindung --> 
Stichleitungen wie Du sie ja haben wirst gehen nicht.
--> Somit solltest für jeden Slave eigene LVDS-Transmitter auf der 
Masterseite vorsehen.

Vielleicht hilfts

VG

Herki

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noips schrieb:
> Mein letzter Post, mit dem ich diesen Thread nach oben holen wollte,
> wurde gelöscht. Ich verstehe aber nicht, was ich damit falsch gemacht
> habe.

Beiträge à la "Push" oder "thread mal nach oben holen" sind hier 
unerwünscht.

Die Anzahl der auf der ersten Seite stehenden Threads ist begrenzt, wenn 
jeder, der eine unbeantwortete Frage hat, diese immer "nach oben holt", 
dann wird das ganze reichlich nutzlos.

Und wenn keiner eine Antwort auf Deine Frage hat, dann ist das so, einen 
Anspruch auf Beantwortung hast Du nicht.

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M. R. schrieb:
> Stichleitungen wie Du sie ja haben wirst gehen nicht.
> --> Somit solltest für jeden Slave eigene LVDS-Transmitter auf der
> Masterseite vorsehen.

Soviel ich weiß, sind kurze Stichleitungen erlaubt (habe ich irgend wo 
gelesen, wobei ich nicht sicher bin, dass sich dass auf LVDS bezogen 
hat).

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Was für ein Baustein kann den 50MBit/s?

Dieser ADC z.B. :  ADS8327


> Habs dann gelassen weil es bei mir nicht zwingend notwendig war.
> 50MBit/s und dass via SPI finde ich sehr schwer realisierbar

Diese Datenrate als SPI wurde bei uns mit FPGAs als Master und Slave 
schon realisiert und geht teilweise schon gut, allerdings nicht über 10 
m und ist noch in der Etwicklungsphase. Ein ziemliches Problem ist dabei 
das Delay (Logik-, Routing- und Leitung-/Kabel-Delays) in dem 
MISO-Signal. Die fallende Flanke am CLK kommt durch die Delays am Slave 
verzögert an und die Slave-Daten kommen noch mehr verzögert zurück am 
Master an. Wenn die Daten nicht noch t_su (Setup Time) vor der 
steigenden Flanke ankommen, dann liest der Master was falsches ein. Aber 
wir haben Lösungsansätze dazu.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um dieses Phasenproblem beim Taktsignal zu lösen kann der aktive Slave 
den Takt zusammen mit den Daten wieder zurück schicken, d.h. der Master 
hat einen Taktausgang für seinen Transmitter und einen Takteingang für 
seinen Receiver.

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> d.h. der Master hat einen Taktausgang für seinen Transmitter und einen
> Takteingang für seinen Receiver.

Von dieser Möglichkeit habe ich früher auch schon gehört. Der Nachteil 
hier ist noch eine CLK-Leitung im Kabel, Stecker und auf PCB, 
zusätzliche Treiber-Bausteine zum Umkehren des CLK und ein 
(zusätzlicher) Takteingang am Master.

Da der Master in diesem Fall ein FPGA ist, kann man selbst an dem 
"rumdrehen". Der Ansatz war, die MISO-Daten entsprechend verzögert 
einzulesen. Unser FPGA-Mann sagt, es ist kein Problem.

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  A. K. (prx)

Was meinst du eigentlich zu diesem Konzept? Ist die Übertragung vom 
Master an mehrere Slaves per LVDS (welches eigentlich Punkt-zu-Punkt 
ist) machbar? Was ist mit der schon angesprochenen 
Stichleitungsproblematik?

Danke!

Autor: Martin R. (herki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Das war mal mein Thread.

Beitrag "SPI-Signale über LVDS Treiber schicken"

Da wird kurz auf die Problematik mit dem Leitungsabschluss eingegangen.

VG

Martin

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noips schrieb:

> Was meinst du eigentlich zu diesem Konzept?

Sorry, Hochfrequenz auf langen Strecken liegt etwas ausserhalb meiner 
Kompetenz.

Prinzipiell möglich ist es jedoch, immerhin arbeitete Parallel-SCSI ab 
Ultra2 mit LVD bis 12m auch nicht anders. Mit gewissen Einschränkungen - 
siehe dort.

Autor: noips (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hab hier ein Application Report von TI, in dem es teilweise um dieses 
Thema geht. Nur wird hier SPI mit nur einem Slave (also Punkt zu Punkt 
und nicht Bus) behandelt.

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zurück zu den Stichleitungen. Entsprechend dem Artikel 
Wellenwiderstand treten Reflektionen auf, wenn die Leiterbahn so 
lang ist, dass die Signallaufzeit darauf länger als 1/6 der Anstiegszeit 
ist. Jetzt habe ich eine Worst Case Rechnung gemacht:

t_rise_min / t_fall_min  0.2 ns   (bei schnellsten mir bakannten LVDS)
Sign.-Geschw. Leiterbahn 15 cm/ns (worst case siehe 
Wellenwiderstand)

Zulässige Stichleitungslänge ohne Reflektionen:

l_zul = (0.2 ns * 15 cm/ns) / 6 = 0.5 cm !!!

Das heißt, meine Leiterbahnen vom Stecker-Pin bis zum Receiver-Baustein 
(Stichleitung) dürfen nicht länger als 0.5 cm sein. Sonst gibt es 
Reflektionen!

Sehe ich es richtig?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noips schrieb:

> t_rise_min / t_fall_min  0.2 ns   (bei schnellsten mir bakannten LVDS)

Gibt es einen zwingenden Grund, weshalb du dir mit Gigahertz-tauglichen 
LVDS Transceivern für 50MHz Signale selbst auf die Füsse treten willst?

> Das heißt, meine Leiterbahnen vom Stecker-Pin bis zum Receiver-Baustein
> (Stichleitung) dürfen nicht länger als 0.5 cm sein.

Oder du sorgst für langsamere an die angepeilte Datenrate angepasste 
Flanken.

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Gibt es einen zwingenden Grund, weshalb du dir mit Gigahertz-tauglichen
> LVDS Transceivern für 50MHz Signale selbst auf die Füsse treten willst?

So zwingend sind die Gründe nicht. Zum einen können die LVDS-fächigen 
I/O-Paare des FPGAs gleich verwendet werden und nur für die restlichen 
Signale wären dann Treiber nötig (Kosten und Platz auf dem Board). Zum 
anderen sind die LVDS-Bausteine etwas günstiger als bustaugliche M-LVDS.


> Oder du sorgst für langsamere an die angepeilte Datenrate angepasste
> Flanken.

Darauf läuft es wohl hinaus. Hier wird wohl M-LVDS die richtige Wahl 
sein. Bei diesen Bausteinen sind die Flanken auf über 1 ns spezifiziert, 
um Stichleitungen zu ermöglichen.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich halte das Konzept ein SPI-Signal differenziell zu uebertragen
um Stoerungen auf den Leitungen zu vermeiden fuer brauchbar und klug.
Genauer gesagt ist das ja nichts anderes als RS422.

Unklug ist es natuerlich wenn man Bustreiber verwendet die deutlich 
schneller sind als man es benoetigt.

Es gibt aber noch einen weiteren Punkt an den du offenbar noch keinen 
Gedanken verschwendet hat. Potentialunterschiede. Bei 10m Kabel kann das 
gehen, es kann aber auch nicht gehen. Abhaengig von Geraet und Umgebung.
Da solltest du jedenfalls mal drueber nachdenken.

Olaf

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Oder du sorgst für langsamere an die angepeilte Datenrate angepasste
> Flanken.

Was würde sich denn noch dafür eignen. RS-485 gibt es zwar auch welche 
mit 50 MHz aber es ist schon die Grenze und außerdem sind die nicht 
gerade stromsparend, es wird ein Interface-Board mit 8 SPI-Kanälen 
werden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.