Forum: Mikrocontroller und Digitale Elektronik DS1820 komplett wegschalten


von Sven Scholz (Gast)


Angehängte Dateien:

Lesenswert?

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...

von hinz (Gast)


Lesenswert?

Sven Scholz schrieb:
> Muss ich noch etwas mit den internen Pullups / Pulldown der
> GPIO-Ausgänge machen?

Abschalten.

von Sven Scholz (Gast)


Lesenswert?

Sind denn die Pullups oder Pulldowns standardmäßig aktiv wenn der Chip 
gebootet ist?

von Wolfgang (Gast)


Lesenswert?

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)

von Veit D. (devil-elec)


Lesenswert?

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.

von Sven Scholz (Gast)


Lesenswert?

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!

von Veit D. (devil-elec)


Lesenswert?

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.

von Max G. (l0wside) Benutzerseite


Lesenswert?

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