Ich arbeite derzeit an einer Platine für einen 8x8x8 LED-Würfel. Das PCB-Layout im aktuellen Stand finden Sie nachfolgend:
Der ATmega328P (16 MHz) verwendet SPI, um die erforderlichen Daten an vier TLC5940-Chips (12-Bit-Graustufen, 16-Kanal-LED-Treiber) und einen TPIC6B595 (8-Bit-Schieberegister) zu senden. Um genug FPS zu bekommen und noch genug CPU-Zeit für Effekte zu haben, muss die SPI-Schnittstelle mit 8 MHz laufen.
Ich bin mir etwas unsicher über das richtige Layout, um Probleme wie beschädigte Daten zu vermeiden.
Relevante Layoutteile für diese Fragen:
A) SPI-Daten: Vom ATmega-SPI-Pin zum ersten TLC und dann in Reihe über die nächsten drei TLCs zum TPIC (jede Spur ~ 2-3 cm lang)
B) SPI Clock: Vom ATmega SPI Clock Pin in zwei Richtungen. Erstens zum entsprechenden ISP-Header und zweitens unter allen TLCs zum TPIC. Jeder TLC-Datentaktpin ist durch einen sehr kurzen Zweig der Taktleitung verbunden. Die Leitung endet im Clock-Pin des TPIC-Chips. (Gesamtschnurlänge ~23-25cm lang ohne Verzweigungen)
C) GS-Takt: Wird benötigt, um die Graustufen-PWM der TLCs am Laufen zu halten. Über die gesetzte CKOUT-Sicherung wird über diese Leitung ein konstantes 8Mhz-Signal an alle TLC-Graustufen-Clock-Pins (~20cm lang ohne Verzweigungen) gesendet.
D) Leer: Von ATmega bis zu allen TLCs, die mit dem letzten enden. Normalerweise GND-Pegel, wird regelmäßig umgeschaltet, um den PWM-Zähler in TLCs zurückzusetzen. Während der Datenaktualisierung für die TLCs ist es für die ersten paar übertragenen Bytes hoch und wird dann wieder niedrig gesetzt, während der Rest der Bytes herausgeschoben wird (um die LED-Ausfallzeit zu reduzieren).
E) Latch: Von ATmega mit allen TLCs und dem TPIC-Chip verbunden. Immer niedrig, mit Ausnahme eines schnellen Umschaltens (wenn SPI nicht aktiv ist)
F) PCB-Schichten: Rote Linien oben, blaue Linien unten. Der Boden hat zusätzlich eine komplette Bodenfüllung, wie in der Vergrößerung eines TLC zu sehen ist:
Meine Fragen zum Datenübertragungslayout:
1) Ist es in Ordnung, diese Leitungen parallel über ~ 14 cm zu verlegen? Blank und Latch ("ruhige Linien") sind in der Mitte und die "rauschenden" Linien GS Clock und SPI Clock außen (0,05 Zoll Abstand zwischen jeder Linie), aber daher in der Nähe von IC-Pins.
2) Reichen die kurzen 90°-Abzweigungen aus, um jeden IC mit den Datenleitungen zu verbinden, oder führt dies zu Problemen?
3) Was ist mit der Signalreflexion/-terminierung (für SPI- und GS-Takt)? Ich habe mehrere Artikel zu diesem Thema gelesen, aber nicht alles verstanden. Einige Leute behaupten, dass es bei 8 MHz kein Problem gibt. Andere unterscheiden zwischen Trancelänge und so weiter. Einige Lösungen wie die Endleitungsterminierung funktionieren anscheinend nur für eine einzelne Last, daher funktioniert dies bei mir offensichtlich nicht. Bisher habe ich nichts Konkretes/Eindeutiges zu diesem Thema gefunden. Ich habe das Gefühl, dass dies im Moment ein Dealbreaker für mein Board sein könnte.
4) Was ist mit dem Signalrückweg? Ich habe versucht, es dem Rückstrom zu ermöglichen, der relevanten oberen Spur auf der unteren Schicht zu folgen, aber ein paar Hindernisse bleiben (wie die Verbindungen der GS-Uhr, Latch- und Leerspuren zu den SPS-Pins). Ist das Layout diesbezüglich noch ok?
Mit freundlichen Grüßen,
ratus
Diese Antwort ( Werden für UART, I2C und SPI Abschlusswiderstände benötigt? ) Sagt Ihnen im Grunde, dass ein 50-MHz-SPI wahrscheinlich für> 7-cm-Spuren gut ist. Alles, was Sie tun müssen, ist, Takt und Daten ungefähr gleich lang zu halten. Unidirektionales SPI verzeiht aufgrund der doppelten Natur des Austaktens von Daten an einer Kante und des erneuten Eintaktens an der anderen Flanke recht verzeihend.
Bei 8 MHz beträgt die Periode 125 ns und die Zeit, die für die Beruhigung der Daten (nach Änderung an einer Taktflanke) angegeben wird, beträgt daher 62 ns. Sie müssten die Daten- und SCL-Leitungslängen massiv unterschiedlich machen, um eine Verzögerung von annähernd 60 Nanosekunden zu erreichen.
Diese Antwort gilt nur für das Senden von Daten von einem Master - ein weiteres größeres Problem tritt auf, wenn Daten von einem Slave zurückgetaktet werden - dies bestimmt letztendlich die maximale Länge der Spur / des Kabels, aber wenn Sie nur Daten vom Master zum Slave senden, ist dies kein Problem.
Benutzer98663
Benutzer98663
schwach