Forum: Mikrocontroller und Digitale Elektronik SPI-Vermutlich Reflektion auf der Leitung - was tun?


von Harald H. (harald_horn)


Lesenswert?

Hallo,

ich hab hier ein kleines, aber hartnäckiges Problem mit der 
SPI-Verkabelung.
Es handelt sich um folgenden Aufbau:
Das Gerät besteht aus einer Hauptplatine und zwei Frontplatinen; 
letztere beherbergen jeweils 12 DOG-Displays sowie zwei Schieberegister 
74HC595.
Auf der Hauptplatine befinden sich weitere 4 Schieberegister. Die 
Schieberegister sind als Kaskade Geschaltet (Q'H -> SER usw.).
Angebunden sind sie an die SPI-Schnittstelle eines AT90CAN128 über ein 
Transmissiongate 4052. Mit dem 4052 kann entweder die 
Schieberegisterkaskade oder die LCDs an SCK&MOSI des AT geschaltet 
werden.
(Zur Erklärund: Die Schieberegister steuern diverse Relais sowie die 
CS-Eingänge der LCDs.).
Die beiden Frontplatinen mit den Displays sind jeweils über ca. 15cm 
lange Flachbandkabel mit der Hauptplatine verbunden. MOSI führt von 
Frontplatine 1 zu Frontplatine 2.

Und jetzt kommt das Problem: Hinter dem zweiten Schieberegister auf der 
ersten Frontplatine bekomme ich ein stark verändertes Ausgangssignal auf 
MOSI; es sieht im Oszillogramm aus, als ob Bits "zusammengerutscht" 
wären. Der Effekt verschwindet, wenn man die nachgeschaltete zweite 
Platine aussteckt. Daher vermute ich, daß es sich um eine Reflektion auf 
der Leitung handelt.
Vertauscht man beide Platinen, ändert sich nichts.

Hat jemand irgend eine Ahnung, was man dagegen machen kann? Das SPI hab 
ich schon so weit möglich heruntergetaktet.

Kann man die Leitung irgendwie terminieren? Was wäre ausichtsreiche Wert 
für ein RC-Glied?

TIA,
Harald

von Falk B. (falk)


Lesenswert?

@ Harald Horn (harald_horn)

>Die beiden Frontplatinen mit den Displays sind jeweils über ca. 15cm
>lange Flachbandkabel mit der Hauptplatine verbunden. MOSI führt von
>Frontplatine 1 zu Frontplatine 2.

Ich hoffe, dass weniogsten eine Ader auf dem Flachbandkabel mit masse 
beschaltet ist, in zwar an beiden Enden. Idealerweise neben SCK.

>Und jetzt kommt das Problem: Hinter dem zweiten Schieberegister auf der
>ersten Frontplatine bekomme ich ein stark verändertes Ausgangssignal auf
>MOSI; es sieht im Oszillogramm aus, als ob Bits "zusammengerutscht"
>wären. Der Effekt verschwindet, wenn man die nachgeschaltete zweite
>Platine aussteckt. Daher vermute ich, daß es sich um eine Reflektion auf
>der Leitung handelt.

Klingt eher wie ein arger Layoutfehler oder Kurzschluss. Wie hast du 
gemessen? Mit welchem Tastkopf und welchem Oszillospok (Bandbreite).

>Vertauscht man beide Platinen, ändert sich nichts.

Was meinst du damit? Gleicher Fehler oder kein Fehler mehr?

>Hat jemand irgend eine Ahnung, was man dagegen machen kann? Das SPI hab
>ich schon so weit möglich heruntergetaktet.

Dann klingt es erst recht nach Kurzschluss/Layoutfehler. Oder 
messfehler. Um bei den Leitungslängen Reflexionen zu sehen braucht man 
schon 100 MHz +++ am Scope.

>Kann man die Leitung irgendwie terminieren? Was wäre ausichtsreiche Wert
>für ein RC-Glied?

Erstmal richtig messen un analysieren.

MfG
Falk

von Harald H. (harald_horn)


Lesenswert?

Hallo Falk,

Falk Brunner wrote:
> @ Harald Horn (harald_horn)
>
>>Die beiden Frontplatinen mit den Displays sind jeweils über ca. 15cm
>>lange Flachbandkabel mit der Hauptplatine verbunden. MOSI führt von
>>Frontplatine 1 zu Frontplatine 2.
>
> Ich hoffe, dass weniogsten eine Ader auf dem Flachbandkabel mit masse
> beschaltet ist, in zwar an beiden Enden. Idealerweise neben SCK.

GND liegt mit auf dem Kabel. Was meinst du mit beiden Enden? Daß die 
Masseleitung eine Schleife bildet?

> Klingt eher wie ein arger Layoutfehler oder Kurzschluss.

Halte ich für unwahrscheinlich,  die bezogen auf den Kontroller als 
erste angeschlossene Leiterplatte funktioniert ja (Und abgesehen von den 
Leitungslängen ist bei ihr nichts anders.). Dazu kommt noch, daß ich auf 
Platine #2 ja auf allen Leitungen die entsprechenden Signale messe.
Aber ich werde das morgen mit frischem Kopf trotzdem nochmal 
kontrollieren.

>Wie hast du gemessen? Mit welchem Tastkopf und welchem Oszillospok (Bandbreite).

Typ des Tastkopfs weiß ich jetzt nicht auswendig, bin inzwischen daheim. 
Oszi ist ein Tektronix TDS5000irgendwas bis 1GHZ. Tastkopf ist ebenfalls 
bis 1GHZ angegeben.
Das mit der Reflektion hab ich inzwischen auch verworfen, weil bei ~8kHz 
Takt eher unwahrscheinlich. Aus irgenwelchen Gründen kippt das 
entsprechende Bit.

>>Vertauscht man beide Platinen, ändert sich nichts.
>
> Was meinst du damit? Gleicher Fehler oder kein Fehler mehr?

Die beiden Frontplatinen sind gleich, das hab ich noch nicht erwähnt, 
glaub´ich. Wenn man sie tauscht, bleibt der Fehler bestehen. Er ist also 
nicht einer bestimmten Platine zuzuordnen, sondern hängt eindeutig von 
der Reihenfolge der Leiterplatten relativ zum Kontroller ab.

>>Hat jemand irgend eine Ahnung, was man dagegen machen kann? Das SPI hab
>>ich schon so weit möglich heruntergetaktet.
>
> Dann klingt es erst recht nach Kurzschluss/Layoutfehler. Oder
> messfehler. Um bei den Leitungslängen Reflexionen zu sehen braucht man
> schon 100 MHz +++ am Scope.

Ist vorhanden :-). Sogar mit Digitalphosphor (der einem dann eine 
hübsche, dünne blaue Linie zeigt, wo vorher mal das Bit war...).

>>Kann man die Leitung irgendwie terminieren? Was wäre ausichtsreiche Wert
>>für ein RC-Glied?
>
> Erstmal richtig messen un analysieren.

Ok. Wie gesagt, ich werde das Layout nochmal kontrollieren. Aber was 
diese Variante noch unwahrscheinlicher mach, ist daß auf der relativ zum 
Kontroller zweiten Platine der gleiche Fehler nochmals zwischen den 
Beiden Schieberegistern auf der gleichen Leiterplatte auftaucht (d.h., 
da verschwindet nochmal ein Bit.)
Für einen Messfehler spricht dabei allerdings, daß man auf der Platine 
den Fehler abhängig davon sieht, an welchem Ende der Leiterbahn man 
misst.
Und dagegen spricht wieder, daß sich die angesteuerten Displays (ohne, 
daß gerade gemessen wird) ungefähr dem gemessenen Fehlerbild 
entsprechend verhalten.

Gruß,
Harald

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Ich würde keinen 4052 nehmen, sondern 1 bis 2 4-fach AND-Gates und dann 
auch einen HC/HCT-Typen. Nur der kann die eventuell bis 8Mhz gehenden 
SPI-Signale schnell genug schalten. Ein normaler 4052 macht bereits bei 
ein paar Mhz schlapp und verschleift die Flanken (un)anständig.

von Falk B. (falk)


Lesenswert?

@  Harald Horn (harald_horn)

>GND liegt mit auf dem Kabel. Was meinst du mit beiden Enden? Daß die
>Masseleitung eine Schleife bildet?

Nein, damit es eine kurze Masserückleitung gibt.

>Das mit der Reflektion hab ich inzwischen auch verworfen, weil bei ~8kHz
>Takt eher unwahrscheinlich. Aus irgenwelchen Gründen kippt das
>entsprechende Bit.

FALSCH! Die Taktfreqeunz ist egal, die Anstiegszeit ist das Problem.

Wellenwiderstand

Mach mal nen Screenshot.

>nicht einer bestimmten Platine zuzuordnen, sondern hängt eindeutig von
>der Reihenfolge der Leiterplatten relativ zum Kontroller ab.

Hmmm.

>Ist vorhanden :-). Sogar mit Digitalphosphor (der einem dann eine

Nobel geht die Welt zugrunde. ;-)

MFG
Falk

von Harald H. (harald_horn)


Angehängte Dateien:

Lesenswert?

Hallo Falk,

habe heute noch ein paar Oszillogramme des Fehlers gemacht, sind 
angehängt.
Noch einige Details zum Aufbau:
Die Schieberegister sind entsprechend ihrer Position in der Kaskade 
relativ zum MC nummeriert, d.h. SR1 ist das erste, SR6 das sechste 
Schieberegister nach dem MC.
SR1-SR4 befinden sich auf der Hauptplatine.

Der Fehler wirkt sich inzwischen -oder eben gerade heute- auch auf 
SR1...SR4 aus, was vorher nicht so war.

Das obere Oszillogramm zeigt das Ausgangssignal des MC, das Clock-Signal 
am MC und das Ausgangssignal an Q'H von SR1; das mittlere und das untere 
Oszillogram zeigt jeweils den Ausgang von SR6 (2. Schieberegister auf 
der Linken Frontplatine; von dort aus geht es zurück zur Hauptplatine 
und von dort zur rechten Frontplatine). Die unteren beiden Oszillogramme 
sind beispielhaft zwei unterschiedliche Ausprägungen des selben Fehlers, 
d.h., es treten diese und auch noch andere Fehlerbilder auf, wenn die 
linke Platine angeschlossen ist.

Ich hoffe, das Material ist hilfreich.

Gruß und TIA,
Harald

EDIT: Ich sehe gerade, daß sich das Signal hinter SR6 um einen halben 
Clock-Zyklus verschoben zu haben scheint...

von Peter D. (peda)


Lesenswert?

Harald Horn wrote:

> Angebunden sind sie an die SPI-Schnittstelle eines AT90CAN128 über ein
> Transmissiongate 4052. Mit dem 4052 kann entweder die
> Schieberegisterkaskade oder die LCDs an SCK&MOSI des AT geschaltet
> werden.

Zeig mal den Schalplan.

Der 4052 ist als Ausgangsmultiplexer denkbar schlecht geeignet, die 
nicht selektierten Anschlüsse floaten lustig in der Gegend herum.
Daß nur Mist passiert, ist also normal.

Nimm nen richtigen Dekoder (z.B. 74HC138).


Peter

von Falk B. (falk)


Lesenswert?

@ Harald Horn (harald_horn)

>preview image for fehlerbild.JPG

Bildformate

>SR1-SR4 befinden sich auf der Hauptplatine.

Ein Schaltplan wäre auch ganz brauchbar.

Das erste Oszillogramm ist relativ nichtssagend, da mit 8 Takten Daten 
reingeschoben werden und gleichzeitig die Daten. welcher vorher 
reingeschrieben wurden, wieder rausgeschoben werden. Du müsstest auf 
jeden Fall mal zwei Übertragungen direkt hintereinander aufnehmen. Das 
gilt auch für die anderen Messungen.

>EDIT: Ich sehe gerade, daß sich das Signal hinter SR6 um einen halben
>Clock-Zyklus verschoben zu haben scheint...

Warum? Die 74xx595 schalten auf der steigenden Flanke, das ist OK. Alle 
anderen Screenshots zeigen das Gleiche. Wenn scheinbar Bits verschluckt 
werden kann das ein Hinweis auf Reflexionen sein. Das kann man messen, 
gutes Equipment hast du ja. Also schau dir die Flanken des Taktes mal 
bei 10ns/DIV an, an allen Schieberegistern. Und bitte ordentliche 
Masseanbindung für den Tastkopf verwenden!

Du kannst mal eine AC-Terminierung für SCK versuchen, 100 Ohm und 220pF 
sind ein guter Ausgangspunkt.

Wellenwiderstand

MFG
Falk

von Harald H. (harald_horn)


Lesenswert?

Hallo Peter,

> Der 4052 ist als Ausgangsmultiplexer denkbar schlecht geeignet, die
> nicht selektierten Anschlüsse floaten lustig in der Gegend herum.
> Daß nur Mist passiert, ist also normal.

Die Augänge hier liegen über Pull-Ups immer auf einem definierten 
Potential.

> Nimm nen richtigen Dekoder (z.B. 74HC138).

Bin leider schon an den 4052 gebunden. Aber das nächste mal schau ich 
mir das mal an.

Gruß,
Harald

von Harald H. (harald_horn)


Angehängte Dateien:

Lesenswert?

Hier erstmal der Schaltplan.

Gruß,
Harald

von Peter D. (peda)


Lesenswert?

Harald Horn wrote:

> Die Augänge hier liegen über Pull-Ups immer auf einem definierten
> Potential.

Sollten aber wenigstens schön niederohmig sein (<1k), wenns sogar auf 
andere Platinen geht.

> Bin leider schon an den 4052 gebunden. Aber das nächste mal schau ich
> mir das mal an.

Hoffentlich dann aber wenigstens die 5V-Typen 74HC4052, denn die 
Hochvolttypen CD4052 sind bei nur 5V noch sehr hochohmig (>1k).


Peter

von Falk B. (falk)


Lesenswert?

@ Harald Horn (harald_horn)

>> Nimm nen richtigen Dekoder (z.B. 74HC138).

>Bin leider schon an den 4052 gebunden. Aber das nächste mal schau ich
>mir das mal an.

So schlecht ist der nicht, 5..15ns Durchlaufverzögerung bei 4,5V ist OK, 
auch für 8 MHz Takte (125ns).

MFG
Falk

von Harald H. (harald_horn)


Lesenswert?

Hallo Falk,

> Ein Schaltplan wäre auch ganz brauchbar.

[X] Done.

> Das erste Oszillogramm ist relativ nichtssagend, da mit 8 Takten Daten
> reingeschoben werden und gleichzeitig die Daten.

Man sieht das in der Zoom-Darstellung jetzt natürlcih nicht mehr, aber 
ich habe vorhin im Labor natürlich zwei Übertragungen hintereinander 
beobachten können, und auch das vorhergehende Byte sad h aus wie das 
abgebildete.

> Du kannst mal eine AC-Terminierung für SCK versuchen, 100 Ohm und 220pF
> sind ein guter Ausgangspunkt.

Werd´ ich gleich mal machen, danke.

Gruß,
Harald

von Peter D. (peda)


Lesenswert?

Falk Brunner wrote:

> So schlecht ist der nicht, 5..15ns Durchlaufverzögerung bei 4,5V ist OK,

Das ist ein Analogschalter, der hat keine Verzögerung.
Der hat nur einen Innenwiderstand, der mit der Schaltungskapazität einen 
RC-Tiefpaß bildet.

Es geht aber hauptsächlich um die nicht durchgeschalteten Ausgänge.
Da würde ich riesige 10k Pullup als super Antenne für Störungen 
bezeichnen.
10k eignen sich bestenfalls für Tasten, die noch per Software entprellt 
werden.


Peter

von Harald H. (harald_horn)


Angehängte Dateien:

Lesenswert?

Hallo,

hier einige Aufnahmen von den Signalflanken am Eingang der 2. Platine.

Gruß,
Harald

von Harald H. (harald_horn)


Lesenswert?

Also... ...Anstiegszeit ca. 20ns. 20ns/6 = 3,33ns. 3,33ns*21m/ns = ca. 
70m.
Die Länge alleine kann´s dann nicht sein, oder? Ich werde das jedenfalls 
mal mit der vorgeschalagenen Terminierung versuchen.

Gruß,
Harald

von Falk B. (falk)


Lesenswert?

@ Peter Dannegger (peda)

> So schlecht ist der nicht, 5..15ns Durchlaufverzögerung bei 4,5V ist OK,

>Das ist ein Analogschalter, der hat keine Verzögerung.

Ach ja? Dann solltest du das vielleicht mal den Jungs von NXP 
näherbringen.
Oder das Datenblatt nebst Schaltbild studieren.

http://www.standardics.nxp.com/products/hc/pdf/74hc4052.hct4052.pdf

>Da würde ich riesige 10k Pullup als super Antenne für Störungen
>bezeichnen.
>10k eignen sich bestenfalls für Tasten, die noch per Software entprellt
>werden.

Paranoia. Sooo lang sind die Kabel nicht, 10K passt schon. Die 
Starkstromtechnik der TTL-Ära haben wir hinter uns.

MFG
Falk

von Falk B. (falk)


Lesenswert?

@ Harald Horn (harald_horn)

>Dateianhang: flanke.PNG (296,2 KB, 3 Downloads)

Hast du den Artikel KOMPLETT in RUHE gelesen? Dein Bild ist mit PNG 
grösser als mit JPG.
PNG ist richtig, aber 256 Farben tuns auch. Damit ist das Bild nur noch 
61kB.

>hier einige Aufnahmen von den Signalflanken am Eingang der 2. Platine.

Naja, MOSI ist unkritisch, das wird abgetastet. SCK ist das Problemkind! 
Und es wird wahrscheinlich schlimmer als MOSI aussehen, das hat ja schon 
sichtbare Stufen, nahe VCC/2. Ein Terminierungsproblem wird immer 
wahrscheinlicher.

MfG
Falk

von Falk B. (falk)


Lesenswert?

@ Harald Horn (harald_horn)

>Also... ...Anstiegszeit ca. 20ns.

Wie kommst du darauf? In deinen Screenshots sehe ich eher 5ns.

> 20ns/6 = 3,33ns.

Mathematisch richtig, aber bei 5ns sind wir eher bei 0,83ns.

> 3,33ns*21m/ns = ca.70m.

Mathematisch richtig, physikalisch Unsinn. Die 
Ausbreitungsgeschwindigkeit ist eher 21_C_m/ns
Macht also 0,83 * 20 ~17cm. Aber das gilt nur bei halbwegs 
impedanzrichtiger Leitung. Und schon gar nicht bei Y-Verzweigungen, wie 
du sie für SCK verwendest.

>Die Länge alleine kann´s dann nicht sein, oder? Ich werde das jedenfalls

Doch.

>mal mit der vorgeschalagenen Terminierung versuchen.

Tu das.

MFG
Falk

von Peter D. (peda)


Lesenswert?

Falk Brunner wrote:

> Paranoia. Sooo lang sind die Kabel nicht, 10K passt schon. Die
> Starkstromtechnik der TTL-Ära haben wir hinter uns.

Aber auch deren Langsamkeit. Moderne CMOS reagieren schon recht fix auf 
kurze Schaltflanken, insbesondere durch ihren Hochohmigkeit.
Bei TTL hatte ich grundsätzlich unbenutzte Eingänge offen gelassen, bei 
LS-TTL ging das schon nicht mehr.


Ob das Paranoia ist, müßte man erstmal nachprüfen.
Schließlich haben die beiden FETs im Schalter ja auch eine D-S-Kapazität 
im offenen Zustand (Crosstalk). Mit den riesigen 10k könnte das schon 
ausreichen, schmale SCK-Impulse durchzulassen.

Ich nehme daher für Digitalsignale auch digitale Multiplexer, die haben 
immer niederohmigen High/Low-Pegel.


Peter

von Falk B. (falk)


Lesenswert?

@ Peter Dannegger (peda)

>Ob das Paranoia ist, müßte man erstmal nachprüfen.
>Schließlich haben die beiden FETs im Schalter ja auch eine D-S-Kapazität
>im offenen Zustand (Crosstalk).

Sicher. Aber was soll der Pull-Up dort bewirken? Wenn es IM IC koppelt 
hat der Pull-Up keinerlei Wirkung, egal ob gross oder klein.

> Mit den riesigen 10k könnte das schon
>ausreichen, schmale SCK-Impulse durchzulassen.

Und bei rein kapazitiver Kopplung (zwischen den Leitungen) und relativ 
niederohmiger Quelle hat die Grösse des Pull-Ups keinen Einfluss auf die 
eingekopplete Störamplitude. Ein RC-Hochpass hat immer die volle 
Amplitude am Ausgang, egal wie gross R ist.

>Ich nehme daher für Digitalsignale auch digitale Multiplexer, die haben
>immer niederohmigen High/Low-Pegel.

Sicher.

MfG
Falk

von Harald H. (harald_horn)


Angehängte Dateien:

Lesenswert?

Hallo Falk,

Falk Brunner wrote:
> @ Harald Horn (harald_horn)
>
>>Dateianhang: flanke.PNG (296,2 KB, 3 Downloads)
>
> Hast du den Artikel KOMPLETT in RUHE gelesen? Dein Bild ist mit PNG
> grösser als mit JPG.
> PNG ist richtig, aber 256 Farben tuns auch. Damit ist das Bild nur noch
> 61kB.

ich hab hier grade nur Paint zur Verfügung. Dort konnte ich keine 
Einstellmöglichkeit für solche Parameter finden, sorry.
Habe aber gerade festgestellt, daß cih direkt auf dem Oszi auch in .png 
speichern kann, das produziert vernünftige Dateigrößen...

>>hier einige Aufnahmen von den Signalflanken am Eingang der 2. Platine.
>
> Naja, MOSI ist unkritisch, das wird abgetastet. SCK ist das Problemkind!
> Und es wird wahrscheinlich schlimmer als MOSI aussehen, das hat ja schon
> sichtbare Stufen, nahe VCC/2. Ein Terminierungsproblem wird immer
> wahrscheinlicher.

An der CLK-Flanke scheint sich einiges zu tun, sie wird merklich 
flacher.
(Vgl. Bild). Hätte ich aber auch dran denken können... ...für MOSI wird 
die Leitung ja nicht wirklcih länger, da die 74HC595 ja immer ein 
"frisches" Signal liefern. Bei CLK ist das natürlcih anders.

Terminierung werde ich Montag mal ausprobieren, muß erst die Bauteile 
organisieren. Das andere Labor ist schon zu.

Gruß,
Harald

von Harald H. (harald_horn)


Lesenswert?

Hallo Falk,

>>Also... ...Anstiegszeit ca. 20ns.
>
> Wie kommst du darauf? In deinen Screenshots sehe ich eher 5ns.

10ns/Teil, 10%...90% des Endwertes. Oder hab ich mich da mit der 
Definition vertan?

>> 20ns/6 = 3,33ns.
>
> Mathematisch richtig, aber bei 5ns sind wir eher bei 0,83ns.
>
>> 3,33ns*21m/ns = ca.70m.
>
> Mathematisch richtig, physikalisch Unsinn. Die
> Ausbreitungsgeschwindigkeit ist eher 21_C_m/ns

Oups. Da hab ich mich wohl verlesen. :-(.

> Macht also 0,83 * 20 ~17cm. Aber das gilt nur bei halbwegs
> impedanzrichtiger Leitung. Und schon gar nicht bei Y-Verzweigungen, wie
> du sie für SCK verwendest.
>
>>Die Länge alleine kann´s dann nicht sein, oder? Ich werde das jedenfalls
>
> Doch.

Ack.

Gruß,
Harald

von Falk B. (falk)


Lesenswert?

@ Harald Horn (harald_horn)

>Habe aber gerade festgestellt, daß cih direkt auf dem Oszi auch in .png
>speichern kann, das produziert vernünftige Dateigrößen...

Kaum macht man es richtig, schon funktionierts. ;-)

>An der CLK-Flanke scheint sich einiges zu tun, sie wird merklich
>flacher.

Ja, aber sieht erstmal gut aus. Komisch ist, dass die fallende Flanke 
sauber ist, die steigende aber komische Zappeleffekte im oberen Bereich 
liefert. Hmmm.

MFG
Falk

von Harald H. (harald_horn)


Lesenswert?

Hallo,

das Problem konnte ich gerade lösen. Vielen Dank nochmal!

Terminierungsversuche blieben leider erfolglos, daher beschloß ich , in 
die Leitungsführung einzugreifen. Einige unterbrochene Leiterbahnen und 
abgeänderte, kürzere Wege für die Signale haben jetzt tatsächlich 
geholfen.

Gruß,
Harald

von Falk B. (falk)


Lesenswert?

@ Harald Horn (harald_horn)

>das Problem konnte ich gerade lösen. Vielen Dank nochmal!

Schön zu hören.

>die Leitungsführung einzugreifen. Einige unterbrochene Leiterbahnen und
>abgeänderte, kürzere Wege für die Signale haben jetzt tatsächlich
>geholfen.

Was hast du denn unterbrochen und was geändert?

MFg
Falk

von Harald H. (harald_horn)


Lesenswert?

Hallo Falk,

> Was hast du denn unterbrochen und was geändert?

ich hatte MOSI etwas unglücklich geroutet; die Leitung ging von Links 
nach  Rechts durch die Schieberegister auf der Hauptplatine und von dort 
wieder die ganze Platinenbreite (~200mm) zurück zum Anschluß für die 
Linke Displayplatine, durch diese hindurch, zurück zur Hauptplatine, 
wieder quer ´rüber zum anderen Anschluß und von dort in die rechte 
Displayplatine.

Jetzt geht es erst in die rechte Platine und von dort aus in die Linke, 
was erheblich Leitungslänge einspart.

Gruß,
Harald

von Falk B. (falk)


Lesenswert?

@ Harald Horn (harald_horn)

>Jetzt geht es erst in die rechte Platine und von dort aus in die Linke,
>was erheblich Leitungslänge einspart.

Das heisst das Datensignal hat sich Müll eingefangen, nicht der Takt? 
Hmmm, kaum zu glauben. Was hast du denn noch so auf der Platine? 
Irgendwelche starken geschalteten Ströme, DC-DC Wandler, 
Leistungsendstufen? Sind deine Schieberegister mit 100nF an der 
Versorgung entkopplet?

MfG
Falk

von Harald H. (harald_horn)


Lesenswert?

Hallo Falk,

>>Jetzt geht es erst in die rechte Platine und von dort aus in die Linke,
>>was erheblich Leitungslänge einspart.
>
> Das heisst das Datensignal hat sich Müll eingefangen, nicht der Takt?

Ja. Der Takt war überall sauber. Interessanterweise konnten die 
Reflektionen die kaskadierten Schieberegister rückwärts "durchdringen".
Nach der Lektüre des Artikels über Leitungstheorie hier erscheint es mir 
aber nicht so abwegig, daß das Datensignal stärker gefährdet ist: 
Schließlich  bekommt es in jedem Schieberegister frische, messerscharfe 
Flanken verpasst. (Ist nur so ein Idee...)

> Hmmm, kaum zu glauben. Was hast du denn noch so auf der Platine?
> Irgendwelche starken geschalteten Ströme, DC-DC Wandler,
> Leistungsendstufen?

Auf der Platine selbst gibt es davon nichts; auf der separaten 
Stromversorgung sitzt allerdings ein Schaltregler, die die 
Hintergrundbeleuchtung der LCDs (LEDs, ~1A insgesamt) versorgt.
Diesen Schaltregler hatte ich auch als erstes mal versuchsweise 
stillgelegt, er hat aber definitif keinen Einfluß. (Inzwischen arbeitet
er wieder, und es sind nirgends Störungen zu beobachten.)

> Sind deine Schieberegister mit 100nF an der
> Versorgung entkopplet?

Jepp.

Gruß,
Harald

von Falk B. (falk)


Lesenswert?

@ Harald Horn (harald_horn)

>Ja. Der Takt war überall sauber. Interessanterweise konnten die
>Reflektionen die kaskadierten Schieberegister rückwärts "durchdringen".

???
Was meinst du damit?

>Nach der Lektüre des Artikels über Leitungstheorie hier erscheint es mir
>aber nicht so abwegig, daß das Datensignal stärker gefährdet ist:
>Schließlich  bekommt es in jedem Schieberegister frische, messerscharfe
>Flanken verpasst. (Ist nur so ein Idee...)

Nein, definitiv nicht. Denn du hast ja nach eigenen Angaben die SPI 
stark runtergetaktet und es gab immer noch Fehler. Die Daten müssen ja 
nur ganz kurz vor und nach der Taktflanke stabil anliegen (ein paar 
dutzend Nanosekunden), das reicht.

> Sind deine Schieberegister mit 100nF an der
> Versorgung entkopplet?

>Jepp.

Merkwürdig.

MfG
Falk

von Harald H. (harald_horn)


Lesenswert?

Hallo Falk,

>>Ja. Der Takt war überall sauber. Interessanterweise konnten die
>>Reflektionen die kaskadierten Schieberegister rückwärts "durchdringen".
>
> ???
> Was meinst du damit?

MOSI ist ja nicht durchgehend verlegt, sondern von Schieberegister zu 
Schieberegister. Wenn ich z.B. die zweite Platine mit angeschlossen 
hatte, dann wirkte sich die Störung "rückwärts" durch mehrere 
Schieberegister aus, nicht nur auf den Ausgang des letzten 
Schieberegisters vor der zweiten LCD-Platine.

>>Schließlich  bekommt es in jedem Schieberegister frische, messerscharfe
>>Flanken verpasst. (Ist nur so ein Idee...)
>
> Nein, definitiv nicht. Denn du hast ja nach eigenen Angaben die SPI
> stark runtergetaktet und es gab immer noch Fehler. Die Daten müssen ja
> nur ganz kurz vor und nach der Taktflanke stabil anliegen (ein paar
> dutzend Nanosekunden), das reicht.

Hmm. Ich versteh nicht, was du meinst. Ein Schieberegister besteht AFAIK 
aus mehreren Flipflops; d.h. wenn ich jetzt ein Signal mit Flanken, die 
aus  welchen Gründen auch immer flacher geworden sind, durch das 
Schieberegister schicke, dann erzeugt diese ja am Ausgang wieder eine 
steilere Flanke.

Gerade habe ich aber was ganz neues herausgefunden: Ich wollte die 
Modifikationen noch ein wenig sorgfältiger gestalten und verwendete 
anstatt einer Litze, die MOSI quer über die Hauptplatine schickt, eine 
der nicht mehr benötigeten Leiterbahnen, und: siehe da! kam der Fehler 
zurück.
Eine überprüfunf im Layout ergab, daß auf der anderen Platinenseite zu 
dieser Leiterbahn +5V parallel laufen.

Gruß,
Harald

von Falk B. (falk)


Lesenswert?

@ Harald Horn (harald_horn)

>MOSI ist ja nicht durchgehend verlegt, sondern von Schieberegister zu
>Schieberegister. Wenn ich z.B. die zweite Platine mit angeschlossen
>hatte, dann wirkte sich die Störung "rückwärts" durch mehrere
>Schieberegister aus, nicht nur auf den Ausgang des letzten
>Schieberegisters vor der zweiten LCD-Platine.

Dann ist noch was anderes faul. Und ich tippe auf den Takt. Kanns im 
Moment aber nicht genauer erklären.

>Hmm. Ich versteh nicht, was du meinst. Ein Schieberegister besteht AFAIK
>aus mehreren Flipflops; d.h. wenn ich jetzt ein Signal mit Flanken, die
>aus  welchen Gründen auch immer flacher geworden sind, durch das
>Schieberegister schicke, dann erzeugt diese ja am Ausgang wieder eine
>steilere Flanke.

Ja und? Ist doch OK.

>Eine überprüfunf im Layout ergab, daß auf der anderen Platinenseite zu
>dieser Leiterbahn +5V parallel laufen.

Das ist doch kein Problem. Ich vermute, dass da irgendwas sehr bösartig 
von den Daten auf den Takt überkoppelt. Vor allem lange Leitungen mit 
schlechter Masseführung machen das. Wie ist die Masse auf deinem Board?

Mach mal nen Dauertest mit 0x55 in einer Endlosschleife. Damit kannst du 
Bitfehler ganz gut erkennen (Messung mit Infinite Persistence).

MFG
Falk

von Peter D. (peda)


Lesenswert?

Setz einfach mal die Pullups von den riesigen 10k auf 1k runter.


Peter

von Falk B. (falk)


Lesenswert?

@ Peter Dannegger (peda)

>Setz einfach mal die Pullups von den riesigen 10k auf 1k runter.

Peter, wieder mal auf dem Starkstrom-Trip?

Wenn du die Schilderung der Fehler mal überdacht hättest, wäre dir 
aufgefallen, dass es KEINE Übersprechen auf hochohmige Leitungen gibt, 
sondern Aussetzer im aktiven Fall, wenn die Leitungen aktiv vom uC über 
den MUX getrieben werden. Die 10K sind damit quasi unsichtbar! Ebenso 
wie die 1K nichts nenenswertes ausrichten. OK, 100 Ohm würden den AVR 
ins Schwitzen bringen. Willst du das?

MfG
Falk

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.