SPI-Mehrfach-Slave-Terminierung

Ich habe über Signalintegrität gelesen und bin diese Seite durchgegangen, um darüber sowie andere Referenzen zu lesen. Viele der Themen befassen sich mit einem einzelnen Sklaven, aber nicht so sehr mit mehreren Sklaven.

Ich werde bald an etwas arbeiten, das mehrere Slave-Geräte erfordert (ich habe noch keine Nummer), aber für den Zweck dieser Frage nehmen wir einfach Folgendes an

  1. 5 Slave-Geräte
  2. 1 MHz Takt
  3. Der maximale Abstand zwischen zwei beliebigen Sklaven beträgt 15 cm (falls dies überhaupt eine Rolle spielt)

Fragen

  1. Wie sollen MOSI, MISO, CLK verbunden werden (Topologie)?
  2. Wie sollen MOSI, MISO und CLK terminiert werden? Ich habe gehört, dass die Quellenterminierung nur dann gut ist, wenn es einen Slave gibt.
  3. Würde CS auch eine Kündigung erfordern?

Antworten (2)

SPI ermöglicht die sogenannte „Daisy-Chain“- und Multi-Slave-Topologie. Sie scheinen Multi-Slave zu brauchen. Beachten Sie, dass Sie, obwohl Sie ein separates Signal für den CS-Pin jedes Chips benötigen, die MOSI/MISO/CLK-Pins zwischen Ihren Knoten teilen können.

Für Ihre Parameter denke ich, dass ein geeignetes geroutetes Board ausreicht, da Sie nicht mit hohen Takt- / Signalgeschwindigkeiten arbeiten.

Ich habe noch nie davon gehört, dass SPI-Pins terminiert werden. Sie müssen in der Tat auf Erdung achten und Kurzschlüsse vermeiden.

Beachten Sie auch, dass I2C eine geeignetere Lösung für die Verbindung mehrerer Geräte in einem BUS zu sein scheint (allerdings mit geringerer Geschwindigkeit).

Sie können Ihr Setup wie folgt haben:

HOST_MOSI -> DEVICE1_MOSI, DEVICE2_MOSI, ..., DEVICEn_MOSI
HOST_MISO -> DEVICE1_MISO, DEVICE2_MISO, ..., DEVICEn_MISO
HOST_CLK -> DEVICE1_CLK, DEVICE2_CLK, ..., DEVICEn_CLK

HOST_PIN1 ->DEVICE1_CS
HOST_PIN2 ->DEVICE2_CS
  ...
HOST_PINn ->DEVICEn_CS

Vielleicht möchten Sie Link 1 lesen .

Es gibt zwei Hauptfaktoren, die beeinflussen, wie stark das Überschwingen auf einer Leiterplattenspur auftritt: Ausbreitungsverzögerung und Signalanstiegszeit. Wenn die Ausbreitungsverzögerung nahe oder größer als die Anstiegszeit ist, treten Probleme auf. Die Ausbreitungsverzögerung für eine typische Spur beträgt vielleicht 1 ns pro 15 cm. (Für eine genauere Zahl gibt es einen Online-Rechner unter emclab.mst.edu/pcbtlc2)

Bei „weit voneinander entfernten“ Geräten sollten Pin-to-Pin-Verbindungen mit möglichst kurzen Stichleitungen erfolgen.

Die Quellenterminierung (auch bekannt als Serienterminierung) funktioniert am besten, wenn sich der Treiber am Ende der Leitung befindet. Wenn also nur ein Master am Ende der Leitung ist, sollte die Reihenterminierung auf CLK und MOSI in Ordnung sein, wenn die Leitung nicht zu lang ist. In anderen Fällen wird ein RC-Terminator an jedem Ende der Leitung wahrscheinlich besser funktionieren.

Chip-Select-Leitungen sollten auch terminiert werden, wenn sie "lang" sind. In diesem Fall kann ein Reihenabschluss auf der Treiberseite oder ein RC-Abschluss auf der Empfängerseite verwendet werden.