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?
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.
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.
vielen Dank für die Tipps und Lösungsvorschläge!
Dann habe ich wohl schlicht den falschen Kommunikationsweg gewählt
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.