Forum: Mikrocontroller und Digitale Elektronik MS5803-14BA mit I2C an ESP8266 keine Daten


von rrhan (Gast)


Lesenswert?

Hallo zusammen,

hat jemand schonmal den MS5803-14BA Absolutdrucksensor (mit dem roten 
Breakout) mit einem ESP8266 verbunden? Mit Micropython meldet sich der 
Sensor nichtmal auf i2c.scan() und mit den Beispielbibliotheken von 
Sparkfun antwortet er ebenfalls nicht. An einem Raspberrypi (mittels 
Python) läuft er sofort.
Habe einiges probiert, aber keinen Erfolg bis jetzt. Mein Logikanalyzer 
zeigt auch brav die i2c befehle, aber eben nur NACKs.
Für Tipps oder Ideen wäre ich dankbar.

MfG, rrhan

von Bernhard S. (b_spitzer)


Lesenswert?

Pin PS auf High gelegt und Pin CSB auf einen festen Pegel?? Sonst ist 
entweder der SPI-Modus aktiv oder die I2C-Adresse nicht richtig 
konfiguriert. Hat das Modul integrierte Pull-Up Widerstände?

Sonst teste mal mit getauschten Leitungen SDA/SCL.

von rrhan (Gast)


Lesenswert?

Ich nutze aktuell dieses Board:

https://cdn.sparkfun.com/datasheets/Sensors/Weather/MS5803-14BA_Breakout_v10.pdf

https://cdn.sparkfun.com/assets/learn_tutorials/1/3/2/FrontView.jpg

PullUps sind integriert, laut Schema ist PS high, wie gesagt, dass Modul 
läuft ohne weitere Anpassung am Raspberry. Getauschte Leitungen hab ich 
schon versucht.
Was meinst du mit Adresse nicht richtig konfiguriert? Der Scan mit ESP 
liefert auf dem Bus kein Adresse. (Der RaspberryPi liefert 0x76)
Ich habe auch schon andere Pins am ESP getestet. Pin 4/5 und Pin 12/13 
ohne Besserung.

von rrhan (Gast)


Lesenswert?

Nach einigem herumprobieren funktioniert nun der Sensor am ESP8266 an 
den Ports sda=12 und scl=13 mit Micropython.
Alerdings nur solange mein Logikanalyzer angeschlossen ist, und ich habe 
festgestellt, dass meine Steckbrücken getrennt sein müssen, da sonst 
häufig Fehler passieren (Übersprechen?), Fehler ist relativ 
Frequenzunabhängig (5khz - 400khz getestet)
Micropython in Version v1.11-8 habe ich aufgespielt.
Zum Testen habe ich die ms5803py (https://pypi.org/project/ms5803py/) - 
Bibliothek auf Micropython angepasst.

Ein ähnliches Problem nur mit anderem Sensor und anderer Firmware wurde 
hier bereits diskutiert:
Beitrag "ESP8266 Micropython : I2C"

von rrhan (Gast)


Lesenswert?

Achso, und hier wurde es angeblich gefixt, wovon ich aber nichts merke:

https://github.com/micropython/micropython/issues/3555

von rrhan (Gast)


Lesenswert?

Ich habe noch ein paar Tests gemacht und nun funktioniert es, mit Pin4,5 
und Pin12,13.

Die Pins müssen mit:

Pin(4,Pin.OPEN_DRAIN,Pin.PULL_UP)

initialisiert werden.

Die Kabel dürfen nicht zu nah aneinander sein. Verstehe ich nicht so 
recht, übersprechen?

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
Noch kein Account? Hier anmelden.