Ups... im Thread-Titel steht der DS18S20, für den galt die Antwort da oben...
Im Thread scheints inzwischen aber auch um den DS18B20 zu gehen, und bei dem kann die Auflösung eingestellt werden.
Beide besitzen ein flüchtiges Scratchpad. Der Begriff SRAM ist hier unpassend, da man nicht wahlfrei auf einzelne Adressen zugreifen kann, sondern immer in einer vorgegebenen Reihenfolge Lesen/schreiben muß. Einige Bytes sind nur lesbar, andere können geschrieben werden.
Beim 18S20 sind das nur die Alarmgrenzen, beim 18B20 zusätzlich das Konfigurationsbyte (wo lediglich die Auflösung konfiguriert wird).
Außerdem besitzen beide nichtflüchtigen EEPROM, der die Alarmgrenzen und beim 18B20 das Konfigurationsbyte nichtflüchtig sichern können.
Nach einem Copy Scratchpad Kommando (0x48) läßt kopiert der 18x20 den derzeitigen Inhalt der Alarmregister und ggf des Konfigurationsregisters in die entsprechenden EEPROM-Register. Mit dem Recall E² Kommando (0xB8) werden die Daten aus dem EEPROM ins Scratchpad kopiert.
Soweit war das wahrscheinlich klar, nun zu Frage 1 - dazu findet man im Datenblatt zwei wiedersprüchliche Stellen:
Datenblatt S.9 - Configuration Register schrieb:
The power-up default of these bits is R0 = 1 and R1 = 1 (12-bit resolution).
Datenblatt S.8 - Memory schrieb:
Data in the EEPROM registers is retained when the device is powered down; at power-up the EEPROM data is reloaded into the corresponding scratchpad locations.
Ist das jetzt so zu interpretieren, daß zu Beginn des PowerUp erstmal 12Bit eingestellt sind, aber während des PowerUps automatisch die Vorgabe aus dem EEPROM übernommen wird?
(also die 12Bit solange im Konfigurationsbyte Stehen, bis das PowerUp den Wert aus dem EEPROM laden läßt).
Dann müßtest Du einmal die Auflösung über das Scratchpad ins EEPROM schreiben lassen, von dort wirds dann bei jedem PowerUp automatisch geladen.
Und jetzt nochmal zu Frage 2:
Welchen Sensor meinst Du da? Ich finde in beiden Datenblättern immer -55..125°C.
Die Auflösung ist immer so, wie Du sie eingestellt hast: 9 (°C/2), 10 (°C/4), 11 (°C/8) oder 12 (°C/16) Bit.
Hmm... oder meinst Du die Genauigkeit des Sensors, die im Bereich von -10..85°C mit einem halben °C und ausserhalb dieses Bereiches mit 2°C angegeben ist (müßten eigentlich Kelvin sein)?
Das hat ja nichts mit der binären Auflösung zu tun, sondern daß das ganze da draussen weniger linear ist