Hi Leute, ich arbeite derzeit an einem Projekt, wo ich mehrere Sensoren der gleichen Baureihe per I2C anschließen will. Da die Datenrate und die Adressierung für einen einzelnen Bus für Probleme sorgen würde, will ich Cluster bilden. Das heißt von meinem Maincontroller per I2C an andere Microcontroller und von dort wieder per I2C an meine Sensoren (pro Cluster jeweils 2 Sensoren der gleichen Baureihe, da sich das LSB der Sensoren ändern lässt). Im Microcontroller soll dann schon eine Vorverarbeitung der Sensordaten stattfinden, so dass die Datenrate im Main-Bus ausreicht. Nun bin ich auf der Suche nach einem Microcontroller mit zwei I2C Schnittstellen, so das dieser als Master mit den Sensoren und als Slave mit dem Maincontroller kommunizieren kann. Was für Microcontroller würden sich denn da anbieten? Gibt es vielleicht irgendwo eine Seite, wo ich nach meinen Anforderungen filtern kann? Danke und viele Grüße, Courtman
Z.B. der ATmega328PB hat 2 I2C-Busse. Man kann aber auch das HW-I2C für den Slave und ein SW-I2C als Master nehmen.
Hallo, da fehlen noch einige Angaben, um dir helfen zu können: - wieviele Sensoren - haben alle die gleiche Adresse - Leitungslänge - kommen die Daten wirklich so häufig, dass ein Prozessor das nicht abkann? Da würde ich erst mal den I2C-Multiplexer TCA9548A ins Rennen werfen. Und Soft-I2C kannst du sooft machen, wie Prozessorpins vorhanden sind. Aber da wäre mir das o.g. IC angenehmer.
Courtman schrieb: > Nun bin ich auf der Suche nach einem Microcontroller mit zwei I2C > Schnittstellen, so das dieser als Master mit den Sensoren und als Slave > mit dem Maincontroller kommunizieren kann. I2C ist super für einfache Devices die einfach angeschlossen werden können. Für Kaskadierung oder zwischen 2 µC ist es weniger geeignet. Da sind je nach Anforderung (Entfernung, Anzahl, Datenaufkommen, Platz, Strom) individuelle Verbindungen sinnvoller, da Du ja "eh" alles programmieren musst. (Der Vorteil der I2C-ICs ist, dass sie eine handvoll Befehle und Funktionen nach Datenblatt perfekt beherrschen) Für einfache µC-Stern-Kommunikation eignen sich z.B. CAN oder Uart.
Vielleicht bringt Dich der weiter: TCA9548A - 8-channel, bidirectional translating I2C switch
Hi, danke für eure schnellen Antworten. Die Idee mit dem Multiplexer hatte ich auch bereits. In der Arbeit soll ich aber verschiedene Ansätze untersuchen. Daher noch die Idee mit dem Microcontroller. Helmut -. schrieb: > da fehlen noch einige Angaben, um dir helfen zu können: > - wieviele Sensoren > - haben alle die gleiche Adresse > - Leitungslänge > - kommen die Daten wirklich so häufig, dass ein Prozessor das nicht > abkann? Insgesamt sind es 27 Sensoren, 3 Bauarten. Das heißt jeder Sensor wird in dem Netzwerk 9 Mal verwendet (= 9 Sensornodes) Pro Sensor sind zwei verschiedene Adressen möglich. Bilden will ich drei Cluster mit jeweils 3 Sensornodes. Eines wird per SPI direkt an den Microcontroller angeschlossen und die anderen beiden dann per I2C. Die Leitungslänge ist ausreichend kurz. Maximal 1 Meter von Maincontroller bis zum am weitesten entfernten Sensornode. Pro Sensornode habe ich ein maximales Datenaufkommen von 400 kbps (wird vermutlich geringer ausfallen. Auflösung soll aber trotzdem möglichst groß gestaltet werden). Der Maincontroller unterstützt nur I2C Fast Mode (400 kHz). Durch die Vorverarbeitung in den Microcontrollern soll der Bus zum Maincontroller aber mit deutlich geringeren Datenraten arbeiten können. Edit: Die Wahl ist übrigens auf I2C gefallen, da die Infrastruktur möglichst unkompliziert gehalten werden muss und möglichst wenig Leitungen verwendet werden sollen. Die Kommunikation zwischen Micro- und Maincontroller ließe sich eventuell auch per SPI bewerkstelligen. Allerdings würde ich mir auch gerne die reine I2C Lösung näher anschauen
:
Bearbeitet durch User
Courtman schrieb: > Nun bin ich auf der Suche nach einem Microcontroller mit zwei I2C > Schnittstellen AVR128Dyxx Die haben alle mindestens eine I2C-Einheit, die aber gleichzeitig Master und Slave sein kann (die größeren haben zwei dieser Einheiten). Außerdem haben sie auch genug Rechenpower und RAM, um auch ziemlich komplexe "Vorverarbeitungen" vornehmen zu können. Außerdem sind sie auch noch relativ günstig und über einen weiten Spannungsbereich einsetzbar.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.