Ich entwerfe mehrere Module (z. B. Sensoren, Motorsteuerung usw.), die über I²C kommunizieren müssen. Diese Module können bis zu 5 m (15 Fuß) vom Basismodul (I²C-Master – Spark Photon) entfernt sein – obwohl die meisten weniger als 5 Fuß entfernt sein werden. Um die Verbindungen einfach zu halten, möchte ich diese Module in Reihe schalten können.
Jedes Modul verwendet einen ATTiny84/85, der die verschiedenen Funktionen jedes Moduls (z. B. ADC/DAC) handhabt. Jedes Mikro fungiert auch als i2c-Slave (konfigurierbare Adresse) und reagiert auf Befehle des I²C-Masters (Spark Photon).
Ich würde wirklich gerne ein Ethernet-Kabel (RJ45) verwenden (missbrauchen). Angesichts der Tatsache, dass Ethernet-Kabel in verschiedenen Längen weit verbreitet und relativ kostengünstig sind, wären sie ideal. Ich könnte Strom (3,3 V & 5 V) und Masse sowie die I²C-Leitungen für jedes Modul bereitstellen und habe immer noch Ersatzdrähte, die ich möglicherweise in einer zukünftigen Überarbeitung verwenden könnte. Ich könnte sogar zwei verdrillte Paare verwenden, um die i2c-Leitungen abzuschirmen. Vielleicht? Der einzige Nachteil, den ich hier sehe, ist, dass jemand möglicherweise ein Crossover-Kabel verwendet, das die Dinge möglicherweise durcheinander bringen könnte.
Alternativ könnte ich USB-Kabel verwenden (weibliche Verlängerungskabel im A-Stil). Wenn ich separate Stromleitungen aufgebe und einen Spannungsregler an den Modulen verwende, die 3,3 V benötigen. Ich bin mir nicht sicher, ob meine Längenanforderungen hier erfüllt würden, aber wenn Daisy-Chaining funktioniert, sollte dies kein großes Problem sein.
Gibt es RJ45-Anschlüsse, mit denen ich einen Wire-to-Board-Anschluss (z. B. Molex Mini-Latch) verwenden könnte? Ich möchte mich wirklich nicht mit dem Präzisionsfräsen und den Kosten auseinandersetzen müssen, die für Durchgangsloch- oder Oberflächenmontage-Steckverbinder erforderlich sind.
Dasselbe gilt für USB-Anschlüsse.
UPDATE: Es scheint, dass I²C tatsächlich eine praktikable Lösung ist. Meine größte Sorge an dieser Stelle ist das zu verwendende Kabel und ob Steckverbinder verfügbar sind, die nicht direkt auf die Leiterplatte gelötet werden müssen (ideal wäre Wire-to-Board).
Wenn "Daisy-Chaining" bedeutet, dass Daten auf "I2C0" eingehen und auf "I2C1" wiederholt werden, sollten Sie nicht viele Probleme haben, außer dass Ihre Slaves zu beschäftigt sind, auf Interrupts zu reagieren, um irgendetwas zu messen.
"Daisy-Chaining" könnte auch bedeuten, sie zu befördern.
Erwägen Sie in jedem Fall, Ihre Spannung zu erhöhen und/oder einen Puffer/Leitungstreiber zu verwenden (zumindest zwischen den längsten Läufen). Dies nähert sich einer Neugestaltung von RS-232.
Einfach und vielleicht gut genug:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Das Datenblatt für den I2C-Bus-Extender P82B715 behauptet, dass er I2C-Signale bis zu 50 m über Twisted-Pair-Kabel wie Cat5e treiben kann, obwohl sie sagen, dass 30 m eine sicherere Zahl sind. Das ist immer noch viel mehr als Sie benötigen.
Diese Zahlen gehen von einer Datenrate von 100 kHz aus; Da Sie über eine viel kürzere Entfernung kommunizieren, kommen Sie möglicherweise mit einer schnelleren Rate davon, entweder 200 kHz oder sogar 400 kHz.
Wie Sie dem Schema entnehmen können, können mehr als zwei P82B715-Chips an demselben externen Bus miteinander verbunden sein (gekennzeichnet durch die vier gepunkteten Linien, die vom unteren Rand des Diagramms ausgehen), sodass er stattdessen die Form eines Sternnetzwerks annehmen kann von nur Punkt zu Punkt.
Die ICs sind bei Digi-Key für drei bis vier Dollar erhältlich.
Arsenal
Jon
davethebrave
Jon
Jon
captcha
AKR