ESP32 (wrover-b) & atmega328 (Nano) verbinden - Seriell? I2C?

Hallo,
mir sind nach dem Anschluss einer 64x32 Matrix die GPIO's auf dem ESP32 (wrover-b) ausgegangen, für die 2x RGB Rotary Encoder und 3x nRF24 möchte ich einen Nano einsetzen.

Zuerst habe ich an seriell gedacht, ging aber nicht auf Anhieb denke mal dardurch das ich beide Seiten ja auch am PC angeschlossen habe und mitsniffen wollte... Jetzt ist die Überlegung I2C ...

Da beide aber da Senden starten müssen und empfangen müssen ist jetzt die Frage Master/Slave...
also beide als Slave lassen - wenn einer was senden muss zum Master machen?
Ich habe gelesen es geht auch mit 2 Mastern?

Oder gibt es eine bessere Alternative die 2 Controller miteinander zu verbinden?

Eigentlich müssten das ja schon viele gemacht habe so Porterweiterung?
Kennt jemand Bespiele die ich mir ansehen kann?

Danke und Grüße, Frank

PS: kann ich auch die Pullups anwerfen statt da Widerstände einzulöten?

Welche Pullup-Widerstände meinst du ?

Und I2C ist schon ok. 1 x Master, 1 x Slave.
Wenn der Slave was senden will, meldet er sich per IRQ beim Master und der fragt die Info ab.

Ich habe gelesen es geht auch mit 2 Mastern?

Doku lesen!
Dort sollte sich finden lassen, dass Multimaster Betrieb möglich ist.

Oder gibt es eine bessere Alternative die 2 Controller miteinander zu verbinden?

Kurze Entfernung? Dann: Nein!

PS: kann ich auch die Pullups anwerfen statt da Widerstände einzulöten?

Wenn du unbedingt auf der Suche nach Problemen bist, dann so.....

reviewmedia:
... Jetzt ist die Überlegung I2C ...

Ich würde das lassen. I²C ist deutlich fummliger als serielle Kommunikation.

Um was für Kommunikation geht es konkret? Kannst Du das nicht auch so lösen, dass eben einer „relativ oft“ nachfragt, ob etwas anliegt?

Gruß

Gregor

I²C ist deutlich fummliger als serielle Kommunikation.

Nein.

gregorss:
Ich würde das lassen. I²C ist deutlich fummliger als serielle Kommunikation.

Woraus ziehst du diese Erkenntnis ?

HotSystems:
Woraus ziehst du diese Erkenntnis ?

Erfahrung.

Serielle Kommunikation ist sehr simpel und kann normalerweise für alles intuitiv eingesetzt werden. Man muss noch nicht einmal eine Bibliothek einbinden und schon gar nicht an irgendwelchen Pullup-Krempel denken. Auch die „Referenz“ bietet alle Informationen, die man so braucht. Für I²C gilt das nicht.

Gruß

Gregor

Äh ja erstmal Danke für die schnellen Antworten, wenn man die 3.3V am nano richtig ansteckt dann geht auch der serielle Bus :wink: lol ich hatte es bei 3.3 angesteckt, jetzt mit dem 5V Pin läuft der Prozessor auch mit 3.3V statt am BrownOut zu hängen bei 2.4 - also erstmal Userfehler.

So zum I2C, das lass ich erstmal weil ich keine ordentlichen Beispiele für den ESP32 mit Interrupt gefunden habe und mir auf dem Nano 2 GPIOs flöten gehen (respektive auf dem ESP32 wenn ich die RTC zum Nano stecke).

Finde es jetzt eigentlich elegant mit dem seriellen, da ich auch noch mitlesen kann. Den IC2 mitzusniffen ist für mich schwer. Beim seriellen sniffe ich den anderen Kanal einfach mit einem alten Handydatenkabel (Pegelwandler) mit so sehe ich die volle Kommunikation.

Mal abgesehen von der PullUp Geschichte.

Also erstmal vielen Dank, Grüße, Frank

gregorss:
Erfahrung.

Serielle Kommunikation ist sehr simpel und kann normalerweise für alles intuitiv eingesetzt werden. Man muss noch nicht einmal eine Bibliothek einbinden und schon gar nicht an irgendwelchen Pullup-Krempel denken. Auch die „Referenz“ bietet alle Informationen, die man so braucht. Für I²C gilt das nicht.

Gruß

Gregor

Einer der damit anfängt, muss sich in beide Themen reinlesen.
Und wenn du richtig suchst, findest du für beide richtige Informationen.
Mit denen ist auch I2C sehr einfach zu nutzen, mit dem riesen Vorteil, es ist ein Bus.

Alles andere nehme ich mal als Ausrede (von dir) an, aber kein echtes Problem.

reviewmedia:
.....
Mal abgesehen von der PullUp Geschichte.

Deinen Beschaltungsfehler habe ich nicht verstanden, ist jetzt auch egal. Es funktioniert ja jetzt.

Was du mit der Pullup Geschichte meinst, hast du leider noch nicht erklärt.

Und warum du I2C mitsniffen willst, verstehe ich auch nicht.
Wenn du alles richtig programmiert hast, brauchst du nichts sniffen.
Zudem gibt es den seriellen Monitor, der kann dir deine Fehler aufzeigen, wenn gewollt.

HotSystems:
Mit denen ist auch I2C sehr einfach zu nutzen, mit dem riesen Vorteil, es ist ein Bus.

Dass das ein Bus ist, ist tatsächlich ein Riesenvorteil. Aber ein Anfänger hat ja nun eher selten mit mehr als zwei Teilnehmern zu tun.

HotSystems:
Alles andere nehme ich mal als Ausrede (von dir) an, aber kein echtes Problem.

Nein, das ist tatsächlich meine Erfahrung. Mit serieller Kommunikation klappte es bislang immer auf Anhieb, auch ohne dass ich mir irgendein spezielles Zeug reinziehen musste - wie gesagt zur seriellen Kommunikation findet man sofort alles, was man so braucht.

Ich gehe halt davon aus, dass Neulinge hier aufschlagen, weil sie Neulinge sind. Und da ich ein Fan des KISS-Prinzips (keep it simple, stupid) bin, empfehle ich das Naheliegendste.

Aber naja ... das mit dem Bus ist ein wirklich gutes Argument :slight_smile:

Gruß

Gregor

Der TE hat 3 Geräte, Arduino, Esp und rtc

ElEspanol:
Der TE hat 3 Geräte, Arduino, Esp und rtc

Im OP geht es um zwei Geräte, die miteinander kommunizieren sollen.

Gruß

Gregor

reviewmedia:
So zum I2C, das lass ich erstmal weil ich keine ordentlichen Beispiele für den ESP32 mit Interrupt gefunden habe und mir auf dem Nano 2 GPIOs flöten gehen (respektive auf dem ESP32 wenn ich die RTC zum Nano stecke).

3 Geräte am i2c

gregorss:
.....
Nein, das ist tatsächlich meine Erfahrung. Mit serieller Kommunikation klappte es bislang immer auf Anhieb, auch ohne dass ich mir irgendein spezielles Zeug reinziehen musste - wie gesagt zur seriellen Kommunikation findet man sofort alles, was man so braucht.
.....

Na, ok.....so geht mir das auch bei I2C, da habe ich keine Probleme. Genauso wenig wie bei seriell.

ElEspanol:
3 Geräte am i2c

Nicht ganz.
Wie ich es verstanden habe, soll an einen der Controller die RTC und beide dann miteinander plaudern, seriell oder I2C.

ElEspanol:
3 Geräte am i2c

Nicht, wenn die RTC eine OneWire ist :stuck_out_tongue:

Wenn es sowas überhaupt gibt.

Gruß

Gregor

gregorss:
Nicht, wenn die RTC eine OneWire ist :stuck_out_tongue:

Wenn es sowas überhaupt gibt.

Gruß

Gregor

Als SPI gibt es die allerdings.
Aber da lässt der TO uns im ungewissen.

reviewmedia:
für die 2x RGB Rotary Encoder und 3x nRF24 möchte ich einen Nano einsetzen.

Könntest du mir bitte erklären, was du mit drei NRFs machen willst?

gregorss:
Nein, das ist tatsächlich meine Erfahrung. Mit serieller Kommunikation klappte es bislang immer auf Anhieb, auch ohne dass ich mir irgendein spezielles Zeug reinziehen musste - wie gesagt zur seriellen Kommunikation findet man sofort alles, was man so braucht.

Ich gehe halt davon aus, dass Neulinge hier aufschlagen, weil sie Neulinge sind. Und da ich ein Fan des KISS-Prinzips (keep it simple, stupid) bin, empfehle ich das Naheliegendste.

Hier ein aktuelles Problem
Und hier noch so eins

Und das zieht sich hier wie ein roter Faden durchs Forum.
Das Scheitern beginnt beim Parsen des Datenstroms.
Und genau dieses nimmt einem die I2C Hardware/Software zum größten Teil ab.

Parsen ist ein Thema, mit dem man sich Wochen beschäftigen kann, bis man die wichtigsten Implikationen auf dem Schirm hat.
Also eher für (frustfeste) Fortgeschrittene beherrschbar.
Nicht so sehr für Anfänger.