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
@ 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
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
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.
@ 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
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...
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
@ Harald Horn (harald_horn)
>preview image for fehlerbild.JPGBildformate>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
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
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
@ 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
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
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
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
@ 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
@ 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
@ 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
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
@ 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
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
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
@ 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
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
@ 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
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
@ 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
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
@ 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
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
@ 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
@ 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