SPI max Entfernung


8

Ich habe einen PIC16F877 µController, der über SPI mit einem MCP23S17 verbunden ist, und der letzte, der mit einer Tastatur und einem LCD-Bildschirm verbunden ist. Der Abstand zwischen dem µController und dem integrierten MCP-Schaltkreis beträgt 5 m. Meine Frage ist, wird es funktionieren oder nicht? Und wenn es nicht funktioniert, wie kann ich dieses Problem lösen. Gibt es eine Lösung (wie eine integrierte Schaltung oder einen Trick)?

Bild 1


1
SPI wurde für die Kommunikation auf der Leiterplatte entwickelt. Dies ist eine schreckliche Idee. Vielleicht finden Sie eine alternative und geeignetere Kommunikationsmethode, die für die Kommunikation außerhalb des Boards oder zumindest für größere Entfernungen ausgelegt ist, wie I2C
KyranF

5
@KyranF I2C ist eine interintegrierte Schaltung , die nicht für Off- Board- oder Ferngespräche ausgelegt ist. Ein nicht unterstützter SPI-Bus wäre für die Off-Board-Kommunikation besser geeignet als ein nicht unterstützter I2C-Bus.
Samuel

1
@KyranF Ich werde das, was Samuel gesagt hat, unterstützen. Da I2C ein Open-Collector-Bus ist, hat einfaches I2C mehr Fernprobleme als einfaches SPI.
Nick Alexeev

I2C hat viele großartige Ergänzungen, die es ihm ermöglichen, einen ziemlich fairen Weg zu gehen. Es ist auch spannungsinvariant, sodass Sie höhere und rauschresistentere Spannungspegel wählen können.
KyranF

Wenn das OP die Option hat, würde es besser sein, sich für RS232 oder 485 (besser) zu entscheiden, wenn man versucht, Kommunikationen im PCB-Stil wie SPI und I2C dazu zu bringen, etwas zu tun, für das sie nicht gedacht sind.
KyranF

Antworten:


10

In einer Antwort in einem Microchip-Forum behauptet Jan Axelson, Autor von 'Serial Port Complete', eine maximale Kabellänge von 10 'für den SPI-Bus. Andere Beiträge haben die gleiche Zahl erwähnt. Ihre Entfernung von 5 m kann also funktionieren oder auch nicht, da sie nur ein wenig länger ist.

Eine andere Antwort im selben Forum empfiehlt die Verwendung von 120-Ohm-Abschlusswiderständen in den Leitungen.

In der Diskussion zu diesem Thema gibt es mehrere Empfehlungen, die besagen, dass ein großer Faktor darin besteht, die Taktrate auf nur 100 kHz zu reduzieren. Dann betrachten Sie Ihre Signale mit einem Oszilloskop.

Eine Möglichkeit, die Entfernung weit über Ihre Anforderungen hinaus zu erhöhen, ist die Verwendung digitaler Isolatoren und Twisted-Pair-Treiber, wie in diesem Artikel beschrieben: "Erweitern des SPI-Busses für die Fernkommunikation" Es wird eine Entfernung von 100 m angegeben (kein Tippfehler).


3

Sie können LVDS-Treiber und -Empfänger verwenden, um die Single-Ended-Logiksignale in Differenzsignale umzuwandeln. Am zuverlässigsten für ein einzelnes Drop-Setup (nur von der Platine zur externen Platine), und es ist erforderlich, dass die Erdung potenziell nahe beieinander liegt.

Verwenden Sie verdrillte Paare (zB CAT5 - Kabel) und stellen Sie sicher , dass Sie geeignete verwenden Abschlüsse oder es wird nicht zuverlässig arbeiten, wenn über .

https://www.fairchildsemi.com/application-notes/AN/AN-5017.pdf


2

Es ist möglich, die Daten zwischen den Modulen mithilfe eines Trans-Receiver-Treibers zu übersetzen. RS485 so ähnlich

Geben Sie hier die Bildbeschreibung ein

MAX3490

Sie müssen einige dieser Trans-Empfänger verwenden. Die Idee ist nur zur Veranschaulichung, dass Sie jeden Trans-Treiber verwenden können, der zwei Treiber enthält und Ihren Anforderungen am besten entspricht

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.