SPI Verbindung wird durch Zündspule gestört

Gast #5307691
Lesenswert?

Hallo zusammen,

ich habe an meinen Motorradlenkrad ein 1.8" Arduino TFT Bildschirm, der 
mir die Uhrzeit anzeigt.
Der Mikrocontroller ist aber unter der Sitzbank verbaut.
Somit verläuft das Kommunikationskabel unter den Tank zum Lenkrad.

Dort kommt es natürlich an den Zündspulen/Zündkabeln vorbei.

Ich hatte Anfangs massive Störungen, die ein Betrieb unmöglich machten.
Jetzt habe ich eine bessere Position gefunden. Leider schleichen sich 
dennoch manchmal Störungen ein, die sich in Pixelfehler bemerkbar 
machen.

Ich nutze ein abgeschirmtes Kabel 8x0,14 mm^2.
Den Schirm habe ich nur einseitig ( am µC angeschlossen)
Das kabel ist ca 1,5 m lang. Verlege ich das Kabel testweise über den 
Tank, läuft die Kommunikation problemlos.

Jetzt wollte ich mal fragen, ob jmd eine Idee hat oder ob ein 
verdrilltes Netzwerkkabel ein Versuch wert wäre. Spielt der Querschnitt 
auch eine zu berücksichtigende Rolle?

Über Tipps wäre ich sehr dankbar.

Alternativ könnte ich das Kabel unter der Ölwanne verlegen, aber dann 
würde es direkt 1m länger werden, das wäre sicher auch nicht so dolle.
Gast #5307715
Lesenswert?

SPI schrieb:
> Mach aus jeder einzelnen SPI-Leitung eine Differenzial-Verbindung. Damit
> bekommst Du die Signale gut durch Dein Netzwerkkabel und die Störungen
> bekommst Du so auch weg.

Hi, kannst Du mir kurz erklären, wie das genau geht?

Beste Grüße Heinz
#5307716
Lesenswert?

@ Heinz (Gast)

>Dort kommt es natürlich an den Zündspulen/Zündkabeln vorbei.

Hmm, nicht so gut, das sind starke Störquellen.

>Ich nutze ein abgeschirmtes Kabel 8x0,14 mm^2.
>Den Schirm habe ich nur einseitig ( am µC angeschlossen)

Schon mal gut. Mit GND verbunden?
Idealerweise musst du auch den Schirm am Display mit GND verbinden.

>Das kabel ist ca 1,5 m lang. Verlege ich das Kabel testweise über den
>Tank, läuft die Kommunikation problemlos.

>Jetzt wollte ich mal fragen, ob jmd eine Idee hat oder ob ein
>verdrilltes Netzwerkkabel ein Versuch wert wäre.

Ist auch nicht besser.

> Spielt der Querschnitt
>auch eine zu berücksichtigende Rolle?

Nein.

>Alternativ könnte ich das Kabel unter der Ölwanne verlegen, aber dann
>würde es direkt 1m länger werden, das wäre sicher auch nicht so dolle.

Nicht sinnvoll.

Man könnte speziell für SCK einen kleinen RC-Filter + nicht 
invertierendenSchmitt-Trigger am Display einbauen, das ist das 
kritischste Signal. 100 Ohm + 100pF sollten für einen ersten Test 
reichen. Ein 74HC14 mit 2 Gattern in Reihe ist dein Freund. Im 
Zweifelsfall auch für das Datensignal, sind ja genug Gatter vorhanden.
#5307725
Lesenswert?

@Heinz (Gast)

>> Mach aus jeder einzelnen SPI-Leitung eine Differenzial-Verbindung. Damit
>> bekommst Du die Signale gut durch Dein Netzwerkkabel und die Störungen
>> bekommst Du so auch weg.

>Hi, kannst Du mir kurz erklären, wie das genau geht?

Man kann die SPI-Signale von "normalem CMOS Einzelsignal" (single ended) 
auf ein differentielles Signal umwandeln. Dann werden pro Signal 2 
verdrillte zur Übertragung genutzt, das macht es deutlich 
störunempfindlicher. Am Display werden dann wieder die differentiellen 
Signale in normale Signale umgewandelt. Das gibt es fertig als IC, 
MAX488 ist so einer.

Ist aber unnötig aufwändig.
#5307755
Lesenswert?

Heinz schrieb:
> Hallo zusammen,
>
> ich habe an meinen Motorradlenkrad ein 1.8" Arduino TFT Bildschirm, der
> mir die Uhrzeit anzeigt.
> Der Mikrocontroller ist aber unter der Sitzbank verbaut.

Warum soweit vom Bildschirm?

> Somit verläuft das Kommunikationskabel unter den Tank zum Lenkrad.

Pack doch den Controller direkt hinter dem Bildschirm, dann bist du die 
Sorgen los.

Mfg aus dem Rhein-Ruhr Gebiet
Gast #5307906
Lesenswert?

Hallo und vielen Dank für eure Antworten.

Ich habe mich leider zu Beginn zu stark mit anderen Dingen beschäftigt 
und das ganze am Schreibtisch unter "unrealen" Bedingungen getestet. Die 
SPI Kommunikation ging erst bei 8 MHz (µC) ---> SPI 2 MHz bei 1,5m Kabel 
in die Knie.

Die Kommunikation und damit die Hardware ändern würde jetzt nicht mehr 
gehen, da das den ganzen Zeitplan sprengen würde. Platine erweitern, am 
Display eine Platine hinzufügen.Trotzdem Super vielen Dank für eure 
ganzen Tipps.

Ich lege jetzt den Schirm des Kabels am Bildschirm auch noch an GND und 
schaue mich noch nach einen verdrillten Kabel um.

Die durchschnittliche Fehlerhäufigkeit ist so, dass ich ca alle 3 min 
einen Fehler bekomme.

Ich habe die Software jetzt so geändert, dass das Display sich alle 10 
Sekunden neu initialisiert. Das bedeutet, dass Pixelfehler dann 
verschwinden, es sei denn beim nächsten Beschreiben gibt es direkt den 
nächsten Fehler.
Leider geht das Bild dann immer für ein paar ms weg, sonst würde ich das 
Initialisieren auch jede Sekunde machen.

Der Mikrocontroller muss unter der Sitzbank, weil ich dort Daten aus den 
Steuercomputer abgreife und die nicht alle zum Lenkrad führen will.

Verbesserungsvorschläge sind weiter gerne gesehen.
Angehängte Dateien:
#5308215
Lesenswert?

@ Heinz (Gast)

>Die Kommunikation und damit die Hardware ändern würde jetzt nicht mehr
>gehen, da das den ganzen Zeitplan sprengen würde.

Naja, MINIMALE Änderungen sollten drin sein. U.A. ein 
Serienterminierung. Pack ca. 33 - 68 Ohm an die SPI Ausgänge deines uC.

Siehe Wellenwiderstan.

>Die durchschnittliche Fehlerhäufigkeit ist so, dass ich ca alle 3 min
>einen Fehler bekomme.

Ach herje, das ist ja soooo vieeeeel! Ich wette, die meisten, incl. mir, 
sind von dauerhaften Störungen im Sekundenbereich ausgegangen!
Moderator (Firma: Titel) Persönliche Seite #5308449
Lesenswert?

Heinz schrieb:
> dass das Display sich alle 10 Sekunden neu initialisiert.
> Leider geht das Bild dann immer für ein paar ms weg, sonst würde ich das
> Initialisieren auch jede Sekunde machen.
Wenn du es "nur" komplett neu beschreibst kannst du dir evtl. das 
Flackern ersparen. Oder verliert das Display auch noch die Konfiguration 
und muss deshalb neu initialisiert werden?
Gast #5308658
Lesenswert?

Lothar M. schrieb:
> Heinz schrieb:
>> dass das Display sich alle 10 Sekunden neu initialisiert.
>> Leider geht das Bild dann immer für ein paar ms weg, sonst würde ich das
>> Initialisieren auch jede Sekunde machen.
> Wenn du es "nur" komplett neu beschreibst kannst du dir evtl. das
> Flackern ersparen. Oder verliert das Display auch noch die Konfiguration
> und muss deshalb neu initialisiert werden?

Ja, leider ist das der Fall.
Friert dann sozusagen alles ein.

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