Richtige SPI, I2C-Terminierung und EMI-Begrenzer für externen Bus?

[BEARBEITEN]
Diese Frage wurde bearbeitet. Der Bus teilt sich nicht mehr. Die gesamte Frage und die Abbildungen wurden bearbeitet.

HINTERGRUND
Ich verwende einen ATSAM3U2E und möchte sowohl den SPI- als auch den I2C-Bus in den Erweiterungsanschluss für zukünftige Erweiterungskarten integrieren. Da ich nicht weiß, wie viele Geräte an jeden Bus angeschlossen werden, suche ich nach einer Richtlinie, wie der Bus korrekt auf der Hauptplatine (und Backplanes?) Terminiert werden kann.

Es gibt tatsächlich zwei Backplanes.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Beide Busse (I2C und SPI) sind mit einem Flachbandkabel mit den beiden Backplanes verbunden. Auf jeder Backplane befinden sich 1 bzw. 3 Randverbinder, in die die Erweiterungsplatine/Module eingeschoben werden.

Der Kabelabstand zur x3-Backplane beträgt etwa 20 - 30 mm, aber die Signalspuren auf der Hauptplatine können etwa 50 mm betragen. Das x1-Backplane-Kabel ist etwa 50 - 60 mm lang.

Ich möchte die Anzahl der Leiterbahnen und Drähte gering halten, damit ich nicht vorhabe, sie mit GND in den Kabeln zu paaren.

Da ich nicht weiß, wie diese Module und Erweiterungsboards in Zukunft aussehen würden, müssen wir wohl eine durchschnittliche Anzahl von Geräten schätzen. Es gibt bereits ein SPI-Gerät auf der Hauptplatine und schätzungsweise 1 SPI und ein I2C auf jedem Modul und jeder Erweiterungsplatine auf insgesamt:

  • Erweiterungskartenbus - 1 SPI- und ein I2C-Gerät.
  • Modulbus - 3 SPI- und 3 I2C-Geräte.

Mein Ziel ist es, die Busse mit maximaler Geschwindigkeit zu fahren; SPI bei 20 MHz und I2C bei 400 kHz, wenn möglich.

Das Erweiterungsboard soll neue Hochgeschwindigkeitsports wie Ethernet oder andere fortschrittlichere Erweiterungen hinzufügen. Es wird höchstwahrscheinlich eine eigene MCU haben.

Die Module sind für einfachere Aufgaben, wie Tastaturen, LED-Anzeigen und vielleicht ein kleines LCD.

FRAGE
Da SPI und I2C durch 4 Flachbandanschlüsse laufen, nehme ich an, dass ich einige Vorwiderstände in der Nähe der MCU platzieren werde. Aber wie sieht es mit EMI in den Kabeln aus? Soll ich auch etwas an den Anschlüssen auf der Hauptplatine und den Backplanes anbringen? Wie sieht es mit den Kantenverbindern aus, sollte ich dort etwas platzieren?

Soll ich die I2C-Pull-up-Widerstände in der Nähe der MCU oder in der Nähe des I2C-Busendes auf der Backplane platzieren? Oder am Erweiterungsstecker?

Wenn die Busse nur auf dem Mainboard wären, hätte ich es abgedeckt. Aber da so viele Stecker/Kabel unterwegs sind, bin ich mir nicht ganz sicher, wie ich damit richtig umgehen soll.

(Nehmen Sie aus Gründen der Diskussion an, dass ich die SPI-SS-Signale abgedeckt habe, ohne darauf hinzuweisen, dass ich sie nicht erwähne.)

Denken Sie daran, dass SPI und I2C als Intra-Board-Busse eingeführt wurden. Sie können (und wurden) für Anwendungen zwischen Boards, wie die von Ihnen beschriebenen, gestreckt werden (und wurden), aber Sie sollten sich darüber im Klaren sein, dass dies nicht die beabsichtigte Anwendung ist. Sie können am Ende ein Arrangement haben, das mit bestimmten Sklaven funktioniert, aber nicht mit anderen usw.

Antworten (1)

Bei 20 MHz SPI können Sie Probleme mit der Signalintegrität sowie EMI haben. Es hat mehr mit der Anstiegszeit des Signals zu tun. Eine schlechte Signalintegrität kann dazu führen, dass SPI nicht funktioniert. Das Fehlen von Erdungsdrähten in den Kabeln könnte die EMI sicherlich erhöhen. Beides könnte teilweise mit Vorwiderständen gemildert werden, um die Flanken der SPI-Signale zu verlangsamen. Ich würde in Erwägung ziehen, zusätzliche Erdungsdrähte im Kabel neben den SPI-Signalen hinzuzufügen. Es wäre eine gute Idee, dies zu simulieren, aber die Tools dafür sind sehr teuer, zumindest die, die ich verwende. Es ist schwer vorherzusagen, was tatsächlich passieren wird. I2C ist viel langsamer und daher risikoärmer. Ich glaube nicht, dass es wichtig ist, wo Sie die Pull-up-Widerstände platzieren, aber Sie möchten sie wahrscheinlich auf der Hauptplatine, damit der I2C-Bus nicht schwebt, wenn die Backplane nicht angeschlossen ist.

Die Platine ist schon fertig produziert und im Stecker ist einfach kein Platz mehr für GND-Kabel. Die Platinen werden jedoch in einem Land verwendet, in dem sie keine EMV-Vorschriften haben. Ich wollte nur vorbereitet sein, wenn wir anfangen, in Europa zu verkaufen.