PCB-Design für 50MHz

Ich entwerfe eine ziemlich große Platine mit 64 Nokia 5110-LCDs, die in einer 8x8-Matrix angeordnet sind und alle von einem einzigen Mikrocontroller gesteuert werden.

Jeder Bildschirm verfügt über ein 8-Bit-Schieberegister als Puffer, um die Fehlanpassung zwischen dem maximalen SPI-Takt von ~50 MHz des Mikrocontrollers und den 4 MHz der LCDs auszugleichen. Daher werden auf einer etwa 30 cm x 30 cm großen Leiterplatte 64 Schieberegister bei 50 MHz in Reihe geschaltet.

Meine Frage ist dann, was sind die Probleme, die ich bei einem solchen Design berücksichtigen sollte? Angenommen, ich platziere jedes Schieberegister dahinter, hätte ich wirklich lange (ca. 250 cm) Zick-Zack-Spuren für die Takt- und Datenleitungen.

Das scheint ziemlich lächerlich, aber gleichzeitig hatte ich kein Problem damit, mit Steckbrett- und Überbrückungsdrähten in der Nähe dieser Frequenzen zu arbeiten, wobei der einzige Unterschied die Drahtlänge ist.

Ich könnte auch alle Schieberegister in der Nähe des Mikrocontrollers zusammenfassen, sodass die längsten Leitungen diejenigen sind, die mit der niedrigeren Frequenz in die Bildschirme führen, aber die Spuren wären immer noch ziemlich lang.

Ich würde mich über jede Hilfe und Vorschläge freuen, um viele fehlgeschlagene PCB-Designs zu vermeiden.

Welcher Mikrocontroller? Welcher Puffer? Normalerweise ist der größte begrenzende Faktor die Kapazität und das eigentliche Ansteuern des GPIO, um 50 MHz zu erreichen

Antworten (3)

Bei 50 MHz beträgt die Wellenlänge in der Leiterplatte etwa 20 ns x 15 cm/ns = 300 cm.

Die Laufzeit in einem Draht von 30 cm beträgt 2 ns.

Wenn Sie Ihre Spuren nicht als Übertragungsleitungen betrachten möchten, müssen Sie sie unter 1/20 der Wellenlänge halten, was 15 cm entspricht.

Und bei dieser Länge müssen Sie die Signalverzögerung von 1 ns berücksichtigen, wenn Sie die Halte- und Prüfzeiten überprüfen.

Sie müssen auch ein Übersprechen zwischen parallelen Drähten vermeiden, indem Sie sie 3x ihrer Breite auseinander halten.

Die Anstiegs-/Abfallzeit der Signale wird wahrscheinlich viel wichtiger sein als die tatsächliche Toggle-Rate.
Wenn die Signalleitungen unter 15 cm gehalten werden, hält sich die Anstiegs-/Abfallzeit in Grenzen. Es ist klar, dass die Verteilung einer Zentraluhr mit dieser Begrenzung ausgeschlossen ist. Es gibt "Shift"-Lösungen, die auch die Uhr auf jeder Uhr puffern. Und wenn Sie beispielsweise eine Manchester-Codierung verwenden, wäre es möglich, das Signal alle 15 cm mit einem einfachen digitalen Puffer zu puffern.

Ich würde die Hochfrequenzsignale als kontrollierte Impedanz leiten.

Ich würde auch jedem Signal einen Abschlusswiderstand hinzufügen, um Reflexionen zu vermeiden. Sie können entweder einen seriellen Abschluss an der Quelle jedes Signals verwenden oder einen parallelen Abschluss am Ziel jedes Signals verwenden.

Außerdem ist die 50-MHz-Signalperiode viel weniger wahrscheinlich ein Problem als die Anstiegs-/Abfallzeit der Signale. Wenn Sie die Anstiegs-/Abfallzeiten langsamer halten können, hilft dies, Reflexionen zu vermeiden.

Angenommen, Ihre Schieberegister verschieben sich nur an einer Taktflanke, dann ist das wichtigste zu berücksichtigende Signal das Taktsignal an den Schieberegistern. Selbst wenn Sie Reflexionen auf den Datenleitungen bekommen, spielt es wahrscheinlich keine Rolle, solange sich die Signale vor der nächsten Taktflanke auf ihren endgültigen Wert einpendeln. Aber wenn Sie eine Reflexion auf der Uhr bekommen, dann kann Ihr Schieberegister zwei oder drei Uhren sehen und alle Ihre Daten werden verschoben.

Meine Frage ist dann, was sind die Probleme, die ich bei einem solchen Design berücksichtigen sollte?

In meinen Designs mit einem STM32F kann es schwierig sein, 50 MHz zu erreichen. Das erste Problem wird die GPIO-Kapazität sein, es kann selbst bei kurzen Läufen mit der Kapazität der GPIOs problematisch sein, die Gate-Kapazität des Empfangsports muss ebenfalls berücksichtigt werden.

Das andere Problem ist ein sehr schneller Mikroprozessor, wenn Bit hämmern. Wenn Sie nicht bit-bangen, müssen Sie SPI-Hardware-Ports verwenden.

Es fällt mir schwer zu glauben, dass Sie auf einem Steckbrett 50 MHz erreichen können, aber es hängt vom Setup ab (ich würde gerne eine Scope-Spur und ein Bild des Setups sehen). Wenn das Design auf einer Steckplatine funktioniert, sind die Parasiten auf einer Leiterplatte viel kleiner, sodass Sie theoretisch minimale Probleme haben sollten, wenn Sie es auf eine Leiterplatte übertragen.

Verwenden Sie ein 4-Schicht-Design mit der Uhr oben und nicht durch Vias und Masse auf der direkt darunter liegenden Schicht.

Mit Ihrer Antwort und dem, was andere auch kommentiert haben, lehne ich mich von meiner ursprünglichen Idee ab und überdenke meinen Ansatz. Ich plane die Verwendung von Hardware-SPI, ich habe bereits einige grundlegende Schaltungen erstellt und es funktioniert gut. Was das Steckbrett betrifft, bin ich auf 36 MHz gekommen (mit einer ziemlich knorrigen Wellenform, aber alle Daten wurden empfangen), nicht genau 50 MHz, aber ziemlich nahe, mit dem Unterschied, dass die Drähte höchstens 10 cm lang waren. Meine ursprüngliche Frage ergab sich aus der Tatsache, dass die Leiterbahnen auf der Leiterplatte so viel länger sein würden als ich es gewohnt war.