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!
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.
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...
NARF schrieb: > Das ganze ist als dasy chain aufgebaut, der SS oder CS dient der > Übernahme des gesammten Registers (8*24 bit). Dann routest du den Takt natürlich parallel zu den Datenleitungen, zu denen er gehört: MOSI und MISO...
Das dürfte schwer fallen da die Datenleitung ja durch die Treiberlaufen. Hab das ganze für den Momment so gelöst (siehe Bild)...
@ 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
> 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.
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...
Könnte man die Situation ohne viel Aufwand verbessen, indem man die CLK-Bahn im Gegensatz zu den anderen Bahnen (bei mir 10mil) breiter oder schmaler macht?
Dietrmar schrieb: > Könnte man die Situation ohne viel Aufwand verbessen... Nein. Das ist nur "sich selber anlügen". Da fällt mir gerade auf: > Könnte man die Situation ohne viel Aufwand verbessen... Was ist denn an der Situation schlecht?
> 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.
Dietmar schrieb: > Ich verstehe die Antwort so, dass... Dann hast du sie falsch verstanden. Ich habe von insgesamt 3 Bauteilen für die SCLK Strippe gesprochen...
...wobei der Serienwiderstand an die Quelle kommt um den niederohmigen Treiber an die höhere Impedanz der Leitung anzupassen und das Netzwerk an's Ende um das hochohmige Ende der Leiterbahn abzuschließen.
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.