DS1820: User Bytes im Scratchpad lesen/schreiben

Gast #6334155
Lesenswert?

Hallo Gemeinde,

meine Schaltung hat leider keinen EEPROM, mein MSP430 keinen FRAM und 
ich müsste 1 Byte ablegen, das auch einen Stromausfall "überleben" wird.

Meine Schaltung besitzt allerdings einen DS1820 und im Datasheet ist von 
2 User Bytes die Rede (siehe Scratchpad-Aufbau).

Eines der beiden Bytes (Byte 2 oder Byte 3) könnte ich doch für solche 
Zwecke hernehmen oder?
z.B. ich speichere dort 0x34 ab und kann nach einem Stromausfall dort 
auch wieder 0x34 lesen?

Hat das schon mal jemand erfolgreich gemacht?

Herzlichen Dank!
Gast #6334166
Lesenswert?

Probiert habe ich es noch nicht, aber das Datenblatt ist eindeutig. Die 
beiden Userbytes liegen im EEPROM und behalten damit ihren Wert, wenn 
die Spannung abgeschaltet wird.


Figure 7. DS18B20 Memory Map (Auszug aus dem Datenblatt)
1
...
2
Byte 2 T H Register or User Byte 1
3
Byte 3 T L Register or User Byte 2
4
...
(Firma: www.harerod.de) Persönliche Seite #6334187
Lesenswert?

Sven Scholz schrieb:
> Danke - Wenn das wirklich möglich ist, wäre das eine absolut feine
> Sache. :-)

Hallo Sven,
wenn Du die Alarmgrenzen nicht verwendest, kannst Du die beiden Bytes 
TH/TL für eigene Zwecke verwenden.
Eine Änderung von TH alleine läuft wie folgt:
- komplettes Scratchpad lesen
- TH anpassen
- TH, TL, CONF zurückschreiben
- diese drei Scratchpad Bytes ins EEPROM schreiben

Bei einem Gerät bei dem mehrere Sensoren am Bus sitzen kann so während 
der Inbetriebnahme die Sensorposition direkt ins EEPROM schreiben.
Alternativ müsste das Gerät eine Information bekommen, welche 
1wire-Adresse einer Sensorposition entspricht. Hat auch Vorteile, aber 
der o.g. Ansatz ist oft einfacher.

Im Config-Byte legst Du die Auflösung/Wandlungszeit fest. Daher ist es 
wichtig, dass Du auch das Config-Byte sauber setzt.

marcus

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren