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
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.
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.
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"
Achso, und hier wurde es angeblich gefixt, wovon ich aber nichts merke: https://github.com/micropython/micropython/issues/3555
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.