Forum: Mikrocontroller und Digitale Elektronik Probleme mit SPI evtl schlechtes PCB layout


von Michael (Gast)


Lesenswert?

Hallo ,

ich benutze 3 Stück stp16c596 bzw. mbi5026 LED driver. Ich habe da ein 
jetzt ein Problem wo ich nicht genau weiß woran es liegt. Und zwar kann 
ich bei einem der 3 led driver nicht alle LEDs gleichzeitig anschalten, 
die flackern nur kurz auf, einzelnd kann ich alle LEDs nacheinander 
anschalten. Bei den andern beiden led drivern kann ich auch alle LEDs 
gleichzeitig anschalten.

Bei dem Led driver der nicht richtig geht ist die Data Leitung ca. 3 mal 
länger als die Clock Leitung kann es daran liegen?

Wenn es am Platinenlayout liegt wie kann ich das evtl. noch flicken, 
also irgendwo Wiederstände und/oder Kondensatoren hinlöten?

Gruß,Michael :)

von Stephan (Gast)


Lesenswert?

Dazu müsste man noch wissen, wie lang ist lang? In Millimetern?

Stephan.

von Michael (Gast)


Lesenswert?

Also die beiden die Funktionieren : Data,Clock je ca.200mm
Der Problemchip: Clock ca.60mm Data ca.350mm :(

Leider ist was beim Layout was schief gelaufen. siehe Bild.

von Realplotter (Gast)


Lesenswert?

Das einfachste wird sein, die Geschwindigkeit etwas zurueck zu nehmen

von Ralph (Gast)


Lesenswert?

Es liegt daran.

Data Leitungen und Clock müssen gleichlang sein. Optimalerweise parallel 
geroutet.

Die Datenübernahme erfolgt bei einer der Clock Flanken. Kommt das 
Datensignal später (dazu reichen auch schon ns) ist das ausgelesene 
Datenbyte soetwas wie eine Zufallszahl.

von Realplotter (Gast)


Lesenswert?

Nen, nee. Schau das Datenblatt zum SPI transfer nochmals an. Die Daten 
muessen vorher anliegen und nachher noch etwas anstehen. Das nennt sich 
Setup- und Holdtime. Die Daten werden ueblicherweise mit fallender 
flanke auf den SPI ausgegeben und mit steigender Flanke gelatcht. Dh man 
hat einen halben Zyklus zeit.

von Ralph (Gast)


Lesenswert?

Dieses interne Timing macht die Hardware, es funktionier aber NUR wenn 
die Leitungen gleich lang sind.

Und ob bei steigender oder fallender Flanke übernommen wird, ist 
Einstellungssache.

von Martin (Gast)


Lesenswert?

> Die Datenübernahme erfolgt bei einer der Clock Flanken. Kommt das
> Datensignal später (dazu reichen auch schon ns) ist das ausgelesene
> Datenbyte soetwas wie eine Zufallszahl.

> Dieses interne Timing macht die Hardware, es funktionier aber NUR wenn
> die Leitungen gleich lang sind.

Da bist du aber auf dem Holzweg.

Sicherlich ist es so, das bei sehr hohen Geschwindigkeiten die 
Signallaufzeit eine Rolle Spielt, aber das ist bei 350mm und wenigen MHz 
noch nicht der Fall. Testen kann man das aber trotdem, Geschwindigkeit 
drosseln. Eher spielen igrendwelche kapazitiven Einkopplungen eine 
Rolle.

Wenn du sagst einzelne LED gehen alle zusammen aber nicht, ist es evtl 
auch ein Stromversorgungsproblem.

von Andreas K. (a-k)


Lesenswert?

> siehe Bild.

Ich seh nix.

Wie sieht der Drahtverhau denn insgesamt aus? Eine Clock-Leitung für 
alle, gabelfürmig, oder hintereinander oder...

Was du mal probieren kannst: 100 Ohm Widerstand in die SPI-Taktleitung 
reinschleifen, direkt am Pin vom Master.

von Michael (Gast)


Angehängte Dateien:

Lesenswert?

>Ich seh nix.
Ups ... neuer Versuch


>Wenn du sagst einzelne LED gehen alle zusammen aber nicht, ist es evtl
>auch ein Stromversorgungsproblem.

Hab ich auch dran gedacht. Aber ich kann mit den zwei "guten" LED 
Treibern 32 LEDs auf einmal einschalten. Mit dem "problem" Led Treiber 
kann ich max. 7-8 LEDs einschalten.

von opacer (Gast)


Lesenswert?

Vielleicht ist auch einfach der "schlechte" Led Treiber defekt ..

Bei 210mm unterschied zwischen Clock und Data hast du rund 2ns 
Laufzeitunterschied. Schau mal im Datenblatt nach ob das in der Toleranz 
liegt. Wie schnell taktest du?

von Falk (Gast)


Lesenswert?

@Ralph (Gast)

>Es liegt daran.
>Data Leitungen und Clock müssen gleichlang sein. Optimalerweise parallel
>geroutet.

So ein BLÖDSINN!!

Die paar MHz sind SCHNARCHLANGSAM im Gegensatz zur Laufzeit der Signale. 
Ausserdem werden bei fast allen ICs mit SPI die Daten auf der einen 
Flanke geschrieben und auf der anderen gelesen.

MFG
Falk

von Andreas K. (a-k)


Lesenswert?

Die Laufzeit ist in dieser Dimension nicht kritisch, wohl aber die 
Qualität des Taktsignals. Wenn das an irgendeiner Stelle arg klingelt, 
kann es schon mal dazu kommen, dass eines der Schieberegister mit einem 
einzigen Taktzyklus mehrere Bits durchschiebt. Dieser Effekt ist dann 
unabhängig von der Taktfrequenz.

Abhilfe dann: Der oben erwähnte Serienwiderstand kann helfen, sauberes 
Leitungsdesign, Abschluss usw - oder schnarchlangsame Bausteine 
(CD4000).

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.