Moin, Ich habe vor, das Auftreten von Erschütterungen zu Loggen. Dafür habe ich nen Arduino Uno R3, ein Adafruit 1141 Shield (SD-Kartenslot mit RTC) und ein GY-85 Sensorboard hergenommen. Der Realtimeclock ist ein PCF8523 (https://www.nxp.com/docs/en/data-sheet/PCF8523.pdf) und von dem Sensorboard nutze ich den ADXL345 Beschleunigungssensor (http://www.analog.com/media/en/technical-documentation/data-sheets/ADXL345.pdf) Sowohl RTC als auch ADXL werden über I2C angesteuert. Zuerst hatte ich nur das SD-Karten-Shield in betrieb genommen, das hat auch wunderbar geklappt. Dann habe ich das GY-85 aufgelötet, aber noch nichts in der Software geändert und schon spuckte der RTC nur noch Unsinn aus. Unsinn bedeutet, dass die aktuelle Zeit nicht übernommen wird und die Sekunden nicht richtig hochzählen. Kappe ich die SDA und SCL Leitungen zum GY-85 funktioniert der RTC wieder. Implementiere ich in der Software noch den ADXL, funktioniert dieser wie gewünscht, nur halt eben nicht der RTC mehr. Woran könnte das liegen? Da beide Boards jeweils eigene Pulldown-Widerstände haben, habe ich sie bei dem RTC die mal testweise entfernt. Brachte auch nichts. Beide Komponenten werden mit 5Volt betrieben, wobei das GY-85 einen eigenen LDO für 3,3Volt hat. Zusätzlich ist dann wieder ein Levelshift drauf, um wieder 5Volt Signale zu bekommen. Gruß und Danke, Johannes
Karls Q. schrieb: > Da beide Boards jeweils eigene Pulldown-Widerstände haben, habe ich sie > bei dem RTC die mal testweise entfernt. Brachte auch nichts. Du meinst wohl Pull-Up ... Der eigentliche Grund könnte die I2C-Slave-Adresse sein, die beim PCF8523 0x68 (Schreiben) und 0x69 (Lesen) ist und damit vermutlich mit MPU-3050 des GY-85 kollidiert (wahlweise fest 0x68 oder 0x69).
Besten DANK!!!!! Ja es gab wirklich einen Konflikt mit dem Gyro (ITG-3200). Hab kurzerhand die Busleitungen dorthin durchtrennt und schon funktionierte es. Ja ich weiß, nicht die feinste Art, aber Zielführend. Vielen dank für die Unterstützung! PCF und ADXL hatte ich auch vorher überprüft, aber an die anderen Sensoren habe ich nicht gedacht. Eberhard H. schrieb: > Du meinst wohl Pull-Up ... Ja genau, Pull-Up Gruß Johannes
Peter D. schrieb: > Lt. Datenblatt sollte es keinen Konflikt geben: > PCF8523: D0/D1 0x68 ist schon korrekt für die 7-Bit-I²C-Slave-Adresse (natürlich dieselbe sowohl für Lesen als auch für Schreiben, 0x69 war nicht korrekt). Karls Q. schrieb: > Ja es gab wirklich einen Konflikt mit dem Gyro (ITG-3200). Sowohl der 3050 als auch der 3200 haben wahlweise die 7-Bit-I²C-Slave-Adresse 0x68 oder 0x69 (durch Pin AD0 vorgegeben). Beim 3050 kann man I2C deaktivieren, beim 3200 offensichtlich nicht. > Hab kurzerhand die Busleitungen dorthin durchtrennt und schon > funktionierte es. Ja ich weiß, nicht die feinste Art, aber Zielführend. So hätte ich es auch gemacht (ggf. mit einem eigenen Pull-Up am I/O-Pin). Falls du auch einen dieser Gyros mitverwenden möchtest, hast du mehrere Möglichkeiten: - AD0 der Gyros auf High legen - einen separaten I²C-Bus für den PCF8523 verwenden - oder einen I²C-Adress-Bus-Translator (z.B. LTC4316) zwischen µC und PCF8523 einfügen
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.