Gibt es eine Anforderung für den SPI-Leiterbahn-Widerstandswert?

Zachariah Peterson
|  Erstellt: August 10, 2022  |  Aktualisiert am: October 7, 2022
SPI-Spurenwiderstand

In diesem Artikel geht es um das Serial Peripheral Interface (SPI) und seine Herausforderungen an die Signalintegrität, die alle auf den Widerstand der Schnittstelle und die Leiterbahnen zurückzuführen sind, die digitale Signale übertragen. Bevor ich zum Hauptpunkt dieses Artikels komme, beantworte ich meine eigene Frage:

  • Es gibt keine Widerstandswertanforderung für die SPI-Leiterbahn. Sie können die Leiterbahnen im SPI-Bus zwar so dimensionieren, dass ihr Widerstand 50 Ohm beträgt, dies ist jedoch nicht erforderlich.

„Es gibt keine SPI-Widerstandswertanforderung“ und „50 Ohm …ist nicht erforderlich“ bedeutet, dass SPI keine bestimmte Anforderung an den Widerstandswert stellt. Wenn andere Designrichtlinien vorsehen, dass „SPI einen kontrollierten Widerstand benötigt“, werden Sie feststellen, dass dort oft kein bestimmter Widerstandswert angegeben wird. Bestenfalls wird ein Bereich von 30 Ohm bis 150 Ohm angegeben. Das ist ein großer (und wenig nützlicher) Wertebereich.

In einem anderen Fall, den ich vor kurzem gesehen habe, heißt es im Anwendungshinweis eines großen Halbleiterherstellers, dass SPI-Leitungen eine kontrollierte Widerstandswert- und Längenanpassung benötigen, wobei offensichtlich die Rüstzeiten und die Vollduplex-Natur dieser Schnittstelle ignoriert werden. Es wurde auch kein Widerstandswert oder ein Längenfehlanpassungs-Toleranzwert aufgeführt. Dies ist meiner Meinung nach keine nützliche Richtlinie.

Die Realität sieht so aus, dass SPI-Leitungen erst dann eine Widerstandskontrolle benötigen, wenn die Verbindung sehr lang ist. Und da es keine spezifischen Widerstandsanforderungen für den Bus gibt, haben Sie eine gewisse Freiheit beim Design und dem Abschluss des Kanals. Was genau gilt also als „sehr lang“ und wann ist eine Abschlussmethode erforderlich? Das wird in diesem Artikel genauer erklärt.

SPI-Topologie und Leiterbahn-Design

Die Topologie eines SPI ist sehr einfach. Es besteht aus drei Leitungen mit einem einzigen Controller-Peripherie-Link oder vier Leitungen, wenn sich mehrere Peripherals auf dem Bus befinden. Der Upstream-Controller kann Daten über ein Leitungspaar mit bis zu 60 Mbit/s senden und empfangen, wobei die Daten möglicherweise über ein Kabel an ein anderes Board oder Gerät gesendet werden. Die Topologie einer typischen SPI-Busverbindung ist unten dargestellt.

SPI-Bus-Topologie

Was passiert also auf der Leiterplatte? Wenn Sie sich Datenblätter für eine Komponente mit einer SPI-Schnittstelle ansehen, finden Sie Werte für die minimale Anstiegszeit von nur 1 ns für erweiterte Komponenten. Bei einigen Komponenten könnte die Anstiegszeit viel länger sein, vielleicht 20 ns oder mehr. Es ist klar, dass ein langsamer Bus wie SPI trotz niedriger Daten- und Taktrate ein schnelles Signalverhalten aufweisen kann, aber es gibt keine Spezifikation hinsichtlich des Widerstandswerts! Wie handhabt man ein SPI-Design am besten?

Was ist die Anstiegszeit im SPI-Routing?

Dieses Problem bei SPI wird etwas schlecht kommuniziert und ist eines dieser klassischen Probleme beim Hochgeschwindigkeits-PCB-Design. Da wir bestimmen müssen, ob eine SPI-Verbindung in Bezug auf die Anstiegszeit „schnell“ oder „langsam“ ist, muss man zunächst verstehen, was genau zur Anstiegszeit beiträgt.

Der erste Schritt besteht darin, in Ihren Datenblättern nach der übergeordneten Komponente zu suchen, die Ihren SPI-Bus steuert. Wenn Ihre Komponente gut dokumentiert ist, wird die Anstiegszeit auf der SPI-Schnittstelle für eine bestimmte Lastkapazität im Bus angegeben. Beachten Sie, dass die „Lastkapazität“ von einer Null-Induktivität in der Verbindung zwischen dem SPI-Ausgang und der Testlast ausgeht, sodass Sie diesen Anstiegszeitwert in erster Näherung als RC-Zeitkonstante betrachten können.

Lastkapazität der SPI-Anstiegszeit
Beispiel-Datenblatteintrag hinsichtlich Signalanstiegs- und -abfallzeit, angegeben für eine bestimmte Lastkapazität.

Die Werte im obigen Beispiel mit hoher Lastkapazität sind für die meisten Komponenten nicht typisch, verdeutlichen aber die Hauptsache: Die Anstiegszeit wird durch die Kapazität des Busses bestimmt. Nimmt man in diesem Beispiel die oben angegebene Anstiegszeit von 10%-90% und setzt sie mit einem Wert von 2,2 RC gleich (dem Standard für die Bestimmung von Zeitkonstantenwerten), so ergibt sich R = 113,6 als der auf dem Bus zu beobachtende Widerstand. Das bedeutet, dass wir die Anstiegszeit bei gleichzeitiger Anpassung des Widerstands verlangsamen können, wenn wir einen Widerstand am Treiber hinzufügen (siehe unten).

Behalten Sie diese Punkte im Hinterkopf, denn später werden wir anhand dieser Informationen nachvollziehen, warum der SPI-Bus durch den Abschlusswiderstand verlangsamt werden kann. Da wir nun die Anstiegszeit des Busses aus Sicht des Empfängers kennen, können wir bestimmen, wann der Bus „lang“ ist.

Ist der SPI-Bus lang oder kurz?

Bei einer groben Annäherung können wir die Entfernung, die das Signal während der Anstiegszeit zurücklegt, mit der Gesamtlänge vergleichen. Der andere Ansatz ist die Verwendung einer Bandbreitenabschätzung aus der Anstiegszeit (im obigen Beispiel 35 MHz), um festzustellen, wann der Bus-Eingangswiderstand zu weit von einem Lastwiderstand abweicht, wie in diesem Artikel beschrieben. Eine einfache Möglichkeit, eine grobe Schätzung zu erhalten, besteht darin, die Strecke, die das Signal während seiner Anstiegszeit zurücklegt, mit der Ausbreitungsverzögerung der Verbindung zu vergleichen.

Ich bevorzuge einen konservativen Grenzwert von 10%, um abzuschätzen, ab wann der Bus anfängt, zu lang zu werden; wenn die Ausbreitungsverzögerung weniger als etwa 10% der während der Anstiegszeit des Signals zurückgelegten Strecke beträgt, gilt der Bus als kurz und wir brauchen uns nicht um das Beenden des Buswiderstands zu kümmern:

Ausbreitungsverzögerung der SPI-Anstiegszeit

Beachten Sie, dass in anderen Richtlinien ein Wert zwischen 10% und 50% als Grenzwert angegeben wird; es gibt keinen festen Wert, bei dem der Bus plötzlich lang ist, es ist eine Frage der Einschätzung. Bei einem SPI-Signal von 10 ns auf einer PCB-Schicht mit Dk = 4 liegt der Grenzwert von 10 % bei 15 cm. Das bedeutet, dass jede SPI-Strecke mit einem 10-ns-Signal, die kürzer als 15 cm ist, als kurzer Bus betrachtet wird, was auf viele Situationen zutrifft.

Wenn Sie einen langsamen SPI-Bus haben, können Sie einige sehr einfache Richtlinien befolgen, um einige grundlegende Signalintegritätsprobleme zu vermeiden. Zu den einfachsten Richtlinien, die Sie umsetzen können, um gleichzeitig Induktivität (die zu Schwingungen führt), Crosstalk und Strahlungsemissionen zu reduzieren, gehören:

  • Leiten Sie Ihre SPI-Leitungen über eine Massefläche, auch wenn sie nicht High-Speed sind
  • Verwenden Sie breitere Spuren auf dünnen Dielektrika: Auf den äußeren Lagen bemessen Sie diese mit dem 2-2,5-Fachen des Abstands zu GND auf der nächsten Lage; 10-15 mil Spuren auf inneren Schichten sind oft in Ordnung
  • Bei einer 2-Lagen-Platine ohne Platz für eine Massefläche platzieren Sie Kupferguss um Ihre SPI-Leitungen, um einen klaren Rückweg zu schaffen

Für die beste Leistung empfiehlt es sich, keine 2 Lagen zu verwenden und stattdessen mit einem PCB-Stackup zu beginnen, der mit digitalen High-Speed-Designs kompatibel ist.

Warum werden 50 Ohm für SPI angegeben oder verwendet?

In Fällen, in denen SPI-Leitungen einen bestimmten Widerstand haben müssen, gibt es einen guten Grund, warum Menschen 50 Ohm als Soll-Widerstand verwenden. Ironischerweise glaube ich nicht, dass die Leute wissen, welche Vorteile das hat, aber am Ende treffen sie die richtige Entscheidung aus den falschen Gründen.

Wenn 50 Ohm der typische Soll-Widerstand für einen elektrisch langen SPI-Bus ist, gibt es wahrscheinlich andere widerstandsgesteuerte Leiterbahnen auf der Leiterplatte, die auch auf einen charakteristischen Widerstand von 50 Ohm abzielen. Einen einzigen Soll-Widerstand zu haben, macht die Widerstandskontrolle für einen Hersteller viel einfacher. Wenn Sie Materialien im Lagenaufbau austauschen müssen, um Ihren Soll-Widerstand zu erreichen, geht– dies viel einfacher, wenn in Ihrem Lagenaufbau nur ein Wert erreicht werden muss.

Warum werden bei kurzen SPI-Bussen serielle Abschlüsse verwendet?

Wie wir oben gesehen haben, besteht in den meisten praktischen Situationen mit einer SPI-Spur keine Notwendigkeit für einen Abschluss am Treiber oder Empfänger. Wenn es eine Notwendigkeit dafür gäbe, würden Sie in den Datenblättern der Komponenten, in der SPI-Spezifikation oder in beiden eine Widerstandsspezifikation vorfinden. Außerdem sind die Komponenten wahrscheinlich mit einem On-Die-Abschluss für den Soll-Widerstand ausgestattet, sodass Sie sich nicht mit der Platzierung eines Widerstands herumschlagen müssen.

SPI-Abschlusswiderstände
Abschlusswiderstände auf einem SPI-Bus.

Die Antwort ist ziemlich einfach: Das vom Treiber ausgesendete Signal soll verlangsamt werden. Der Widerstand hat den Nebeneffekt, dass er auch jegliche Schwingungen am Ausgang dämpft. Beachten Sie, dass die Auswahl des Widerstands in diesem Fall nichts mit der Widerstandsanpassung bei einer elektrisch kurzen Leitung zu tun hat.

Wenn Ihr Controller eine fortschrittliche Komponente wie ein FPGA ist und Sie eine SPI-Schnittstelle in diesem Controller instanziieren, kann die Anstiegszeit sehr kurz sein, weil die physikalische Struktur des Geräts einfach sehr schnelle Anstiegszeiten gewährleistet. Infolgedessen kann es von Vorteil sein, das Signal zu verlangsamen, damit Sie kein schnelles Signal haben, das Crosstalk erzeugt. In einem solchen Fall müssen Sie den Widerstand in der Nähe des Treibers platzieren.

Achten Sie darauf, dass Sie die Anstiegszeit nicht zu sehr verlangsamen, da das Signal sonst zu langsam ist, um die E/A an der Last umzuschalten, und es möglicherweise nicht korrekt gelesen wird. Sie können auch gegen die Rüstzeiten verstoßen, wenn die Anstiegszeit zu lang eingestellt wird. Es gibt ein einfaches RLC-Modell, das simuliert werden kann, um den entsprechenden seriellen Widerstandswert festzulegen.

Ein pauschales Elementmodell für einen kurzen SPI-Bus

Das tatsächliche Modell für einen SPI-Bus ist komplexer. Es umfasst die folgenden Faktoren:

  • Spurkapazität über den gesamten Bus (C)
  • Leiterbahn-Induktivität (L)
  • Widerstand der Quelle
  • Belastungskapazität

Der kurze Bus sieht im Grunde wie dieses LC-Modell aus:

SPI-Bus LC-Modell
SPI-Busmodell mit kurzer Übertragungsleitung.

Der Quellenwiderstand beträgt idealerweise 0 Ohm, obwohl er in Wirklichkeit etwa 10-30 Ohm betragen könnte. Die Ladekapazität sollte im Datenblatt des Empfängers angegeben werden.

Howard Johnson spricht auf der SigCon-Website darüber; es handelt sich um einen Bus, der eine unterdämpfte Schwingung aufweisen kann, wenn er mit einem schnellen Signal angeregt wird und zu viel Induktivität vorhanden ist; er kann auch in SPICE simuliert werden. Einen Vorwiderstand hinzuzufügen sorgt in diesem Fall für eine zusätzliche Dämpfung, die die Anstiegszeit verkürzt.

Beachten Sie, dass ich den Spurwiderstand von dieser Liste gestrichen habe. Der Spurenwiderstand ist sehr klein und wird nur vernachlässigbare Verluste und Dämpfungen erzeugen. Das liegt daran, dass der Spurwiderstand in der Größenordnung von Milliohm liegt, während der grob geschätzte Widerstand, der die Anstiegszeit bestimmt, irgendwo zwischen 10 und 100 Ohm liegen kann, sodass der Spurwiderstand eindeutig vernachlässigbar ist.

Serieller Widerstand in einem langen SPI-Bus

Im Falle eines langen Busses, was ungewöhnlich ist, muss die SPI-Leitung einem Soll-Widerstand zugeordnet werden (50 Ohm ist dafür praktisch). In diesem Fall erhalten Sie durch den Vergleich der Signalschwankung auf dem SPI-E/A mit dem Strom einen Widerstandswert für das Signal im ON-Zustand. Der serielle Widerstand muss in diesem Fall normalerweise entweder 22 Ohm oder 33 Ohm betragen, um ein Ziel von 50 Ohm zu erreichen. Platzieren Sie ihn in der Nähe des Treibers, damit beide Widerstände übereinstimmen und das Signal wie hier beschrieben verlangsamt wird.

SPI-Bus LC-Modell
SPI-Busmodell mit seriellem Abschlusswiderstand.

Der andere Grund, dies zu tun, wenn Sie mehrere untergeordnete Komponenten auf dem Bus haben, ist, dass Sie sich an den Eingangswiderständen in jedem Zweig des Busses orientieren und die Anstiegszeit so weit verlangsamen können, dass man sich nicht um den Eingangswiderstand an den Verzweigungen im Bus sorgen muss. Im Allgemeinen ist es besser, die Leitung näher am Treiber zu verzweigen, da der Eingangswiderstand in jedem Teilbereich näher am charakteristischen Widerstand der Leitung liegt.

Etwas, das wir in diesem Artikel nicht behandelt haben, ist das Signalformat in SPI. Um mehr über diesen Aspekt des SPI-Protokolls zu erfahren, lesen Sie diese hervorragende Übersicht von Mark Harris:

Unabhängig davon, ob Sie eine SPI-Leiterbahn-Widerstandsanforderung anwenden müssen oder nicht, können Sie mit den PCB-Design- und Routing-Funktionen in Altium Designer® die besten Leiterplatten entwerfen. Wenn Sie Ihr Design fertiggestellt haben und die Dateien für Ihren Hersteller freigeben möchten, können Sie auf der Altium-365™-Plattform ganz einfach zusammenarbeiten und Ihre Projekte teilen.

Wir haben nur an der Oberfläche dessen gekratzt, was mit Altium Designer auf Altium 365 möglich ist. Starten Sie noch heute Ihre kostenlose Testversion von Altium Designer und Altium 365.

Über den Autor / über die Autorin

Über den Autor / über die Autorin

Zachariah Peterson verfügt über einen umfassenden technischen Hintergrund in Wissenschaft und Industrie. Vor seiner Tätigkeit in der Leiterplattenindustrie unterrichtete er an der Portland State University. Er leitete seinen Physik M.S. Forschung zu chemisorptiven Gassensoren und sein Ph.D. Forschung zu Theorie und Stabilität von Zufallslasern. Sein Hintergrund in der wissenschaftlichen Forschung umfasst Themen wie Nanopartikellaser, elektronische und optoelektronische Halbleiterbauelemente, Umweltsysteme und Finanzanalysen. Seine Arbeiten wurden in mehreren Fachzeitschriften und Konferenzberichten veröffentlicht und er hat Hunderte von technischen Blogs zum Thema PCB-Design für eine Reihe von Unternehmen verfasst. Zachariah arbeitet mit anderen Unternehmen der Leiterplattenindustrie zusammen und bietet Design- und Forschungsdienstleistungen an. Er ist Mitglied der IEEE Photonics Society und der American Physical Society.

Ähnliche Resourcen

Zur Startseite