Ich entwerfe ein Board für ein Hobbyprojekt, bei dem ich ein Gitter machxo2 cpld als Systemverbindung verwende.
Der cpld muss mit 80-100 MHz getaktet werden, und da ich mich für einen billigeren cpld entschieden habe, hat er keine PLLs an Bord. Der einfachste Weg für mich, es zu takten, besteht darin, eine programmierbare Uhr von meinem Haupt-MCU (Atmel SAM4S) zu verwenden, um die CPLD zu takten (mit einer Leiterplattenspur von etwa 3 cm).
Da das Signal 100 MHz beträgt, muss die Anstiegsgeschwindigkeit ziemlich hoch sein, und ich erwarte viel Klingeln. Kann ich das Klingeln reduzieren, indem ich einen kleinen Widerstand zum Ausgangspin der MCU (10-100 Ohm) und eine kleine Kappe zur Masse auf der Taktleitung (10-100 pF) hinzufüge? Nach meiner Rückseite der Hüllkurvenmathematik erzwingen diese Werte die Anstiegs- / Abfallzeit auf etwa 1 ns.
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Wird dieser Ansatz funktionieren? Ist es gängige Praxis? Ich komme aus einem CS-Hintergrund, daher sind meine Kenntnisse etwas wackelig.
Danke.
Ich gehe davon aus, dass Ihre Taktquelle ein dedizierter Taktausgang in der MCU ist, also sollte sie in der Lage sein, die Anstiegsgeschwindigkeiten gut zu bewältigen (vorausgesetzt, sie ist für diese Frequenzen ausgelegt). Eine mögliche Ursache für das Klingeln könnten Übertragungsleitungseffekte (oder schlechte Layoutprobleme) sein.
Eine allgemeine Faustregel lautet: Wenn Ihre Wellenlänge größer als das 10-fache der Spurlänge ist, können Sie Übertragungsleitungseffekte ignorieren.
Eine Rechteckwelle besteht aus ungeraden Harmonischen, also nehmen wir die 5. Harmonische bei 500 MHz. Bei 2/3 Lichtausbreitungsgeschwindigkeit beträgt die Wellenlänge ~0,4m. Dies ist mehr als das 10-fache Ihrer Spurlänge, sodass Sie diese wahrscheinlich ignorieren können. Betrachtet man jedoch die 7. Harmonische, ist dies eine andere Geschichte. Jetzt spielen Übertragungsleitungseffekte eine Rolle.
Die übliche Technik zur Umgehung von Übertragungsleitungseffekten besteht darin, Widerstände mit angepasster Impedanz (kein RC-Filter) zu verwenden. Dies ist relativ einfach, wenn Sie ein Kabel mit einem Nennwiderstand haben; Es ist schwieriger für eine Spur und hängt von der Geometrie ab. Zum Beispiel habe ich die Methode zur Berechnung des Wellenwiderstands eines Mikrostreifens verlinkt . Normalerweise finden Sie online Rechner, die verschiedene gängige Geometrien verarbeiten.
Da Ihre Taktspur immer von der MCU stammt, können Sie diesen Abschlusswiderstand in Reihe mit der Spur in der Nähe des Clock-Out-Pins platzieren (wieder nach der Faustregel von <10x der Spurlänge).
Mit diesem Online-Übertragungsleitungssimulator (schamloser Stecker) können Sie auch abschätzen, wie sehr Sie sich um Übertragungsleitungseffekte sorgen müssen . Bei der 11. Harmonischen hat sich die Amplitude auf 1/11 der Amplitude der Grundfrequenz verringert, sodass Sie den Kehrwert der 11. Harmonischen (909 ps) als Anstiegs- und Abfallzeit verwenden können. Wählen Sie einen schlecht angepassten R1 (Abschlusswiderstand) und prüfen Sie, ob der Klingelpegel ~ 10 % überschreitet (oder welche Toleranz Sie für Ihre Anwendung für akzeptabel halten), um festzustellen, ob Sie sich Gedanken über den Abschluss machen müssen.
Der Grund, warum keine RC-Schaltung verwendet wird, liegt darin, dass sie das Übertragungsleitungsproblem nicht löst. Um dies zu veranschaulichen, habe ich zwei Schaltungen erstellt:
Die erste Schaltung platziert das RC-Filter am Empfangsende der Übertragungsleitung (in der Nähe des CPLD).
Ich habe dies mit verschiedenen Werten für C1 simuliert. R1 und R2 wurden absichtlich so gewählt, dass sie nicht mit der charakteristischen Impedanz übereinstimmen.
Wie Sie sehen können, ist keines davon wirksam bei der Reduzierung des Überschwingens; Sie verwandeln Ihre schön definierte Rechteckwelle einfach in Müll.
Es scheint, als wäre dies eine effektive Technik, aber wenn Sie sich den 500pF-Fall ansehen, wird die Taktflanke immer mehr zu einem Exponential. Schließlich wird es die Ausgangsamplitude verringern, was nicht gut ist.
Sie könnten einen Filter höherer Ordnung bauen, der nur die Frequenzen oberhalb der Übertragungsleitungsgrenze viel besser entfernt, aber es gibt Probleme:
Sowohl eine zu hohe als auch eine zu niedrige Slew-Rate sind laut hier nicht gut .
Bei Takteingangssignalen nehmen sehr langsame Taktflanken große Mengen an Schaltrauschen von der Platine und dem Gerät auf. Zusätzlich zum Rauschproblem sind langsamere Taktflanken anfälliger für Jitter, was die bereits engen Timing-Spielräume in Hochgeschwindigkeitsdesigns reduzieren kann.
Bei Dateneingangssignalen führen sehr schnelle Flankenraten bei breiten Datenbussen zu Rauschproblemen bei simultan schaltenden Eingängen (SSI). Es können auch Übersprechprobleme auftreten.
Stellen Sie also sicher, dass Ihre Slew-Rate nicht zu hoch und nicht zu niedrig ist.
Angenommen, Ihr 100-MHz-Takt benötigt eine Anstiegs- / Abfallzeit von 1,7 ns. Gemäß der 2-Zoll / ns-Regel sollte Ihre Spur weniger als 3,5 Zoll betragen, etwa 9 cm. Wenn Sie Ihre Spurlänge auf etwa 3 cm kontrollieren können, benötigen Sie möglicherweise keinen Abschluss.
Wenn Sie jedoch die Anstiegsgeschwindigkeit verlangsamen müssen (möglicherweise nicht wegen des Klingelproblems, sondern wegen der durch den obigen Link angegebenen Probleme), können Sie eine RC-Schaltung verwenden. Sie können auf diesen Link verweisen , S. 2.
John M
hallowelt922
John M
hallowelt922