Probleme mit I2C Übertragung Arduino Nano zu Arduino Mega

Hallo Zusammen,

ich möchte Daten via I2C von einem Arduino Nano auf einen Arduino Mega übertragen. Der Arduino Nano besitzt zudem noch eine DS3231 über I2C.
Sind beide Arduinos an, funktioniert die Übertragung zwischen den Arduinos, sowie die Übertragung zwischen DS3231 und Arduino Nano gut.

Allerdings soll der Arduino Mega nicht immer an sein. Wenn ich dieses ausschalte, funktioniert auch die Verbindung vom Arduino Nano zur DS3231 nicht mehr. Trenne ich die Kabel der I2C Verbindung zwischen Arduino Nano und Mega, funktioniert die Kommunikation zwischen DS3231 wieder.

Ich habe schon verschiedene Pullup Widerstände ausprobiert, allerdings bin ich mir nicht sicher welche ich nehmen soll. Soweit ich recherchiert habe, hat der Mega wohl 10K integriert, soll aber ja nicht immer an sein. Die Widerstände auf der DS3231 hab ich ausgelötet. Habe es mit 10K und 4,7K versucht, aber das Problem bleibt trotzdem bestehen.

Hat jemand eine Idee woran das Problem liegen könnte und wie man es lösen kann?

Viele Dank und Grüße

Hallo,
wie ist das denn verdrahtet und wie Lang sind die Verbindungen. Wenn der Mega aus ist hast Du womöglich zwei offene Enden von dem Bus und da fehlen dann die Pullups am Bus. Ich denke es ist besser die Widerstände in in der DS3231 drin zu lassen, dem Mega ans Ende vom Bus zu hängen und zus. da zwei Pullups 10K zu verwenden damit der Bus richtig abgeschlossen wird.

Heinz

Klar!
Der abgeschaltete µC zieht die I2C Pins über seine Clampdioden auf low.

Der Bus ist für die Kommunikation auf einer einzigen Platine erfunden worden. Da kann man keine Bereiche "einfach mal so abschalten".

Du betreibst den Bus also außerhalb der Spezifikation.

Lösung?
Trennrelais....?!?

PCA9541 zweckentfremden.

Nöö...
Denn die beiden Master sollen ja auch miteinander quatschen können

Sind es denn beide Master?
Wenn der Nano Master ist, die DS auf dem Bus und ein Master vom PCA, auf der SlaveSeite des PCA der Mega. Ist der weg ist die Slaveseite tot, aber die Masterseite bleibt aktiv.
@jabov alternativ nen Busextender einsetzen. Macht auch Spezifikations sicherer.

Muss ja wohl, wenn man den Chip einsetzt!

Hallo Zusammen,

vielen Dank für die Tipps und Lösungsvorschläge!
Dann habe ich wohl schlicht den falschen Kommunikationsweg gewählt :man_facepalming:

Ich würde die beiden Arduinos dann einfach über die Serielle Schnittstelle verbinden, es müssen ohnehin nur kleine Datenmengen übertragen werden und die I2C Verbidung bleibt dann der DS3231 vorenthalten.

Vielen Dank und viele Grüße

Ich glaube, du hast da irgendwas ganz wichtiges noch nicht verstanden...

Denn:
Die UART hat auch einen High Ruhepegel.
Auch hier wird der abgeschaltete µC über seine Clampdioden versorgt.

Mir kommt 74HC4016 High-Speed CMOS Logic Quad Bilateral Switch in den Sinn, die 40 Ω Durchlaßwiderstand dürften nicht ins Gewicht fallen.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.