Forum: Mikrocontroller und Digitale Elektronik Display: SPI über I2C verlängern?


von IQuadratC (Gast)


Lesenswert?

Hallo,

folgendes Szenario: Ein TFT-Farbdisplay, welches über SPI angesteuert 
wird, soll in einem Gehäuse untergebracht werden, in welchem sich kein 
Controller befindet. Der Controller befindet sich in einem Gehäuse, ca 
2-3 m entfernt. Da SPI-Leitungen bekanntlich relativ kurz gehalten 
werden sollen, kann ich die Ansteuerung nicht direkt vornehmen. Ich 
möchte also eine Lösung, welche über ein möglichst dünnes Kabel den 
Displayinhalt zuverlässig überträgt. Es sollen keine bewegten Bilder 
oder Videos übertragen werden, wohl aber die Uhrzeit und veränderliche 
Werte. Meine Überlegung ist, einen SPI nach I2C Converter zu benutzen 
und im Displaygehäuse aus dem I2C-Signal wieder das SPI-Signal zu 
generieren. Hat das schon jemand ausprobiert oder gibt es dafür 
vielleicht elegantere oder sogar fertige Lösungen?

von Falk B. (falk)


Lesenswert?

@ IQuadratC (Gast)

>Controller befindet. Der Controller befindet sich in einem Gehäuse, ca
>2-3 m entfernt. Da SPI-Leitungen bekanntlich relativ kurz gehalten
>werden sollen, kann ich die Ansteuerung nicht direkt vornehmen.

Doch. Man muss nur ein bisschen das Thema Wellenwiderstand 
berücksichtigen. 3m sind mit SPI machbar.

>Werte. Meine Überlegung ist, einen SPI nach I2C Converter zu benutzen
>und im Displaygehäuse aus dem I2C-Signal wieder das SPI-Signal zu
>generieren.

Aua.

> Hat das schon jemand ausprobiert oder gibt es dafür
>vielleicht elegantere oder sogar fertige Lösungen?

Nimm gleich RS232.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Beib' bei SPI, verwende zur Erhöhung der Störsicherheit differentielle 
Treiber à la RS422 oder LVDS. Das verdoppelt zwar die Leiteranzahl (je 
zwei für Takt und Daten), ist aber, wenn über twisted-pair geführt, 
reichlich robust.

von IQuadratC (Gast)


Lesenswert?

Falk Brunner schrieb:
> Doch. Man muss nur ein bisschen das Thema Wellenwiderstand
> berücksichtigen. 3m sind mit SPI machbar.

Hast Du konkrete Erfahrungen? Welches Kabel sollte benutzt werden? Habe 
eins vergessen: Die Betriebsspannung für das Display soll über das selbe 
Kabel bereitgestellt werden.

von Falk B. (falk)


Lesenswert?

@ Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite

>Beib' bei SPI, verwende zur Erhöhung der Störsicherheit differentielle
>Treiber à la RS422 oder LVDS. Das verdoppelt zwar die Leiteranzahl (je
>zwei für Takt und Daten), ist aber, wenn über twisted-pair geführt,
>reichlich robust.

"Ich möchte also eine Lösung, welche über ein möglichst dünnes Kabel den
Displayinhalt zuverlässig überträgt. Es sollen keine bewegten Bilder
oder Videos übertragen werden, wohl aber die Uhrzeit und veränderliche
Werte."

Also Trivialitäten.

von Falk B. (falk)


Lesenswert?

@ IQuadratC (Gast)

>> Doch. Man muss nur ein bisschen das Thema Wellenwiderstand
>> berücksichtigen. 3m sind mit SPI machbar.

>Hast Du konkrete Erfahrungen?

Ja.

>Welches Kabel sollte benutzt werden?

Was dir gefällt. Twisted Pair oder Flachband.

>eins vergessen: Die Betriebsspannung für das Display soll über das selbe
>Kabel bereitgestellt werden.

Ja und? Ein einfaches dreiadriges Kabel mit GND, VCC und RS232_DATA 
reicht locker. Ein kleiner uC am TFT, fertig. Dünner geht das Kabel 
nicht.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

I2C ist zudem auch nicht für grössere Entfernungen gedacht. Denn 
ausgeschrieben heißt das "Inter-IC-Bus", also gedacht zur Verbindung von 
ICs auf der Platine...

von Falk B. (falk)


Lesenswert?

@ Lothar Miller (lkmiller) (Moderator) Benutzerseite

>I2C ist zudem auch nicht für grössere Entfernungen gedacht. Denn
>ausgeschrieben heißt das "Inter-IC-Bus", also gedacht zur Verbindung von
>ICs auf der Platine...

Ich hatte mal I2C in einem Industriesensor drin, der bis zu 500m 
(fünfhundert Meter) Anschlußlänge hatte . . .

von Crazy Harry (crazy_h)


Lesenswert?

Lothar Miller schrieb:
> I2C ist zudem auch nicht für grössere Entfernungen gedacht. Denn
> ausgeschrieben heißt das "Inter-IC-Bus", also gedacht zur Verbindung von
> ICs auf der Platine...

Deswegen gibts auch extra Repeater, Bus Puffer, ......

@TO: Ich hab sowas schon gemacht, allerdings anderst. Auf der 
Displayplatine ist ein größerer Mega-Proz, der die Verwaltung und 
Steuerung des Displays übernimmt und via I2C über einen eigenen 
Befehlssatz "Auträge" ausführt. In dem Mega sind z.B. über 50 
Festgrafiken/Symbole gespeichert und diese werden über einen Befehl des 
Masters angezeigt. Dafür muß dieser nur 3 Bytes via I2C senden: 
x-Koordinate, y-Koordinate und Symbolnummer. Ähnlich einfach schreibt 
man Texte, zeichnet Linien, Kreise oder was man eben sonst implemetiert. 
Ich arbeite übrigens mit Kabellängen bis 3m (normales USB-Kabel).

von :-) (Gast)


Lesenswert?

... und wir Österreicher benutzen statt I2C ein verschränktes Photon. 
Damit kommen wir auf 143 Kilometer.

von Uwe B. (uwe_beis)


Lesenswert?

Warum verrätst du nichts über die Baudrate der SPI? (Sag' nicht, dass du 
sie nicht kennst - dann kennst du die Aufgabenstellung auch höchstens 
nur zur Hälfte.)

2 - 3m sind nicht tragisch, wenn die Geschwindigkeit nicht zu hoch ist.

Serielle Widerstände hinter den Treiber-Ausgängen, entsprechend den 
Wellenwiderständen der Leitungen, machen das System schon erheblich 
robuster, weil der Empfänger keine Reflektionen mehr sieht.

Die gemeinsame Masse oder kapazitives oder induktives Übersprechen würde 
bei noch größeren Längen das nächste Problem ergeben können. 
Symmetrische Übertragung mit RS-422, wie Rufus schon empfahl, wäre dann 
die Lösung. Ich spreche aber jetzt schon von Längen im km-Bereich oder 
Geschwindigkeiten bei 20 MBit/s (aber nicht beides gleichzeitig).

Als Kabel für hohe Ansprüche kommen Datenkabel mit paarweise verdrillten 
Leitungen in Frage, bei sehr langen Leitungen bzw. Datenraten mit PE- 
(und nicht mit PVC-)Isolation. Für ein paar Meter tun es 
Telefonleitungen, die sind auch paarweise verdrillt.

von Crazy Harry (crazy_h)


Lesenswert?

nun der TO braucht aber nur 2-3m ;o)

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
Noch kein Account? Hier anmelden.