Ich habe eine Frage zur SPI-Kommunikation. Ich habe gelernt, dass wir für die Anpassung einen 33- oder 50-Ohm-Serienwiderstand in MOSI/MISO-Leitungen platzieren und überschwingen sollten. Meine Frage ist, wie wir diese Werte finden könnten (33 oder 50 Ohm)?
Ich will es berechnen. Ich habe ein wenig Wissen über Übertragungsleitungen, aber ich sehe nie den Beweis.
Können Sie sagen, wie Sie es finden?
Vorschläge wie, 100 nF auf die VCC legen oder 33 Ohm auf die Kommunikationsleitung legen, basieren meistens nicht auf einem grundlegenden Verständnis dessen, was wirklich passiert. Das ist hauptsächlich der Grund, warum dir die "Lektion" geholfen hat und du im Grunde nichts gelernt hast.
Das Schalten eines Widerstands in Reihe oder parallel wirkt sich auf die Impedanz der Endpunkte (Ihr SPI-Master und SPI-Slave) aus, siehe . Dieser Widerstand hängt stark von der Umgebung ab, wie dem Wellenwiderstand auf der Leiterplatte und der Ausgangs-/Eingangsimpedanz. Wenn die Impedanz falsch angepasst ist, zeigen sich einige unangenehme Effekte auf Ihrer Verbindung (Reflexion, Überschwingen).
Aber normalerweise ist eine SPI-Verbindung fast DC, da die Busgeschwindigkeit bei den niedrigeren MHz liegt.
Da der SPI-Bus Impulse für Daten und Takt enthält, haben diese scharfe Flanken, die Frequenzen verursachen, die sogar über Ihrer Taktrate liegen.
(Siehe: https://en.wikipedia.org/wiki/Square_wave#Fourier_analysis )
Scharfe Flanken führen zu kurzen Anstiegszeiten, was zu hohen Frequenzen führt, die die oben erwähnten Probleme verursachen.
Diese (übergeordneten) Probleme sind Ihnen egal, wenn die Länge des SPI-Busses kleiner als die kritische Länge ist:
[Anstiegszeit in Nanosekunden]
Wenn Sie einen Widerstand an eine typische SPI-Verbindung anschließen, müssen Sie sich nicht um die Wellenimpedanz kümmern, aber Sie müssen die Transienten beseitigen, die von den scharfen Kanten kommen, und der Widerstand hilft, sie zu glätten.
Der SPI-Master muss die Eingangskapazität an den Empfängern aufladen und bei einer höheren Impedanz auf den Busleitungen erhalten Sie eine Lastkurve. Es ist wie ein RC-Tiefpassfilter, der den Widerstand liefert.
Um den richtigen Widerstand auszuwählen, schauen Sie sich die Kapazität Ihres Busses an. Wenn Sie es nicht aus Datenblättern bekommen können, müssen Sie Ihren SPI-Bus messen. Was Sie wollen, ist zumindest ein stabiler Signalpegel auf der Datenleitung bei der steigenden Flanke (oder fallenden Flanke [abhängig von Ihrem SPI-Modus]) der Uhr. Fast jeder IC mit SPI-Schnittstelle gibt die maximale Anstiegszeit für den Takt an. Sie können Ihr Setup also auf dieses Niveau "trimmen".
Dafür ist es ein guter Ausgangspunkt, mit 33 Ohm zu beginnen.
Meine Absicht war es, Ihnen zu sagen, was auf der Leitung passiert, wenn Sie einen Widerstand darauf setzen.
Die allgemeine Idee ist, dass der Bus eine bestimmte charakteristische Impedanz hat, typischerweise im Bereich von 50–70 Ω, aber die Ausgangsimpedanz des Treibers ist normalerweise viel niedriger, eher 15–30 Ω.
Der Reihenwiderstand wird so gewählt, dass er die gesamte Quellenimpedanz an die des Busses anpasst, um Reflexionen an diesem Ende zu eliminieren.
Da Sie beide Impedanzen häufig nicht sehr genau kennen, ist möglicherweise ein gewisser Versuch und Irrtum erforderlich, um den besten Abschlusswert zu finden.
DiBosco
Heftzwecke
Anonym