
DS1923: Hygrochron Temperature/Humidity Logger iButton with 8kB Data Log Memory
48 of 52
STEP 3
Start the new mission.
With only a single device connected to the bus master, the communication of step 3 looks like this:
MASTER MODE
TX
RX
TX
TX
TX
TX
TX
RX
If step 3 was successful, the MIP bit in the General Status Register will be 1, the MEMCLR bit will be 0 and the
mission start delay will count down.
SOFTWARE CORRECTION ALGORITHM FOR TEMPERATURE
The accuracy of high-resolution temperature conversion results (forced conversion as well as temperature logs)
can be improved through a correction algorithm. The data needed for this software correction is stored in the
calibration memory (memory page 18). It consists of reference temperature (Tr) and conversion result (Tc) for two
different temperatures, as shown below. See section
Temperature Conversion
for the binary number format.
ADDRESS
DESIGNATOR
0240h
Tr2H
Cold reference temperature, high-byte
0241h
Tr2L
Cold reference temperature, low-byte
0242h
Tc2H
Conversion result at cold reference temperature, high-byte
0243h
Tc2L
Conversion result at cold reference temperature, low-byte
0244h
Tr3H
Hot reference temperature, high-byte
0245h
Tr3L
Hot reference temperature, low-byte
0246h
Tc3H
Conversion result at hot reference temperature, high-byte
0247h
Tc3L
Conversion result at hot reference temperature, low-byte
The software correction algorithm requires two additional values, which are not stored in the device. For the
DS1923 these values are Tr1 = 60°C and Offset = 41.
The correction algorithm consists of two steps, preparation and execution. The preparation step first converts
temperature data from binary to decimal °C format. Next three coefficients A, B, and C are computed. In the
execution step the temperature reading as delivered by the DS1923 is first converted from the low/high-byte format
(TcL, TcH) to °C (Tc) and then corrected to Tcorr. Once step 1 is performed, the three coefficients can be used
repeatedly to correct any temperature reading and temperature log
of the same device
.
Step 1. Preparation
Tr1 = 60
Offset = 41
Tr2 = Tr2H/2 + Tr2L/512 - Offset
(convert from binary to °C)
Tr3 = Tr3H/2 + Tr3L/512 - Offset
(convert from binary to °C)
Tc2 = Tc2H/2 + Tc2L/512 - Offset
(convert from binary to °C)
Tc3 = Tc3H/2 + Tc3L/512 - Offset
(convert from binary to °C)
Err2 = Tc2 - Tr2
Err3 = Tc3 - Tr3
Err1 = Err2
B = (Tr2
- Tr1
2
) * (Err3 - Err1)/[(Tr2
2
- Tr1
2
) * (Tr3 - Tr1) + (Tr3
2
- Tr1
2
) * (Tr1 - Tr2)]
A = B * (Tr1 – Tr2) / (Tr2
- Tr1
)
C = Err1 - A * Tr1
- B * Tr1
DATA (LSB FIRST)
(Reset)
(Presence)
CCh
CCh
<8 FFh bytes>
FFh
(Reset)
(Presence)
COMMENTS
Reset pulse
Presence pulse
Issue “skip ROM” command
Issue “start mission” command
Send dummy password
Send dummy byte
Reset pulse
Presence pulse
DESCRIPTION