How to Calibrate a DS1862 Using an External Temperature Sensor

How to Calibrate a DS1862 Using an External Temperature Sensor



The DS1862 XFP Laser Control and Digital Diagnostic IC has an auxiliary monitor pin. This application note explains how the auxiliary monitor works and what registers are used to internally calibrate the AUX2MON pin so it can drive the Look-Up Table. The three procedures for setting up the internal registers are detailed and demonstrated with the DS60, an example temperature sensor.


This application note describes how to internally calibrate the DS1862's AUX2MON pin for an external temperature sensor to drive the Look-Up Table (LUT). The note also presents the DS1862's auxiliary monitor channel, several procedures to set the internal calibration registers for the AUX2MON (or AUX1MON) pin, and a real life example using a popular analog temperature sensor.

Auxiliary Monitor Channel

The DS1862 XFP Laser Control and Digital Diagnostic IC features auxiliary monitor input pins (AUX1MON and AUX2MON) that measure quantities such as supply voltage, current, or temperature. These monitor pins can only measure positive voltage. Other quantities such as temperature and current can also be measured, but must be encoded as a positive voltage first. Current can be measured by monitoring the proportional voltage signal across a resistor as the current flows through it. Temperature can be encoded as a voltage by an analog temperature sensor. Since only positive voltages can actually be input on the auxiliary monitor pin, quantities such as voltage and current usually do not require a signed result because their measurement range is only positive or negative, but not both. However to measure temperature in the -40°C to 102°C range, a signed number scale is required. Regardless of the number scale, the auxiliary monitor may also require some internal calibration to attain the desired resolution (LSB) and Full Scale (FS), and a desired offset. Finally, to measure temperature and drive the LUT, the AUX2MON's 16-bit result must be in the same format as the internal temperature sensor (i.e., same LSB and offset).

To set the auxiliary monitor's LSB and offset so that they are similar to the internal temperature sensor's calibration, programmable registers for SCALE, OFFSET, and RIGHT SHIFTING are available.

  • SCALE amplifies or attenuates the input voltage signal setting the FS. This action also effectively controls the size of the LSB. By adjusting SCALE, different voltages applied to the monitor channel can all result in the same FS value. The SCALE register, as we will see later, essentially sets the slope of the mathematical function that controls how the input voltage (representing a temperature, wavelength, current, etc.) corresponds to the desired result code.
  • OFFSET is simply a digital value added to the result after all analog processing is complete. A positive OFFSET value increases a measured result and a negative offset (two's compliment) decreases a measured result.
  • RIGHT SHIFTING is a powerful feature that can be used in conjunction with SCALE and OFFSET to increase the accuracy and resolution of the measured result when less than ½, or more, of the ADC's range is used. Right shifting will typically not be useable with external temperature sensors because more than ½ of the ADC's range is already used. Details on this calibration procedure are provided later.

The AUX1/2_UNIT_SEL byte is located in Table 01h, Byte DEh. Bits 0 to 3 correspond to AUX2MON, bits 4 to 7 correspond to AUX1MON, and these two nibbles indicate the parameter being measured. The AUX1/2_UNIT_SEL byte is more than a reporting function to the host. The DS1862 uses the AUX1/2_UNIT_SEL byte's information with its internal logic to set the appropriate flag if an out-of-tolerance condition is detected and to change the resulting number scale from unsigned to signed format. For example, if 04h is loaded into AUX1/2_UNIT_SEL byte then AUX1MON would show as "not implemented" and AUX2MON would show as a "Laser Temperature" monitor. If the TEMP_int_ext bit = 1, in Table 04h, address 8Bh, then AUX2MON will be in "Laser Temperature" mode and control the LUT index pointer that, in turn, controls MODSET current. For example, a temperature result of D800h (-40°C) would index the LUT at address 80h. A temperature result of 6600h (+102°C) would index the LUT at address C7h.

Procedures for Internal Calibration of AUX2MON in Temperature Mode

There are three procedures to calibrate the AUX2MON in temperature-measurement mode. First, if exclusive access to the AUX2MON pin (through a jumper, for example) is available then a voltage can be used to calibrate internally. With this scheme, calibration is done independent of the DS1862's actual module temperature. Second, if exclusive access to the AUX2MON pin is not available (i.e., a temperature sensor is always driving AUX2MON), then an iterative trimming scheme based on a known reference temperature can be used. Third, if the temperature sensor used is a DS60, LM50, or other sensor with identical transfer functions (identical, that is, to either the DS60 or LM50), then a unique factory-trimmed SCALE value can be copied from its location in Table 05h and written into AUX2MON SCALE. The advantages and limitations of these three procedures will now be discussed.

Procedure for Exclusive Access to the AUX2MON Pin

To use this procedure, the AUX2MON pin must be available for external connection and have no other voltage source connected. After the procedure is complete the temperature-sensor output voltage must be reconnected to AUX2MON for normal operation.

  1. Using the equation below, calculate the AUX2MON OFFSET value (Table 04h, address ACh). The resulting calculation will be a decimal, so conversion to a hexadecimal must be done before the value is entered into the DS1862. Moreover, if the decimal value is negative, then the two's compliment of the hexadecimal number must also be computed before the OFFSET value is entered. The voltage_offset value is defined as the sensor's output voltage when its temperature is at 0°C. The SLOPE value defines the change in the sensor's voltage in response to a temperature change. SLOPE is usually defined with the units: V/°C.

    Equation 1

  2. Force a voltage on the AUX2MON pin which equals:

    Equation 2

  3. Adjust the AUX2MON SCALE register (Table 04h, address 9Ch) so that the minimum SCALE value yields an AUX2MON RESULT (address 6Ch) of 7FF0h. Make sure to choose a SCALE value that does not cause the RESULT to clamp out at the FS value. During the iterative trim, increasing the SCALE value will also increase the value in the RESULT register.

Example using a DS60:

  1. VAUX2MON = (128 x SLOPE) + voltage_offset = 128 x 6.25mV + 424mV = 1224mV
  2. Adjust SCALE until RESULT is just at 7FF0h. A SCALE value of 153Ch caused RESULT to toggle between 7FF0h and 7FE0h in the example part. Therefore, a SCALE value of 153Ch is the largest value that can safely be set.

Procedure for Nonexclusive Access to the AUX2MON Pin

This procedure is intended to trim the AUX2MON internal calibration in an application where a temperature sensor is always connected.

  1. Using Equation 1 listed above, calculate the hexadecimal value and write it into the AUX2MON OFFSET register.
  2. Using a known temperature reference, adjust the AUX2MON SCALE value so that the AUX2MON RESULT matches the temperature reference. This known temperature reference can be the DS1862's own internal temperature result (located in 60h) or a temperature sensor that indicates the exact temperature of the DS1862 or module. Increasing the SCALE value will increase the AUX2MON RESULT. Once the reference temperature's value matches the AUX2MON RESULT, the correct AUX2MON SCALE value has been found. Note:
    For the most accurate SCALE trim, a high temperature (+102°C or +105°C) should be used.

Example using a DS60:

  1. Reference temperature taken from 60h. TDS1862 = 17B0h (+23.68°C). Adjust SCALE until the AUX2MON RESULT is 17B0h. A SCALE value of 1580h caused RESULT to toggle between 17A7h and 17C0h in the DS60 example part. SCALE = 1580h.

Procedure for Use with a DS60 or LM50 Temperature Sensor

This procedure is intended to avoid the difficulties arising from iteratively trimming internal calibration registers. You do not need to know the exact voltage on the AUX2MON pin or exact temperature of the DS1862 or module to use this method. The DS1862 has two 16-bit registers located in Table 05h that have been factory trimmed to contain the exact AUX2MON SCALE values to use with these two popular sensors.

  1. Read the SCALE register in Table 05h corresponding to the selected temperature sensor. Address 80h contains the unique 16-bit value for the DS60, and address 82h contains the unique 16-bit value for the LM50.
  2. Write this Table 05h SCALE value into the AUX2MON SCALE register.
  3. Write the offset value (corresponding to the chosen sensor) from the table below into the AUX2MON OFFSET register.

DS60 EF0Ah
LM50 F380h


This application note describes three methods to internally calibrate the DS1862's AUX2MON pin for an external temperature sensor. Of the three methods, the third method is the easiest to implement and is highly accurate because of the factory calibration in the DS1862 to ensure that SCALE values match the two designated sensors. If neither the DS60 or LM50 example temperature sensor is used, then the first method (Exclusive Access to the AUX2MON Pin) is the next best solution. Finally, the second method (Nonexclusive Access to the AUX2MON Pin) will get the DS1862 AUX2MON pin internally calibrated, but it is more difficult to implement since a stable temperature test fixture and accurate temperature sensor are both required.