In einem früheren Blog habe ich einige der grundlegenden Punkte zur Vorbereitung von Routing-Regeln für 2-Lagen-PCBs besprochen, um das Routing und Layout mit digitalen Signalen zu unterstützen. Insbesondere haben wir uns einige der grundlegenden Stackup- und Routing-Regeln angesehen, die benötigt werden, um eine digitale Schnittstelle wie I2C oder SPI auf einem 2-Lagen-PCB zu unterstützen. Bei der Arbeit mit diesen Schnittstellen können einige einfache Richtlinien dabei helfen, die Signalintegrität auf Ihrer Platine zu gewährleisten und EMI zu reduzieren.
Was ist mit einer impedanzkontrollierten Schnittstelle wie USB? Die Notwendigkeit der Impedanzkontrolle und zu wissen, wann diese verletzt werden kann, ist der Hauptpunkt für das Routing von etwas wie USB auf einem 2-Lagen-PCB. In diesem Artikel werde ich zeigen, wie Sie ein Hochgeschwindigkeitsprotokoll wie USB routen sollten. Insbesondere werden wir uns die wichtigen Designregeln ansehen, die für das Routing der Platine benötigt werden, insbesondere die Längenbegrenzung, die wir für Leiterbahnen akzeptieren könnten, die USB-Daten tragen. Wenn Sie den vorherigen Artikel in dieser Serie noch nicht gelesen haben, werfen Sie einen Blick darauf, da er einige der konzeptionellen Grundlagen legt, die benötigt werden, um die Grenzen zu verstehen, die für die USB-Routing-Anforderungen gesetzt werden.
Im vorherigen Artikel über das Routing von 2-Lagen-PCBs haben wir uns ein Verfahren angesehen, um die längstmögliche Leitungslänge zu bestimmen, die Sie in Ihrem Design verwenden können, ohne eine Impedanzanpassung vornehmen zu müssen. Wir haben festgestellt, dass die Längenbegrenzung von der Höhe der Eingangsimpedanzabweichung abhängt, die Sie entlang der Länge der Übertragungsleitung tolerieren können. Insbesondere hängt dies davon ab, ob Sie 10% bis 25% der Signalübertragungsdistanz als wichtigen Faktor für die Begrenzung der Leiterbahnlänge betrachten.
Für diese Demonstration möchte ich das USB 2.0-Routing auf diesem Board unter dem High-Speed-Standard betrachten, und ich konzentriere mich aus einem bestimmten Grund auf diesen Standard. USB 2.0 (High Speed) wird in einigen Systemen immer noch verwendet, da es die Konnektivität mit älteren Geräten neben einer schnellen Datenübertragungsrate bietet, und es wird immer noch auf beliebten Plattformen wie Arduino mit einem Typ-B-Stecker verwendet.
Um nur zwei mögliche Designs zu veranschaulichen, habe ich die Datenrate und die Anstiegszeit von zwei USB 2.0-Spezifikationen (Full Speed und High Speed) verglichen:
|
|
|
|
|
|
Der Prozess, den ich unten zeigen werde, wird für USB 2.0-Signale mit der High-Speed-Anstiegszeit und Verzögerung durchgeführt, aber Sie könnten denselben Prozess auf USB 3.0 oder jede andere Hochgeschwindigkeitsschnittstelle anwenden. Denken Sie nur daran: das Routing auf einer 2-Lagen-Platine ist nicht für jede Schnittstelle geeignet. Zum Beispiel kenne ich niemanden, der das Routing von DDR4 auf einer 2-Lagen-Platine aufgrund der kleinen Längenlimits und des abgestrahlten Lärms dieser schnellen Signale empfehlen würde.
Zuerst möchten wir die kritische Länge für ein USB-Signal kennen, das auf einer typischen 2-Lagen-PCB geroutet wird. Für einen Dk = 4,8 Kern aus FR4-Material hätten wir eine Ausbreitungsverzögerung von ungefähr 150 ps/Zoll oder ungefähr 6 Zoll/ns. Mit unserer 500 ps Anstiegszeit für die High-Speed-Spezifikation ergibt dies eine Signalübertragungsdistanz von 3 Zoll während der Anstiegszeit. Wenn wir sehr konservativ sind und ein 10%-Limit für die kritische Länge verwenden, ergibt dies eine kritische Länge von 0,3 Zoll!
Die Topologie, die wir hier verlegen müssen, ist lediglich eine serielle Leitung mit differentiellen Paaren. Sie haben also drei Elemente:
Vielleicht fragen Sie sich, wie wird das auf einer Plattform wie Arduino gemacht? Schauen Sie sich das Bild unten von einem Arduino Mega an, den Sie bei Amazon kaufen können. Der USB-Controller ist nahe am Stecker platziert und definitiv innerhalb von 2,54 cm (1 Zoll).
Sie werden eine ähnliche Platzierung und Verlegung auf anderen Arduino-Boards finden. Um eine Eingangsimpedanz-Fehlanpassung mit dem Stecker, Kabel und Empfänger zu vermeiden, möchten wir dem oben gezeigten Rat folgen und die Route auf unserer 2-Lagen-PCB kurz halten. Allerdings müssen wir nicht so konservativ sein und eine 10%-Grenze anwenden. Stattdessen, wenn wir mit einer 25%-Grenze gehen, haben wir eine viel komfortablere Verlegungsdistanz von 1,905 cm (0,75 Zoll), was auf einer 2-Lagen-PCB viel handhabbarer ist.
Beachten Sie, dass dies für die High-Speed-Spezifikation gilt. Unter der Full-Speed-Spezifikation haben wir eine entspanntere kritische Länge von 2,4 Zoll (10%-Grenze) oder 6 Zoll (25%-Grenze) für eine Anstiegszeit von 4 ns.
Es ist wichtig zu beachten, dass es keine festgelegte Grenze (10%, 25% oder anders) gibt, bei der wir eine gültige kritische Länge haben, und je nach Größe Ihrer Leiterplatte könnten Sie über der kritischen Länge liegen und müssen nun nach der korrekten Impedanz entwerfen. Die Grenze hängt von mehreren Faktoren ab, und die Bestimmung des richtigen Prozentsatzes für Ihre kritische Länge erfordert sowieso die Berechnung mehrerer Impedanzwerte. Anstatt eine Regel basierend auf dieser kritischen Länge zu entwickeln, ist es immer einfacher, einfach nach der erforderlichen USB-Impedanz zu entwerfen.
Als Nächstes müssen wir betrachten, wie der Treiberausgang terminiert wird. Da wir hier speziell über USB sprechen, beachten Sie, dass die USB 2.0 Spezifikation einige Abschlusswiderstände an den D+ und D- Leitungen in der Nähe des Steckverbinders vorschreibt, um Impedanzen anzupassen. Diese könnten in den USB-Transceiver auf dem Die integriert sein, oder sie könnten als externe Komponente erforderlich sein. Typische Werte sind 15 Ohm, 22 Ohm oder 45 Ohm, obwohl auch andere Werte verwendet werden könnten; stellen Sie sicher, dass Sie Ihr Datenblatt für Ihre Komponente überprüfen, um zu sehen, welche Terminierung benötigt wird. Nur als Beispiel verwendet der TUSB2077APTR USB Hub Controller 27 Ohm Abschlusswiderstände. Stellen Sie sicher, dass Sie das Datenblatt überprüfen, um zu prüfen, ob Sie diese externen Widerstände benötigen.
Mit einem 100 ps Skew-Limit im High-Speed-Standard können wir nun den erlaubten Längenunterschied zwischen den beiden Seiten des Differenzpaares (den D+ und D- Signalen) berechnen. Wenn wir die ungefähre Schätzung der Ausbreitungsverzögerung von 6 ns/Zoll für das Routing auf der Oberflächenschicht nehmen und mit dem Skew-Limit multiplizieren, erhalten wir einen 0,6 Zoll (600 mil) Unterschied in der Leiterbahnlänge. Das ist sehr viel! Wir haben viel Freiheit, um etwas Leiterbahnlängenanpassung zu ermöglichen. Es gibt jedoch einen wichtigen Punkt zu beachten: Dies beinhaltet die gesamte Länge der Verbindung (Ihre Platine + Kabel + Empfangsplatine). Daher, um sicher zu sein, versuchen Sie am besten, den Skew so weit wie möglich zu begrenzen, indem Sie die Paare zusammen routen und wo möglich etwas Längenanpassung durchführen. Das ist ziemlich einfach, da USB-Controller-Chips die D+ und D- Signale im Allgemeinen am gleichen Rand des Chips platzieren.
Wenn der Längenunterschied kurz ist, müssen Sie möglicherweise keine Längenanpassung implementieren, da sie Platz im PCB-Layout beansprucht. Um zu sehen, was andere funktionale Systeme tun werden, werfen Sie einen Blick auf das unten gezeigte Bild des Arduino UNO PCB-Layouts (Hinweis: Dies wurde aus Eagle-Dateien konvertiert). Die USB-Leitungen wurden im Bild hervorgehoben. Wenn wir die Längen der positiven und negativen Seiten dieser Leitungen messen (jeweils an den Seiten der Abschlusswiderstände), stellen wir fest, dass der Längenunterschied etwa 180 mils beträgt. Deshalb werden diese Leitungen zwischen dem Arduino und dem USB-Anschluss nicht in ihrer Länge angeglichen.
In diesem engen Raum wird die Schnittstelle dennoch korrekt funktionieren, da der Unterschied in den Längen nur etwa 180 mils beträgt, was viel kleiner als die zulässige Skew-Toleranz ist. Selbst mit dem worst-case-Fasergewebeeffekt auf einem lockeren Glasgewebelaminat würde der gesamte Skew (in Bezug auf die Länge) nur einem Äquivalent von weniger als ungefähr 230 mils entsprechen, immer noch viel niedriger als die Skew-Toleranz für diese Schnittstelle.
Wie ich im vorherigen Blog hervorgehoben habe, können Sie nicht die Leiterbahnbreite verwenden, die der charakteristischen Impedanz bei High Speed USB 2.0 entspricht, und trotzdem die Impedanzspezifikation erfüllen. Denken Sie daran, die Leiterbahnbreite auf einer Standarddicke-PCB mit zwei Schichten betrug etwa 110 mils für Dk - 4.8. Wie können wir möglicherweise die Spezifikation der differentiellen Paarimpedanz bei USB 2.0 High Speed mit dieser Leiterbahnbreite erreichen?
In Wirklichkeit müssen wir diese Leiterbahnbreite aufgrund der Art und Weise, wie sich die Leiterbahnen in differentiellen Paaren gegenseitig koppeln werden, nicht verwenden. Wenn Sie Ihren Schichtstapelrechner mit einer dicken 2-Schicht-Platine verwenden, um die differentielle Impedanz für Mikrostreifen zu berechnen, werden Sie feststellen, dass die tatsächlich benötigte Leiterbahnbreite viel kleiner ist und eine Funktion des Abstands ist. Für unsere Beispiel-Mikrostreifenleitungen auf einer 2-Schicht-PCB teilt uns der Layer Stack Manager in Altium Designer mit, dass die Leiterbahnbreite etwa 16 mils für 5 mils Abstand beträgt.
Sie könnten dünnere Leiterbahnen bei diesen differentiellen Mikrostreifen verwenden, aber Sie müssten einen kleineren Abstand verwenden. In diesem Design sind wir nahe an der Grenze der Leiterbahn-zu-Leiterbahn-Abstände für das Ätzen, daher ist es in Ordnung, den 5 mil Abstand zwischen den Leiterbahnen beizubehalten, da wir mit diesen Leiterbahnbreiten sowohl die Spezifikation für einseitige als auch für differentielle Signale erfüllen. Wie wissen wir, dass wir den einseitigen Teil der Spezifikation erfüllen? Dies liegt daran: die oben angegebene Leiterbahnbreite ist für die ungerade Modus-Impedanz einer einzelnen Leiterbahn, nicht die charakteristische Impedanz! Deshalb müssen Sie bei diesem speziellen Wert für die Leiterbahnbreite bleiben und nicht den Wert der charakteristischen Impedanz für einen einzelnen Mikrostreifen isoliert verwenden.
Es gibt eine Alternative, die wir nicht besprochen haben: die Verwendung von koplanaren Mikrostreifen-Differentialpaaren. Indem Sie die Massefläche bis zu den Mikrostreifen auf der Oberflächenschicht führen und die Massefläche unter den Signalen auf der unteren Schicht platzieren, können Sie eine differentielle Impedanz von 90 Ohm mit 9,5 mil breiten Leiterbahnen, 5 mil Leiterbahnabstand und 5 mil Abstand zur Masse erreichen. Wir können aus den unten angegebenen Werten sehen, dass wir schön die erforderliche 90 Ohm Impedanz in der USB 2.0 Spezifikation mit diesen Werten erreichen.
Mit dieser Anordnung müssen wir uns nicht so sehr um das Problem der kritischen Länge und das Problem der Leiterbahnbreite auf einer 2-Lagen-Platine sorgen. Sie müssen jedoch beachten, dass diese Breite und der Abstand über die gesamte Länge der Route beibehalten werden müssen. Bei der USB-Verlegung werden die Leiterbahnen als einzelne einseitige Leiterbahnen behandelt, die zufällig ein differentielles Signal übertragen, sodass Sie sie getrennt verlegen könnten.
Die Routing-Topologie ist ziemlich einfach: Verlegen Sie von dem USB-Chip zu den Abschluss-/Pull-up-/Pull-down-Widerständen und dann zum Anschluss, alles als differentielle Paare. Das Bild unten zeigt die hochrangige Routing-Topologie mit Pull-up- und Pull-down-Widerständen. Einige Kondensatoren sind auch gemäß dem USB 2.0 Standard erforderlich, wie unten gezeigt.
Routing ist ziemlich einfach: Befolgen Sie die Standardpraktiken für das Routing von Differentialpaaren zwischen den einzelnen Teilen des Systems, und Sie werden keine Probleme mit der Signalregistrierung oder der Impedanzanpassung haben. Halten Sie die Routen kurz mit direkten Verbindungen, die von den Differentialpaarleitungen ausgehen, um Verbindungen zu GND/VCC für die Pull-Down- und Pull-Up-Widerstände herzustellen. Stellen Sie sicher, dass Sie den Anwendungsschaltkreis für Ihr Gerät in Ihren Datenblättern überprüfen, da die D+/D- Leitungen zusätzliche externe Kondensatoren am Gerät haben können; dies sehen Sie am oben zitierten TUSB2077A Gerät.
Wir werden ein reales Beispiel im PCB-Layout in einem kommenden Blog zeigen. Versuchen Sie es vorerst selbst und sehen Sie, ob Sie das Design routen können.
In diesem Blog und unserem vorherigen Blogpost haben wir uns einige der wichtigen Routingregeln angesehen, die beim Einrichten und Routen einer Hochgeschwindigkeitsschnittstelle wie USB auf einem 2-Lagen-PCB zu befolgen sind. Hier sind unsere abschließenden Routingrichtlinien:
Die hier gezeigten Routing-Richtlinien garantieren nicht immer EMC, es gibt andere Aspekte des Designs zu berücksichtigen, die manchmal bei 2-Lagen-PCBs schlecht umgesetzt werden. Diese Richtlinien werden jedoch sicherlich bei EMI helfen, wenn Sie mit der Full Speed-Spezifikation arbeiten. Meine persönliche Präferenz ist es, eine 4-Lagen-PCB für serielle digitale Busse und Hochgeschwindigkeitsprotokolle zu verwenden, besonders wenn das Board größer ist oder in Serie produziert werden soll.
Wenn Sie USB 3.0 verwenden, dann haben Sie strenge Anforderungen an die Längenabstimmung aufgrund schneller Flankensteilheiten, und Sie sollten die Schnittstelle nahe am Stecker platzieren, wie wir es mit der oben aufgeführten Full Speed-Spezifikation gemacht haben.
Wenn Sie eine Schnittstelle wie USB auf einer 2-Lagen-PCB oder einer fortschrittlicheren Mehrlagenplatine verlegen müssen, verwenden Sie die PCB-Layout- und Routing-Tools in CircuitMaker. Alle CircuitMaker-Benutzer können Schaltpläne, PCB-Layouts und Fertigungsdokumentationen erstellen, die benötigt werden, um ein Design von der Idee bis zur Produktion zu bringen. Benutzer haben auch Zugang zu einem persönlichen Arbeitsbereich auf der Altium 365™-Plattform, wo sie Design-Daten in der Cloud hochladen und speichern können und Projekte sicher über einen Webbrowser einfach ansehen können.
Beginnen Sie heute mit der Nutzung von CircuitMaker und bleiben Sie dran für das neue CircuitMaker Pro von Altium.