Hallo Gemeinde, bisher hatte ich den VCC-Pin des DS1820 immer direkt an 3,3V angeschlossen. Gnd an Gnd und den Data-Pin an den Pin 2.3 meines MSP430. Das hat immer super funktioniert Nur im DeepSleep des MSP430 wurden über den Pullup-Widerstand zwischen VCC und Data immer ca. 80uA verbraucht, was mir immer zuviel war. Nun bin ich auf die Idee gekommen, VCC des DS1820 auch über einen Pin zu schalten, Pin2.4. (siehe Anlage) Sprich ich lege vor der Temp.Messung P2.4 zunächst auf High, mache eine Messung, und schalte P2.4 wieder auf low. Hatte nun erwartet, dass jetzt kein Strom mehr unnötig verbraucht wird. Klappt allerdings nicht. Ich messe nun sogar 157uA!!! Also da kann irgendwas nicht stimmen. Muss ich noch etwas mit den internen Pullups / Pulldown der GPIO-Ausgänge machen? Die Frage ist nämlich echt, wo da der Strom fließt, da ich direkt am 3,9k Pullup keine Spannung messe. Logisch da ja P2.3 und P2.4 beide low sind. Fragen über Fragen...
Sven Scholz schrieb: > Muss ich noch etwas mit den internen Pullups / Pulldown der > GPIO-Ausgänge machen? Abschalten.
Sind denn die Pullups oder Pulldowns standardmäßig aktiv wenn der Chip gebootet ist?
Sven Scholz schrieb: > Nun bin ich auf die Idee gekommen, VCC des DS1820 auch über einen Pin zu > schalten, Pin2.4. Warum überhaupt die dritte Leitung. Verbinde beim DS18B20 doch den VCC-Pin mit Gnd und versorge den Sensor über die Datenleitung (Fig. 6 im Datenblatt)
Hallo, bist du dir wirklich sicher das P2.3 auf Masse liegt? Denn das Data Signal hat Idle High Pegel, weil das mit parasitärer Versorgung auch zum laden genutzt wird. Messe alle Spannungen gegenüber GND.
Also ich habe P2.3 und P2.4 ja während DeepSleep (LPM3) gemessen gegen Ground. Da liegt jeweils keine Spannung an (0V) und ich messe einen Gesamtstromverbrauch von ca 157uA. Und dies auch, wenn der DS1820 gar nicht angesteckt ist! Verblüffend. Lasse ich den DS1820 weiterhin ausgesteckt und nehme den Software-Teil bzgl. dem Sensor raus also auskommentieren von DS1820.init() DS1820.measure() DS1820.getTempValue() Dann messe ich einen Strom in LPM3 von 0,4uA was korrekt ist. Es muss also mit der GPIO-Pin-Konfiguration zusammenhängen. Die DS1820 Library schaltet den P2.3 ja immer als Input und Ouput hin und her. Muss ich vielleicht bevor ich in DeepSleep gehe, den Pin wieder als Ausgang schalten mit Low-Pegel? Vielleicht ist der nach der Messung noch als Input-Pin konfiguriert und dann fließt intern im MSP430 noch dieser Strom von 157uA? Danke!
Hallo, hat die Lib ein disconnect() oder deinit() o.ä.? Ansonsten ist das auf jeden Fall einen Versuch wert. Nach dem wecken dann immer erneut init() ausführen.
Irgendwo im MSP430-Datenblatt steht, dass man für minimale Verlustleistung die Ports auf Input schalten und die Pull-ups/Pulldowns ausmachen soll. Schaue Dir mal PxDIR und PxREN an, sollten beide auf 0 stehen.
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.