SPI-Bus-Terminierungsproblem

Ich habe an einem Projekt gearbeitet, bei dem ein OMAP-Linux-SPI-Master mit 6 SPI-Slave-Peripheriegeräten (5x A/D-Wandler und einzelnes Magnetometer) interagiert.

Ich kann die SPI-Taktfrequenz einstellen und habe mit 50 kHz, 100 kHz und 1 MHz experimentiert.

Ich habe ein Verdrahtungs- / Platinendiagramm beigefügt, das die Länge vom SPI-Master und allen Peripheriegeräten zeigt. Die SPI-Buslänge (alle Drahtlängen) vom Master entfernt beträgt für meinen Experimentierkoffer ungefähr 970 mm.

Geben Sie hier die Bildbeschreibung ein

Das Problem, das ich gefunden habe, ist, dass die Kommunikation mit 1 Peripheriegerät fehlschlägt, wenn ich mehr von den anderen Peripheriegeräten auf dem Bus hinzufüge. Selbst wenn die Kommunikation zum Magnetometer auf der anderen Seite des Busses durchkommt, schlägt die Kommunikation mit den A/D-Wandlern auf der anderen Seite fehl, bis der Magnetometer-Kabelbaumstummel entfernt wird und dann der A/D-Abschnitt zurückkehrt.

Ich habe hier etwas gelesen: Überlegungen zur SPI-Busterminierung und hier: Short Distance Board-to-Board-Kommunikation

wo es empfohlen wird, einen RC LPF so nah wie möglich an jedem Treiberknoten zu platzieren, also SCLK und MOSI auf der Masterseite und jedes meiner 6x MISO/SOMI-Signale. Ich habe einen ähnlichen Ansatz für USB mit 47pF / 27R RC-Netzwerk gesehen. Meine Absicht ist es, dies auf meiner Schaltung zu versuchen, um den schnellen Kantenübergang von ~ 100 ns an scharfen Kanten zu reduzieren.

Ist dies das richtige Verfahren, dem ich hier mit dem Hinzufügen eines RC LPF folge? Das scheint wirklich wackelig zu sein, gibt es eine bessere Vorgehensweise? Ich habe eine App-Notiz von TI gesehen, in der über die Erweiterung von SPI für längere Busentfernungen gesprochen wird. Ist dies hier eine geeignete Lösung oder ist mein Problem einfach eines der hochfrequenten Oberwellen des Hochgeschwindigkeits-Flankenübergangs? http://www.ti.com/lit/an/slyt441/slyt441.pdf

Danke Nick

Eine saubere CLK/MISO-Messung vom Magnetometer

Messen der Taktübergangszeit des CLK-Signals

Zeigt diese MISO-Leitung (Kanal Nr. 1) Reflexionen?  Die Ebenen sehen nicht digital mit Treppenhaus aus, das sind Reflexionen

Haben Sie die Möglichkeit, Vorwiderstände hinzuzufügen und die Verdrahtung zu ändern?
Hallo efox29, ja, aber es wird ein bisschen schmutzig. Mein SPI-Master befindet sich auf einem SOM, das auf meiner Tochterplatine montiert ist. Meine Absicht ist es, die Leiterbahn für SCK und MOSI zu schneiden und jeweils einen 330-Ohm/47pF 0603/0805 RC mit Epoxid/Kleber zu montieren und etwas Ähnliches auf den A/D- und Magnetometer-Platinen für MISO zu tun. Ich werde versuchen, den GND-Stub so nah wie möglich an das GND-Pad oder Flugzeug zu bringen. Warte damit, bis ich mehr höre, plane aber, es morgen zu versuchen. Ich habe jedoch keine Möglichkeit, SPI in eine Daisy-Chain oder ähnliches umzuwandeln. Würde sowieso nicht viel nützen, Bretter müssen an entgegengesetzten Enden sein.
Wie ist Ihr System mit einer langsameren Uhr wie 50 kHz? Was ist der Mikrocontroller, den Sie verwenden?
Ich würde vorschlagen, zuerst mit der SCK-Linie zu beginnen, bevor Sie Rs und Cs zu den anderen Linien hinzufügen. Schließlich sind Kanten nur auf der Taktleitung von Bedeutung, die anderen Leitungen sind toleranter gegenüber Reflexionen.
Und bei dieser Art von Problem ist die Flankensteilheit das Problem, nicht die Taktfrequenz. Wenn Sie das gleiche Problem unabhängig von der Taktfrequenz sehen, dann sind die schnellen Flanken das Problem und müssen verlangsamt werden.
Schätzen Sie die Hilfe Alex und Efox29. Wie Alex erwähnte, war es die Flankensteilheit (100 ns), die das Problem darstellte. Das beobachtete Problem war unabhängig von der SPI-Taktfrequenz. Am Ende musste ich einen RC LPF sowohl auf die SCLK- als auch auf die MOSI-Leitung setzen, damit es funktioniert. Am Ende habe ich einen 330R / 47pF RC-Filter verwendet, der einen -3dB von ungefähr 9,5 MHz hat. Interessanterweise funktionierte es nur, wenn RC LPF sowohl auf SCLK- als auch auf MOSI-Linien platziert wurde.

Antworten (1)

Es ist schwierig, dies ohne alle Details zu beantworten, aber hier ist ein allgemeiner Blick auf das Problem, von dem ich glaube, dass es auch die nützlichere Art der Antwort für diese Site sein könnte.

Multi-Node-Netze sollten immer simuliert werden. Sie sind so schwer vorherzusagen. Und es dauerte ungefähr 3 Minuten, um zu sehen, dass Ihr Design vielleicht nicht optimal war.

Hier ist der Simulationsaufbau für die Uhr vom Master bis zu allen Slave-Geräten (die Werte sind nur grobe Schätzungen, wie es der Fall wäre, wenn Sie dies vor dem Bau getan hätten):

Geben Sie hier die Bildbeschreibung ein

Und das resultierende Simulationsdiagramm (wir ignorieren, was was ist, Einheiten usw., da es offensichtlich nicht wert ist, gebaut zu werden):

Geben Sie hier die Bildbeschreibung ein

Die erste Idee, die mir in den Sinn kommt, ist eine Daisy-Chain aller Eingänge und eine einfache parallele Terminierung. Ein Fly-by-Schema, wenn Sie wollen. Das sieht im Simulationsaufbau so aus:

Geben Sie hier die Bildbeschreibung ein

Und der Ergebnisplot sieht viel schöner aus:

Geben Sie hier die Bildbeschreibung ein

Wenn Sie mit dem erhöhten Stromverbrauch der Thevenin-Terminierung und dem reduzierten Spannungshub an den Takteingängen der verschiedenen Geräte leben können und ... (nur Sie kennen die tatsächlichen Einschränkungen) ... dann kann sich eine Variation davon tatsächlich lohnen Gebäude.

Es gibt andere Lösungen, die funktionieren würden, aber der Schlüssel ist zu verstehen, dass Netze mit mehreren Knoten nicht leicht vorherzusagen sind. Die 5 Minuten Simulation hier, bevor Sie etwas bauen, können später viel Zeit sparen. Leider sind diese Art von Simulatoren nicht billig.

Ich verwende hier Cadence SigXplorer. Es gilt der übliche Haftungsausschluss: Ich unterrichte Kurse in Signalintegrität und habe oft Cadence- oder Mentor-Sponsor-Softwarelizenzen für diese Kurse.

Mit welcher Software simulieren Sie Übertragungsleitungen?
@efox29 Cadence SigXplorer und Mentor Hyperlynx.
@nickishere (OP) Hat das deine Frage beantwortet?
Hallo Rolf, vielen Dank, dass Sie sich die Zeit genommen haben, diese Schaltung zu simulieren, wirklich zu schätzen. Ich muss mir Cadence SigXplorer ansehen und werde def. Suchen Sie nach einem ähnlichen Werkzeug, wenn ich mich dem nächsten großen Bus nähere. Ich markiere Ihre Antwort als richtig, da sie die detaillierteste und relevanteste ist. Ich muss jedoch sagen, dass ich die Topologie empirisch verwendet habe, sodass ich nicht sagen kann, dass sie funktioniert.