Frage zum Layout SPI CLK

Gast #2412242
Lesenswert?

Hi,

ich sitz gerade am Layout einer 8X8 RGB Matrix und hab ein paar Fragen 
zur Verteilung des SPI_CLK Signals.

Er wird an allen 8 LED-Treibern benötigt und soll max 10MHz liefern.
Brauch ich hierfür einen IC zur Aufteilun des Taktes oder kann ich alle 
Treiber direkt an den Ausgang des PICs hängen?
Sofern es mit dem einen Ausgang geht wie verteile ich es am besten 8 
möglichst gleichlange Leiterbahnen die zusammenlaufen oder eine lange 
Leiterbahn zu den 8 Treibern?




Danke schonmal im vorraus!
Angehängte Dateien:
#2413531
Lesenswert?

Rechne einfach mal die Datenrate aus, die du benötigst:
30 Bilder pro Sekunde bei 64 Bildpunkten mit 2 Bit Farbtiefe:

30*128=3840 Bit Pro Sekunde.


> Sofern es mit dem einen Ausgang geht wie verteile ich es am besten 8
> möglichst gleichlange Leiterbahnen die zusammenlaufen oder eine lange
> Leiterbahn zu den 8 Treibern?

Denk mal drüber nach, was dir was bringt. 8 gleichlange Leiterbahnen 
bringen gleiche Laufzeiten. Über die gesamte Länge liegen die 
Laufzeitunterschiede aber nur im ps-Bereich. Spielt das bei einer 
LED-Matrix wirklich eine Rolle?
Darüber hinaus bildet jede Leiterbahn eine Kapazität. Du musst also beim 
Umladen des CLK-Signals die achtfache Kapazität betrachten. Aber auch 
das spielt bei deinem Problem keine Rolle.
Was mir hier fehlt, ist ein Chipselect. Ohne wirst du nur 8 1x8-Matrizen 
bauen.
Gast #2413588
Lesenswert?

Danke erstmal für deine Antwort!

Frank Bär schrieb:
> Was mir hier fehlt, ist ein Chipselect. Ohne wirst du nur 8 1x8-Matrizen
> bauen.

Das ganze ist als dasy chain aufgebaut, der SS oder CS dient der 
Übernahme des gesammten Registers (8*24 bit).
f_PWM_min sollte bei 100Hz liegen, die PWM_res bei 8bit.
Damit komm ich auf f_SPI_min = 8*24 * 2^8 * 100Hz = 4,9152MHz...
#2413682
Lesenswert?

@  NARF (Gast)

>Er wird an allen 8 LED-Treibern benötigt und soll max 10MHz liefern.
>Brauch ich hierfür einen IC zur Aufteilun des Taktes

nein.

>oder kann ich alle
>Treiber direkt an den Ausgang des PICs hängen?

Ja.

>Sofern es mit dem einen Ausgang geht wie verteile ich es am besten 8
>möglichst gleichlange Leiterbahnen die zusammenlaufen

Nein.

> oder eine lange Leiterbahn zu den 8 Treibern?

Ja, und zwar durchgehend mit nur kurzen Stichleitungen, sagen wir max. 
20mm. Am Ende eine AC-Terminierung, siehe Wellenwiderstand.

MFG
Falk
Gast #2414410
Lesenswert?

> Am Ende eine AC-Terminierung

Ich hänge mich mal an, da der Frager eine Antwort hat:

Was ist, wenn man viele Enden am SPI-Bus hat, z.B. MCU in der Mitte, 
links und rechts je zwei ICs (6cm entfernt: Dataflash, ADC/DAC, GPIO) 
und dann noch Buchsen (ISP, LCD), über die das Signal die Platine 
verlässt?

Gibt es eine Faustregel, ab wie vielen ICs, cm und MHz so was in die 
Hose geht?

Ich hoffe auf 5 MHz und wollte CLK nur auf dem LCD-Modul terminieren, 
das an 40cm Kabel hängt (100 Ohm in Reihe mit 100pF vom CLK-Pad des LCD 
zu GND). Auf der Platine ist CLK insgesamt 12cm lang.
Moderator (Firma: Titel) Persönliche Seite #2414518
Lesenswert?

Dietmar schrieb:
> Gibt es eine Faustregel
Nein.
> ab wie vielen ... MHz so was in die Hose geht?
Die MHz sind hier erst mal relativ unwichtig. 5MHz sind ja nicht soooo 
arg viel. Interessanter bzgl. der Terminierung ist die 
Flankensteilheit der betreffenden Signale.

> Ich hoffe auf 5 MHz und wollte CLK nur auf dem LCD-Modul terminieren,
> das an 40cm Kabel hängt (100 Ohm in Reihe mit 100pF vom CLK-Pad des LCD
> zu GND). Auf der Platine ist CLK insgesamt 12cm lang.
Machs einfach so: sieh einen Widerstand für eine Serienterminierung 
(brauchbar, wenn du die Platine als Stichleitungen betrachten kannst) 
und 2 Bauteile für eine Abschlussterminierung vor. Dann hast du 
Freiheitsgrade...
Gast #2415688
Lesenswert?

> Was ist denn an der Situation schlecht?

Der Platzbedarf für die Terminierungen, die Extra-Arbeit beim Löten. Ich 
verstehe die Antwort so, dass ich in CLK vor jedem IC einen Widerstand 
legen sollte und an die beiden Enden (auf der Platine) eine Verbindung 
zu GND über R-C.
Gast #2416704
Lesenswert?

Ich habe allerdings mehr als ein Ende: zwei auf der Platine (MCU in der 
Mitte) und eines am LCD-Modul. Bringt eine Aktion an der Quelle dann 
was?

Und noch eine praktische Frage: wenn die Serienterminierung an der MCU 
vorhanden ist, kann man als Software-Entwickler ohne viel Erfahrtung mit 
Layout dann auch das richtige R finden? Ein ersteigertes analoges 
40MHz-Oszi wäre vorhanden, sonst aber nichts an Messtechnik. Erkennt man 
damot das passende R, sieht der Takt dann erkennbar besser aus?

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