mikrocontroller.net

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


Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dazu müsste man noch wissen, wie lang ist lang? In Millimetern?

Stephan.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Realplotter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das einfachste wird sein, die Geschwindigkeit etwas zurueck zu nehmen

Autor: Ralph (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Realplotter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ralph (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: opacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht 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).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.