Problem mit der Beendigung des SPI-Busses

10

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

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

Ich habe ein Verdrahtungs- / Platinen-Diagramm beigefügt, das die Länge des SPI-Masters und aller Peripheriegeräte zeigt. Die SPI-Buslänge (alle Kabellängen) vom Master entfernt beträgt für meinen Experimentierfall ungefähr 970 mm.

Geben Sie hier die Bildbeschreibung ein

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

Ich habe hier etwas gelesen: Überlegungen zur Beendigung des SPI-Busses und hier: Kurzstrecken-Kommunikation von Board zu Board

Wo empfohlen wird, einen RC-LPF so nahe wie möglich an einem beliebigen 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 mit scharfen Kanten von ~ 100 ns zu reduzieren.

Ist dies das richtige Verfahren, das ich hier beim Hinzufügen eines RC-LPF befolge? Das scheint wirklich wackelig, gibt es eine bessere Praxis? Ich habe eine App-Notiz von TI gesehen, in der über die Erweiterung des SPI für längere Busentfernungen gesprochen wird. Ist dies hier eine geeignete Lösung oder mein Problem einfach eine der Hochfrequenz-Harmonischen aus dem Hochgeschwindigkeits-Kantenübergang? http://www.ti.com/lit/an/slyt441/slyt441.pdf

Danke, Nick

Eine saubere CLK / MISO-Messung vom Magnetometer

Messung der Taktübergangszeit des CLK-Signals

Zeigt diese MISO-Linie (Kanal 1) Reflexionen?  Die Ebenen sehen mit Treppenhaus nicht digital aus, ist dies Reflexionen

shraken
quelle
Haben Sie die Möglichkeit, Vorwiderstände hinzuzufügen und die Verkabelung zu ändern?
efox29
Hallo efox29, ja aber es wird ein bisschen dreckig. Mein SPI-Master befindet sich auf einem SOM, der auf meinem Tochterboard montiert ist. Meine Absicht ist es, die Spur für SCK und MOSI zu schneiden und für jeden einen 330-Ohm / 47pF 0603/0805 RC mit Epoxidharz / Kleber zu montieren und etwas Ähnliches auf den A / D- und Magnetometerplatinen 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 einen Moment, bis ich mehr höre, aber ich habe vor, es morgen zu versuchen. Ich habe jedoch nicht die Möglichkeit, SPI in eine Daisy-Chain oder etwas anderes umzuwandeln. Würde sowieso nicht viel nützen, Boards müssen sich an entgegengesetzten Enden befinden.
shraken
Wie ist Ihr System mit einer langsameren Uhr wie 50 kHz? Was ist der Mikrocontroller, den Sie verwenden?
efox29
Ich würde vorschlagen, zuerst mit der SCK-Zeile zu beginnen, bevor Rs und Cs zu den anderen Zeilen hinzugefügt werden. Schließlich sind Kanten nur auf der Taktlinie von Bedeutung, während die anderen Linien gegenüber Reflexionen toleranter sind.
Alex. Forencich
2
Und bei dieser Art von Problem ist die Kantenanstiegsrate das Problem, nicht die Taktfrequenz. Wenn Sie das gleiche Problem unabhängig von der Taktfrequenz sehen, sind die schnellen Flanken das Problem und müssen verlangsamt werden.
Alex. Forencich

Antworten:

5

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 ist.

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

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

Geben Sie hier die Bildbeschreibung ein

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

Geben Sie hier die Bildbeschreibung ein

Die erste Idee, die mir in den Sinn kommt, ist eine Verkettung aller Eingänge und eine einfache parallele Terminierung. Ein Fly-by-Schema, wenn Sie möchten. Dies sieht im Simulationssetup folgendermaßen aus:

Geben Sie hier die Bildbeschreibung ein

Und das Ergebnisdiagramm sieht viel besser aus:

Geben Sie hier die Bildbeschreibung ein

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

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

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

Rolf Ostergaard
quelle
Mit welcher Software simulieren Sie Übertragungsleitungen?
efox29
@ efox29 Cadence SigXplorer und Mentor Hyperlynx.
Rolf Ostergaard
@nickishere (OP) Hat dies Ihre Frage beantwortet?
Rolf Ostergaard
Hallo Rolf, danke, dass du dir die Zeit genommen hast, diese Schaltung zu simulieren. Ich muss in Cadence SigXplorer schauen und werde def. Suchen Sie nach einem solchen Werkzeug, wenn ich mich dem nächsten Mal einem 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.
shraken