Abstract
Before it can accurately measure temperatures, the DS2422 needs to undergo a two-point trim. For the highest level of accuracy, this trim needs to take place as late as possible, i.e., with the end product that the DS2422 resides in. The accuracy can be further improved through software correction if actual values and temperature readings of the DS2422 at additional temperature points are stored in the calibration memory. This application note describes how to perform the trim, how to obtain, format and store the data for the software correction and how to perform the software correction. A spreadsheet with calculations and format conversions used in this application note can be downloaded from www.ibutton.com.
Introduction
With exception of the lasered ROM, the DS2422 needs a backup power source to keep memory data nonvolatile. Although one can write to the ROM while the chips are still on the wafer, a trim at this stage is technically not feasible. In addition, the trim could not compensate for shifts that occur at later processing steps, such as packaging of the chip and manufacturing of the end product. For these reasons, to achieve the highest level of accuracy, the trim needs to take place as late as possible, i. e., with the end product that the DS2422 resides in.
The minimum preparation of the DS2422 before it can measure temperature with any accuracy is a two-point trim. To perform this trim, one needs a temperature chamber that provides an even temperature distribution and that includes a calibrated, very precise temperature measurement system.
To increase accuracy, one can store actual value and temperature reading of the DS2422 at additional temperature points in the calibration memory and use that data with a correction algorithm. These steps are referred to as Obtain Data for Software Correction and Perform Software Correction.
Part 1. Required Two-Point Trim
The purpose of this trim is to fine-tune the parameters Conversion Length| CLEN and Temperature Reset Value Treset, which control the temperature measurement core of the DS2422. There is access to these parameters through addresses 0404/5h (Treset) and 0406/7h (CLEN) within the Trim Register Page. This trim needs to take place at 60°C (Tref1) and at -10°C (Tref2). Table 1 lists all constants and parameters that are involved in the trim.
Name | Value | Units | Description |
K1 | 0.0625 | °C | System constant, resolution |
K2 | 273 | --- | System constant, Celsius to Kelvin offset, in °C |
Treset_init | 116B | --- | Temperature Reset Value, default value, hex format as read from device |
Treset_init_D | 4459 | --- | Treset_init, but converted into decimal |
CLEN_init | 12A6 | --- | Conversion Length, default value, hex format as read from device |
CLEN_init_D | 4774 | --- | CLEN_init, but converted into decimal |
Tref1 | 60 | °C | Hot trim point, nominal value |
Tref2 | -10 | °C | Cold trim point, nominal value |
Tref1_D | °C | Hot trim point temperature, reading from temperature chamber | |
Tref2_D | °C | Cold trim point temperature, reading from temperature chamber | |
Tread1 | --- | Temperature conversion result when DS2422 is exposed to Tref1, hex format as read from device | |
Tread2 | --- | Temperature conversion result when DS2422 is exposed to Tref2, hex format as read from device | |
Tread1_D | °C | Tread1, but converted into decimal °C | |
Tread2_D | --- | Tread2, but converted into decimal °C |
The following steps are necessary to obtain the data required for the trim:
- Put the end product (with power applied to VBAT and the oscillator running, connected through the 1-Wire® interface to a PC) into the temperature chamber.
- Set the DS2422 into the high-resolution mode (TLFS = 1).
- Ramp up the temperature chamber to Tref1 (60°C).
- When the temperature has stabilized, read Tref1_D from sensors that are part of the temperature chamber.
- Immediately after reading Tref1_D, issue the Forced Conversion command for the DS2422 to perform a temperature conversion.
- Read Tread1 from DS2422, address 020C/Dh, convert it into decimal °C format, and store it as Tread1_D together with Tref1_D for later use.
- Ramp down the temperature chamber to Tref2 (-10°C).
- When the temperature has stabilized, read Tref2_D from sensors that are part of the temperature chamber.
- Immediately after reading Tref2_D, issue the Forced Conversion command for the DS2422 to perform a temperature conversion.
- Read Tread2 from DS2422, address 020C/Dh, convert it into decimal °C format, and store it as Tread2_D together with Tref2_D for later use.
Now perform the following computation, which yields the new values for the trim registers of the DS2422:
Ratio = (Tread1_D + K2)/(K1 x 2 x (CLEN_init_D + 1))
CLEN_new_D = (CLEN_init_D + 1) x (Tref1_D - Tref2_D) / (Tread1_D - Tread2_D) - 1Tread1_new_D = 2 x (CLEN_new_D + 1) x Ratio x K1 - K2
Tzero_adjust_D = (Tref1_D - Tread1_New_D) / K1
Treset_new_D = Treset_init_D + Tzero_adjust_D
Round Treset_new_D to the nearest integer value and convert into 16-bit hexadecimal Treset_new.
Round CLEN_new_D to the nearest integer value and convert into 16-bit hexadecimal CLEN_new.
Write Treset_new and CLEN_new to the trim registers 0404/5h (Temperature Reset Value) and 0406/7h (Conversion Length), with the low-order byte going to the lower address.
This concludes the Two-Point Trim. The device is now ready for use. It retains its trim as long as the VBAT pin of the DS2422 remains connected to a backup power source to keep the data nonvolatile. If power is removed, the calculated trim values will remain valid and can be rewritten to the CLEN and Treset registers as long as the VBAT level from the calibration step is used in the final application.
Part 2. Obtain Data for Software Correction
The accuracy of temperature data taken with the DS2422 can be improved through postprocessing, also referred to as software correction. The correction algorithm described in this document is based on a total of three temperatures, Tref1, Tref2, and Tref3. The first two points are identical to the hot and cold trim points. The third point is the center between -10°C and 60°C, i. e., 25°C.
To perform the software correction, one needs to know the difference between DS2422 conversion result and actual value at the three reference temperatures (Table 2). For Tref2 and Tref3 the actual value and conversion result are communicated to the end user through the calibration memory of the DS2422. Due to the method used for the trim process, the temperature error at Tref1 is the same as the error at Tref2. Tref1 and the DS2422 conversion result at Tref1, therefore, need not be stored in the calibration memory.
Name | Value | Units | Description |
Tref1 | 60 | °C | Hot trim point, nominal value |
Tref2 | -10 | °C | Cold trim point, nominal value |
Tref3 | 25 | °C | Center temperature, nominal value |
Tref2_D | °C | Cold trim point temperature, reading from temperature chamber | |
Tref3_D | °C | Center temperature, reading from temperature chamber | |
Tread2 | --- | °C | Temperature conversion result when DS2422 is exposed to Tref2, hex format as read from device |
Tread3 | --- | °C | Temperature conversion result when DS2422 is exposed to Tref3, hex format as read from device |
To obtain the data for software correction, perform the following steps:
- Put the end product (with power applied to VBAT and the oscillator running, connected through the 1-Wire interface to a PC) into the temperature chamber.
- Set the DS2422 into the high-resolution mode (TLFS = 1).
- Ramp down the temperature chamber to Tref2 (-10°C).
- When the temperature has stabilized, read Tref2_D from sensors that are part of the temperature chamber.
- Immediately after reading Tref2_D, issue the Forced Conversion command for the DS2422 to perform a temperature conversion.
- Read Tread2 from DS2422, address 020C/Dh, and store it together with Tref2_D in the calibration memory of the DS2422 for later use.
- Ramp up the temperature chamber to Tref3 (25°C).
- When the temperature has stabilized, read Tref3_D from sensors that are part of the temperature chamber.
- Immediately after reading Tref3_D, issue the Forced Conversion command for the DS2422 to perform a temperature conversion.
- Read Tread3 from DS2422, address 020C/Dh, and store it together with Tref3_D in the calibration memory of the DS2422 for later use.
This concludes the preparation for software correction. The device retains its data as long as the VBAT pin of the DS2422 remains connected to a backup power source. If power is removed, the calculated trim values and software correction data will remain valid and can be rewritten to the CLEN and Treset registers as long as the VBAT level from the calibration step is used in the final application.
If compatibility to the DS1922L software calibration is desired, Tref2_D and Tref3_D need to be converted into the raw data format of the DS2422 (Tref2_H, Tref3_H) and stored in the calibration memory along with Tread2 and Tread3 as shown in Table 3.
Address | Designator | Description |
0240/1h | Tref2_H | Cold trim point temperature, reading from temperature chamber, but converted into DS2422 hex format; high-byte at the lower address |
0242/3h | Tread2 | Temperature conversion result when the trimmed DS2422 is exposed to Tref2, hex format as read from device, high-byte at the lower address |
0244/5h | Tref3_H | Center temperature, reading from temperature chamber, but converted into DS2422 hex format; high-byte at the lower address |
0246/7h | Tread3 | Temperature conversion result when the trimmed DS2422 is exposed to Tref3, hex format as read from device, high-byte at the lower address |
Part 3. Perform Software Correction
The correction algorithm consists of three steps, a) retrieve and convert the data for software correction, b) compute correction factors, and c) apply correction factors to temperature readings. The software correction assumes that temperature readings are available in 16-bit format (11-bit resolution). A correction of 8-bit readings does not improve accuracy.
Tref2_D | Temperature chamber reading at Tref2, converted to °C |
Tref3_D | Temperature chamber reading at Tref3, converted to °C |
Tread2_D | DS2422 Temperature conversion result at Tref2_D, converted to °C |
Tread3_D | DS2422 Temperature conversion result at Tref3_D, converted to °C |
The three correction factors A, B, and C are computed from the converted temperatures and conversion results as shown below.
Err2 = | Tread2_D - Tref2_D |
Err3 = | Tread3_D - Tref3_D |
Err1 = | Err2 |
Tref1 = | 60°C |
B = | (Tref2_D² - Tref1²) x (Err3 - Err1)/[(Tref2_D² - Tref1²) x (Tref3_D - Tref1) + (Tref3_D² - Tref1²) x (Tref1 - Tref2_D)] |
A = | B x (Tref1 - Tref2_D) / (Tref2_D² - Tref1²) |
A = | B x (Tref1 - Tref2_D) / (Tref2_D² - Tref1²) |
Apply correction factors to temperature reading
Tcorr = Tread - (A x Tread² + B x Tread + C)
Tread is any 16-bit DS2422 Temperature conversion result, converted to °C.
Once the correction factors are computed, they can be used repeatedly to correct any temperature reading and temperature log of the same device.
General hints
- If the temperature chamber is large, fill it with multiple devices and heat/cool them simultaneously. This saves time because it may take an hour for the temperature chamber to get from one temperature point to the next one.
- If software correction is desired, obtain the data for software correction as part of the trim procedure. Once CLEN_new and Treset_New are written to the DS2422, the device is ready for a temperature conversion that yields a valid reading at Tref2. This saves time since the temperature chamber is still at Tref2.
- A spreadsheet with calculations and format conversions used in this application note can be downloaded as https://www.maximintegrated.com/en/products/ibutton/software/ibutton/AN2810_DS2422_Trim.zip.