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?
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.
Äh ja erstmal Danke für die schnellen Antworten, wenn man die 3.3V am nano richtig ansteckt dann geht auch der serielle Bus 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.
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
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).
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.
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.
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.