Rev 0; 11/07 Temperature-Controlled, NV, I2C, Logarithmic Resistor The DS1841 is a 7-bit, logarithmic, nonvolatile (NV) digital resistor that features an on-chip temperature sensor and associated analog-to-digital converter (ADC). The integrated temperature sensor indexes a 72-byte NV lookup table (LUT) encompassing a temperature range from -40°C to +100°C. The LUT output can drive the resistor directly or be added to an NV initial-value register (IVR) to drive the resistor. This flexible LUT-based architecture allows the DS1841 to provide a temperature-compensated resistor output with arbitrary slope. Programming is accomplished by an I2C-compatible interface, which can operate at speeds of up to 400kHz. Features ♦ 22kΩ to 3.7kΩ Adjustable Logarithmic Resistor with a 3.6kΩ Fixed Resistor ♦ 128 Wiper Tap Points ♦ On-Chip Temperature Sensor and ADC ♦ 72-Byte Lookup Table (LUT) ♦ I2C-Compatible Serial Interface ♦ Address Pins Allow Up to Four DS1841s to Share the Same I2C Bus ♦ Digital Supply of 2.7V to 5.5V ♦ -40°C to +100°C Operating Range ♦ 3mm x 3mm, 10-Pin TDFN Package Applications Optical Transceivers Ordering Information Linear and Nonlinear Compensation PART Instrumentation and Industrial Controls Mechanical Potentiometer Replacement TEMP RANGE PIN-PACKAGE DS1841T+ -40°C to +100°C 10 TDFN DS1841T+T&R -40°C to +100°C 10 TDFN +Denotes a lead-free package. T&R = Tape and reel. Registers and Modes are capitalized for clarity. Pin Configuration Typical Operating Circuit TOP VIEW 3.3V 4.7kΩ 4.7kΩ SCL N.C. RH 10 9 8 RW RGND 7 6 VAPD VOUT VCC SDA SCL 0.1μF GND DC-DC CONVERTER DS1841 FB DS1841 A1 A0 APD BIAS CONTROL APPLICATION *EP RH RW 1 2 3 4 5 SDA GND VCC A1 A0 100pF RGND TDFN 3.0mm × 3.0mm × 0.8mm *EXPOSED PAD ________________________________________________________________ Maxim Integrated Products For pricing, delivery, and ordering information, please contact Maxim Direct at 1-888-629-4642, or visit Maxim’s website at www.maxim-ic.com. 1 DS1841 General Description DS1841 Temperature-Controlled, NV, I2C, Logarithmic Resistor ABSOLUTE MAXIMUM RATINGS Voltage Range on SDA, SCL, and VCC Relative to GND .........................................-0.5V to +6.0V Voltage Range on RH, RW, A0, and A1 Relative to GND ................................-0.5V to (VCC + 0.5V) Operating Temperature Range .........................-40°C to +100°C Programming Temperature Range .........................0°C to +70°C Storage Temperature Range .............................-55°C to +125°C Soldering Temperature .....................See IPC/JEDEC J-STD-020 RW Current............................................................................3mA Stresses beyond those listed under “Absolute Maximum Ratings” may cause permanent damage to the device. These are stress ratings only, and functional operation of the device at these or any other conditions beyond those indicated in the operational sections of the specifications is not implied. Exposure to absolute maximum rating conditions for extended periods may affect device reliability. RECOMMENDED OPERATING CONDITIONS (TA = -40°C to +100°C) PARAMETER SYMBOL MAX UNITS +2.7 +5.5 V VIH 0.7 x VCC VCC + 0.3 V VIL -0.3 0.3 x VCC V VRES -0.3 VCC + 0.5 V 2 mA MAX UNITS +1 μA 350 μA 0.4 V 10 pF Supply Voltage VCC Input Logic 1 (SCL, SDA, A0, A1) Input Logic 0 (SCL, SDA, A0, A1) Resistor Inputs (RW, RH) Wiper Current CONDITIONS (Note 1) MIN TYP IWIPER DC ELECTRICAL CHARACTERISTICS (VCC = +2.7V to +5.5V, TA = -40°C to +100°C, unless otherwise noted.) PARAMETER SYMBOL CONDITIONS Input Leakage (SDA, SCL, A0, A1) IL VCC Supply Current ICC2 (Note 2) Low-Level Output Voltage (SDA) VOL 3mA sink current CI/O Power-On Recall Voltage VPOR (Note 3) Power-Up Recall Delay tD (Note 4) Series Resistance RS RMIN End-to-End Resistance (GND to RW) RTOTAL RTOTAL Tolerance Temp Coefficient RH, RW Capacitance 2 TCV 0 5 1.6 (Note 5) TA = +25°C CPOT TYP -1 I/O Capacitance Minimum Resistance (GND to RW) MIN WR set to 40h 2.6 V 5 ms 3.6 k 370 22 k -20 +20 % ±250 ppm/°C 10 pF _______________________________________________________________________________________ Temperature-Controlled, NV, I2C, Logarithmic Resistor (VCC = +2.7V to +5.5V, TA = -40°C to +100°C, unless otherwise noted.) PARAMETER SYMBOL CONDITIONS MIN TYP Temperature Error Update Rate (Temperature and Supply Conversion Time) tFRAME MAX UNITS ±5 °C 16 ms ANALOG VOLTAGE MONITORING CHARACTERISTICS (VCC = +2.7V to +5.5V, TA = -40°C to +100°C, unless otherwise noted.) PARAMETER SYMBOL CONDITIONS MIN TYP Supply Resolution LSB Full-scale voltage of 6.5536V 25.6 Input/Supply Accuracy ACC At factory setting 0.25 Update Rate (Temperature and Supply Conversion Time) MAX mV 1.0 16 tFRAME UNITS % FS (Full Scale) ms I2C AC ELECTRICAL CHARACTERISTICS (See Figure 3) (VCC = +2.7V to +5.5V, TA = -40°C to +100°C, timing referenced to VIL(MAX) and VIH(MIN).) PARAMETER SYMBOL CONDITIONS MAX UNITS 400 kHz f SCL Bus Free Time Between STOP and START Conditions tBUF 1.3 μs Hold Time (Repeated) START Conditions tHD:STA 0.6 μs tLOW 1.3 μs High Period of SCL 0 TYP SCL Clock Frequency Low Period of SCL (Note 6) MIN tHIGH 0.6 tHD:DAT 0 Data Setup Time t SU:DAT 100 ns START Setup Time t SU:STA 0.6 μs Data Hold Time μs 0.9 μs SDA and SCL Rise Time tR (Note 7) 20 + 0.1CB 300 ns SDA and SCL Fall Time tF (Note 7) 20 + 0.1CB 300 ns STOP Setup Time t SU:STO SDA and SCL Capacitive Loading CB 0.6 (Note 7) μs 400 pF _______________________________________________________________________________________ 3 DS1841 TEMPERATURE SENSOR CHARACTERISTICS DS1841 Temperature-Controlled, NV, I2C, Logarithmic Resistor I2C AC ELECTRICAL CHARACTERISTICS (See Figure 3) (continued) (VCC = +2.7V to +5.5V, TA = -40°C to +100°C, timing referenced to VIL(MAX) and VIH(MIN).) PARAMETER SYMBOL CONDITIONS MIN MAX UNITS 10 20 ms tW A0, A1 Setup Time t SU:A Before START 0.6 μs A0, A1 Hold Time tHD:A After STOP 0.6 μs Input Capacitance on A0, A1, SDA, or SCL CI Startup Time t ST (Note 8) TYP EEPROM Write Time 5 10 pF 2 ms MAX UNITS NONVOLATILE MEMORY CHARACTERISTICS (VCC = +2.7V to +5.5V) PARAMETER SYMBOL CONDITIONS MIN TYP EEPROM Write Cycles TA = +85°C 50,000 Writes EEPROM Write Cycles TA = +25°C (Note 9) 200,000 Writes Note 1: All voltages are referenced to ground. Currents entering the IC are specified positive and currents exiting the IC are negative. Note 2: ICC is specified with the following conditions: SCL and SDA = VCC, RW and RH floating with Update Mode bit = 1. Note 3: This is the minimum VCC voltage that causes NV memory to be recalled. Note 4: This is the time from VCC > VPOR until initial memory recall is complete. Note 5: Guaranteed by design. Note 6: I2C interface timing shown is for Fast-Mode (400kHz) operation. This device is also backward-compatible with I2CStandard Mode timing. Note 7: CB—total capacitance of one bus line in picofarads. Note 8: EEPROM write time begins after a STOP condition occurs. Note 9: Guaranteed by characterization. 4 _______________________________________________________________________________________ Temperature-Controlled, NV, I2C, Logarithmic Resistor UPDATE MODE BIT = 0 100 50 LUT MODE AND LUT ADDER MODE UPDATE MODE BIT = 1 150 UPDATE MODE BIT = 0 100 3.5 4.0 4.5 5.0 UPDATE MODE BIT = 0 100 SDA SDA==SCL VCC==VCC 5V RGND, RH, RH, RH,RW RWARE AREFLOATING FLOATING 0 0 3.0 150 SDA SDA = SCL = SCL = V=CC VCC = 5V RGND, RH, RH, RH,RW RWARE AREFLOATING FLOATING 0 5.5 -40 -20 0 20 40 60 80 0 100 200 300 TEMPERATURE (°C) SCL FREQUENCY (kHz) WIPER RESISTANCE (RW) vs. SETTING WIPER CURRENT vs. WIPER SETTING RW TO RGND RESISTANCE vs. SUPPLY VOLTAGE WIPER CURRENT (mA) 20 15 10 RGND = 0V RW OPEN FORCE 1.25V ON RH AND MEASURE CURRENT 1.2 0.8 0.4 5 40 POR OCCURS RESISTANCE AT RW (kΩ) SDA = SCL = VCC = 5V 30 10 CONVERSIONS COMPLETE LUT VALUE LOADED TO WR 0 25 50 75 SETTING (DEC) 100 125 IVR IS LOADED 20 VCC = 5V VCC SDA AND SCL REFERENCED TO 5V 0 400 DS1841 toc06 1.6 DS1841 toc04 25 0 100 SUPPLY VOLTAGE (V) DS1841 toc05 2.5 LUT MODE AND LUT ADDER MODE UPDATE MODE BIT = 1 50 50 SDA = SCL = VCC VCC RGND, RH,RW RWARE AREFLOATING FLOATING RH, RH, WIPER RESISTANCE (kΩ) 200 SUPPLY CURRENT (mA) LUT MODE AND LUT ADDER MODE UPDATE MODE BIT = 1 250 DS1841 toc02 200 SUPPLY CURRENT (mA) 200 SUPPLY CURRENT (mA) 250 DS1841 toc01 250 150 SUPPLY CURRENT vs. SCL FREQUENCY SUPPLY CURRENT vs. TEMPERATURE DS1841 toc03 SUPPLY CURRENT vs. SUPPLY VOLTAGE 0 0 25 50 75 WIPE SETTING (DEC) 100 125 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 SUPPLY VOLTAGE (V) _______________________________________________________________________________________ 5 DS1841 Typical Operating Characteristics (VCC = +2.7V to +5.5V, TA = +25°C, unless otherwise noted.) Temperature-Controlled, NV, I2C, Logarithmic Resistor DS1841 Pin Description PIN NAME 1 SDA I2C Serial Data. Input/output for I2C data. 2 GND Ground 3 VCC Power Supply 4 A1 5 A0 Address Select Inputs. Determines I2C slave address. Device address is 01010A1 A0X (see the Slave Address Byte and Address Pins sections for more details). 6 RGND 7 RW Wiper Terminal 8 RH Terminal with Fixed Resistor Added in Series with Digital Resistor No Connection 9 N.C. 10 SCL — EP FUNCTION Low Terminal of Resistor. Must be connected to GND. I2C Serial Clock. Input for I2C clock. Exposed Paddle. Must be connected to ground. Detailed Description The DS1841 operates in one of two modes: LUT Mode and LUT Adder Mode. In LUT Mode and LUT Adder Mode, the resistor’s wiper position is controlled as a function of the temperature measured by the DS1841’s internal temperature sensor. The difference between the two LUT modes is the way the resistor’s wiper position is calculated. Detailed descriptions of these two modes, as well as additional features of the DS1841, are discussed in subsequent sections. Digital Resistor Description The DS1841’s resistor consists of 128 resistive steps between RW and RGND with a series resistor, R S , between RH and RW. The wiper position and the output seen on RW are decoded based on the value in the wiper register (WR). The step size of each position is optimized to produce a linear response when used in the feedback network of a DC-DC converter. 6 Mode Selection The DS1841 mode of operation is determined by the Update Mode bit (Control Register 1, address 03h, bit 0) and the Adder Mode bit (Control Register 1, address 03h, bit 1). Table 1 illustrates how the two control bits are used to select the operating mode. When shipped from the factory, the DS1841 is programmed with the Update Mode and Adder Mode bits set to 1, hence configuring the DS1841 in LUT Adder Mode. See Appendix A for a detailed table of the control logic bit functions. Table 1. Operating Modes UPDATE MODE BIT ADDER MODE BIT 1 0 LUT Mode 1 LUT Adder Mode (Default) 1 _______________________________________________________________________________________ MODE Temperature-Controlled, NV, I2C, Logarithmic Resistor in the IVR is added to the values stored in the LUT. The dashed line/arrow shown in the LUT Drive Mode Block Diagram is not active in LUT Mode. When in LUT Mode, on power-up the IVR value is recalled into the WR. This value remains there until completion of the first temperature conversion following power-up. The temperature is measured every tFRAME. The temperature value is used to calculate an index that points to the corresponding value in the LUT. This index is referred to as the LUT Address Register (LUTAR) and is located at address 08h. The value stored in the LUT at the location pointed to by LUTAR is called LUTVAL, and this value is stored as the WR value (WR) at address 09h when Update Mode bit = 1. The process then repeats itself, continuously updating the wiper setting in a closed-loop fashion. In this mode the 72-byte LUT is populated with wiper settings for each two-degree temperature window. Valid wiper settings are 00h to 7Fh (the MSB is ignored). Table 3 shows the memory addresses of the LUT as well as the corresponding temperature range for each byte in the LUT. LUT Mode LUT Mode is selected by setting the Update Mode bit (Control Register 1, address 03h, bit 0) to a 1 and the Adder Mode bit (Control Register 1, address 03h, bit 1) to a 0. An overview of the DS1841 in this mode is illustrated in the LUT Mode and LUT Adder Mode Block Diagram. The memory map for the LUT Mode and the LUT Adder Mode is shown in Table 2. The major difference between the two LUT modes is whether the value Table 2. LUT Mode and LUT Adder Mode Memory Map REGISTER NAME ADDRESS (HEX) VOLATILE/NV FACTORY/POWER-UP DEFAULT IVR Initial Value Register 00h NV (Shadowed) 00h CR0 Control Register 0 02h Volatile 00h CR1 Control Register 1 03h NV (Shadowed) 03h LUTAR LUT Address Register 08h Volatile 00h WR LUT Value Register 09h* Volatile 00h CR2 Control Register 2 0Ah Volatile 00h TEMP Temperature Result 0Ch Volatile (Read Only) N/A VOLTAGE Supply Voltage Result 0Eh Volatile N/A LUT Temperature Lookup Registers 80h–C7h NV 00h *In LUT Mode and LUT Adder Mode, WR is accessed through memory address 09h, while IVR remains at memory address 00h. _______________________________________________________________________________________ 7 DS1841 LUT Adder Mode (Default) LUT Adder Mode is selected by setting the Update Mode bit to 1 and the Adder Mode bit to 1. This mode operates similar to LUT Mode with one major difference (see the LUT Mode and LUT Adder Mode Block Diagram). The WR is loaded with the sum of the values of LUTVAL (the value pointed to by the address stored in LUTAR) and IVR. Furthermore, in this mode, the values programmed into the LUT are signed two’s complement. This allows convenient positive or negative offsetting of the nominal IVR value. WR resistance values clamp at 00h and 7Fh (the MSB is ignored). Temperature-Controlled, NV, I2C, Logarithmic Resistor DS1841 LUT Mode and LUT Adder Mode Block Diagram (Update Mode Bit = 1) VCC A0 CONTROL I 2C INTERFACE DATA A1 TEMP SENSOR TEMP 0Ch ADC VCC VOLTAGE VCC (V) 0Eh LUT ADDRESS REGISTER 72-BYTE LOOKUP TABLE (LUTAR) (LUT) 08h 80h–C7h WIPER REGISTER LUTVAL ∑ LUTVAL OR LUTVAL+IVR (WR) 09h* RGND POS 7Fh 1 OF 128 MULTIPLEXERS SCL SDA INITIAL VALUE REGISTER (IVR) 00h* ON POWER-UP CONTROL LOGIC/ REGISTERS IVR ONLY WHEN IN LUT ADDER MODE GND POS 00h RS RW RH *NOTE THAT WHEN IN LUT OR LUT ADDER MODE, WR IS ACCESSED THROUGH 09h WHILE IVR REMAINS AT 00h. LUT The DS1841 monitors the internal temperature by repeatedly polling the sensor’s result with update rate tFRAME. During each cycle, the DS1841 reads the internal temperature, and, based on that temperature, points to the corresponding LUT address. Every two degrees of temperature will convert into one temperature address slot. See Table 3 for a list of temperatures and their corresponding LUT addresses. The LUT features one-degree hysteresis to prevent chattering if the measured temperature falls on the boundary between two windows (see Figure 1). Temperature Conversion and Supply Voltage Monitoring Temperature Conversion The DS1841 features an internal 8-bit temperature sensor that can drive the LUT and provide a measurement of the ambient temperature over I2C by reading the value stored in address 0Ch. The sensor is functional over the entire operating temperature range and is stored in signed two’s complement format with a resolution of 1°C/bit. See Table 2, Register 0Ch description for the temperature sensor’s bit weights. To calculate the temperature, treat the two’s complement binary value as an unsigned binary number, then convert it to decimal. If the result is greater than or equal to 128, subtract 256 from the result. Table 3. LUT Registers and Temperature Ranges TEMPERATURE VALUE FOR GIVEN TEMPERATURE (HEX) CORRESPONDING LUT ADDRESS (HEX) -40 or less D8 80 -39 to -38 D9 to DA 81 -37 to -36 DB to DC 82 -35 to -34 DD to DE 83 — — — +95 to +96 5F to 60 C4 +97 to +98 61 to 62 C5 +99 to +100 63 to 64 C6 +101 or more 65 C7 TEMPERATURE (°C) 8 _______________________________________________________________________________________ Temperature-Controlled, NV, I2C, Logarithmic Resistor DECREASING TEMPERATURE MEMORY LOCATION LUT34 LUT33 LUT32 INCREASING TEMPERATURE LUT31 LUT30 1°C HYSTERESIS WINDOW 19 21 23 25 19 27 TEMPERATURE (°C) Figure 1. LUT Hysteresis Supply Current (ICC) The DS1841 has two supply current levels of power supply consumption. First, active current during I2C communications while in the LUT-Driven Mode is the “worst case” supply current, ICC. All functionality including I2C communication is operating simultaneously. Second, active current without I2C while in the LUT-Driven Mode is quantified by the supply current, ICC2. SDA and SCL are held statically in the high logic level. Slave Address Byte and Address Pins LSB MSB 0 1 0 1 0 SLAVE ADDRESS* A1 A0 R/W READ/WRITE BIT *THE SLAVE ADDRESS IS DETERMINED BY ADDRESS PINS A0, A1. Figure 2. Slave Address Byte The slave address byte consists of a 7-bit slave address plus a R/W bit (see Figure 2). The DS1841’s slave address is determined by the state of the A0 and A1 address pins. These pins allow up to four devices to reside on the same I2C bus. Address pins tied to GND result in a 0 in the corresponding bit position in the slave address. Conversely, address pins tied to VCC result in a 1 in the corresponding bit positions. For example, the DS1841’s slave address byte is 50h when A0 and A1 pins are grounded. I2C communication is described in detail in the I 2 C Serial Interface Description section. _______________________________________________________________________________________ 9 DS1841 Supply Voltage Monitoring The DS1841 also features an internal 8-bit supply voltage (VCC) monitor. A value of the supply voltage measurement can be read over I2C at the address 0Eh. To calculate the supply voltage, simply convert the hexadecimal result into decimal and then multiply it by the LSB as shown in the Analog Voltage Monitoring Characteristics electrical table. DS1841 Temperature-Controlled, NV, I2C, Logarithmic Resistor Memory Description The DS1841’s internal memory consists of both volatile and NV registers that are organized into eight byte rows. Three control registers as well as specialized data registers are used to control the wiper and drive the LUT. Register Descriptions Register 00h: Initial Value Register (IVR) FACTORY DEFAULT (IVR) MEMORY TYPE MEMORY TYPE 00h NV Volatile 00h IVR Bit 7 Bit 0 If SEE bit = 0, an I2C READ retrieves the IVR value and an I2C WRITE sets the wiper position in volatile memory and updates IVR in NV memory with this new value. If SEE bit = 1, an I2C READ retrieves the WR value and an I2C WRITE sets the wiper position (volatile) and the IVR value is not modified. During power-up, IVR’s value is used to set the wiper position. Register 02h: Control Register 0 (CR0) FACTORY DEFAULT MEMORY TYPE SEE 02h Reserved 00h Volatile Reserved Reserved Reserved Reserved Reserved Bit 7 Bit 7 Bits 6 to 0 Reserved Bit 0 SEE Controls IVR and WR functionality, as well as the memory type for Control Register 1. 0 = (Default) Issuing an I2C READ of the value in address 00h retrieves the IVR value. Issuing an I2C WRITE to address 00h sets both the wiper’s position (volatile) and the IVR value (nonvolatile) to the same value. Writes to Control Register 1 (03h) are stored in shadowed SRAM and EEPROM. 1 = Issuing an I2C READ of the value in address 00h retrieves the WR value. Issuing an I2C WRITE to address 00h only sets the wiper’s position (volatile). The IVR value is not modified. Writes to Control Register 1 (03h) are stored in shadowed SRAM only. Reserved. Control Register 0 determines how the wiper position values (volatile and NV versions) are set, as well as how writes to Control Register 1 are stored. The IVR is located at memory address 00h and is implemented as EEPROM shadowed SRAM. This register can be visualized as an SRAM byte (the WR portion) in parallel with an EEPROM byte (the IVR portion). The operation of the register is controlled by the Shadow EEPROM (SEE) bit in Control Register 0, address 02h, bit 7. When the SEE bit = 0 (default), data written to memory address 00h by I2C actually gets stored in both SRAM (WR) and EEPROM (IVR). When SEE = 1, only the SRAM (WR) is written to the new value. The EEPROM byte (IVR) continues to store the last value written to it when SEE was 0. Reading memory address 00h reads the value stored in WR. The SEE bit is volatile and its power-up default state is 0. 10 ______________________________________________________________________________________ Temperature-Controlled, NV, I2C, Logarithmic Resistor FACTORY DEFAULT MEMORY TYPE 03h Reserved Bit 7 Bits 7 to 2 Bit 1 Bit 0 Reserved 00h Shadowed NV Reserved Reserved Reserved Reserved Adder Mode Update Mode Bit 0 Reserved. Adder Mode This bit is valid only if the Update Mode bit = 1. 0 = (Default) The LUTVAL or IVR value is directly loaded to WR though the mux. 1 = The LUTVAL is summed with the IVR value and is directly loaded to WR though the mux. Update Mode 0 = (Default) CR0 is enabled. During power-up the IVR value is loaded into the WR to set the wiper position. Updates to Temperature Result (0Ch) and Supply Voltage Result (0Eh) are halted. 1 = The WR is controlled directly by I2C communication though registers 08h or 09h, or the WR is controlled by the temperature-compensation/LUT circuitry. If temperature compensation is enabled, one of the 72 temperature slots is selected (by the LUTAR) and this slot value is copied into the LUTVAL, which in turn sets the WR. Updates to Temperature Result (0Ch) and Supply Voltage Result (0Eh) are enabled. Control Register 1 controls how the wiper position is determined. The SEE bit controls whether the values of this register are stored in EEPROM or in Shadowed SRAM. On power-up, the EEPROM value is recalled to this register, regardless of the state of SEE. While the registers other than 00h through 0Ah can be read, they are not updated by the ADC as the ADC is disabled with the Update Mode bit = 0. Register 08h: LUT Address Register (LUTAR) FACTORY DEFAULT POR DEFAULT MEMORY TYPE 00h 00h until tFRAME Volatile 08h LUTAR Bit 7 Bit 0 The LUTAR register serves as the index pointer to choose the corresponding temperature slot in the LUT based on the internal temperature sensor result. The LUTAR can be directly read by acessing address 08h; however, to write an new value to LUTAR (to control WR manually), the LUTAR Mode bit must be set to a 1. Register 09h: LUT Value Register (WR*) FACTORY DEFAULT MEMORY TYPE 09h 00h Volatile WR* Bit 7 Bit 0 WR serves as an intermediate location, which is populated automatically with the results of the temperature-indexed lookup. The WR can be directly read by acessing address 09h; however to write an new value to WR (to control it manually), the wiper access control bit must be set to a 1. WR is an unsigned 7-bit value. *WR is updated every tFRAME if Update Mode bit = 1. If Update Mode bit = 0, WR holds the value stored in register 00h. ______________________________________________________________________________________ 11 DS1841 Register 03h: Control Register 1 (CR1) DS1841 Temperature-Controlled, NV, I2C, Logarithmic Resistor Register 0Ah: Control Register 2 (CR2) FACTORY DEFAULT MEMORY TYPE 0Ah Reserved 00h Volatile Reserved Reserved Reserved Reserved Wiper Access Control LUTAR Mode Reserved Bit 7 Bits 7 to 3 Bit 2 Bit 1 Bit 0 Bit 0 Reserved. Wiper Access Control This bit is valid only in LUT Mode and in LUT Adder Mode. 0 = (Default) WR is loaded with the value from IVR summed with LUTVAL, or just the value of LUTVAL based on the state of the Adder Mode bit. 1 = The DS1841 is placed in a manual mode, allowing WR (address 09h) to be programmed using I2C commands. LUTAR Mode This bit is valid only in LUT Mode and in LUT Adder Mode. 0 = (Default) The LUTAR value, located in at address 08h, is calculated following each temperature conversion that points to the corresponding location in the LUT. 1 = Automatic updates of LUTAR are disabled, allowing the LUTAR register to be programmed using I2C commands. Reserved. This bit must be set to a 0. Control Register 2 controls how the wiper position is determined. Register 0Ch: Temperature Result (TEMP) FACTORY DEFAULT MEMORY TYPE 0Ch Sign Bit 7 None Volatile 26 25 24 23 22 21 20 Bit 0 This register holds the current temperature result. It is updated every conversion time, tFRAME. To calculate the temperature, treat the two’s complement binary value as an unsigned binary number, then convert it to decimal. If the result is greater than or equal to 128, subtract 256 from the result. This register is only updated when the Update Mode bit = 1. When the Update Mode bit = 0, no ADC updates are made to this register. Register 0Eh: Supply Voltage Result (VOLTAGE) FACTORY DEFAULT MEMORY TYPE 0Eh None Volatile Supply Voltage Bit 7 Bit 0 This register holds the current supply voltage result. It is updated every conversion time, tFRAME. See the Supply Voltage Monitoring section. This register is only updated when the Update Mode bit = 1. When the Update Mode bit = 0, no ADC updates are made to this register. 12 ______________________________________________________________________________________ Temperature-Controlled, NV, I2C, Logarithmic Resistor FACTORY DEFAULT MEMORY TYPE 80h to C7h DS1841 Registers 80h to C7h: Temperature Lookup Register (LUT) 00h NV (See Table 3 for settings.) Bit 7 Bit 0 These registers at location 80h to C7h are NV and serve to temperature compensate RW over the operating temperature range of the DS1841. The LUT entries are unsigned 8-bit values if the Adder Mode bit = 0. If the Adder Mode bit = 1, LUT entries are two’s complement, signed 7-bit values. I2C Serial Interface Description I2C Definitions The following terminology is commonly used to describe I2C data transfers. (See Figure 3 and I2C AC Electrical Table for additional information.) Master device: The master device controls the slave devices on the bus. The master device generates SCL clock pulses and START and STOP conditions. Slave devices: Slave devices send and receive data at the master’s request. Bus idle or not busy: Time between STOP and START conditions when both SDA and SCL are inactive and in their logic-high states. START condition: A START condition is generated by the master to initiate a new data transfer with a slave. Transitioning SDA from high to low while SCL remains high generates a START condition. STOP condition: A STOP condition is generated by the master to end a data transfer with a slave. Transitioning SDA from low to high while SCL remains high generates a STOP condition. Repeated START condition: The master can use a repeated START condition at the end of one data transfer to indicate that it will immediately initiate a new data transfer following the current one. Repeated starts are commonly used during read operations to identify a specific memory address to begin a data transfer. A repeated START condition is issued identically to a normal START condition. Bit write: Transitions of SDA must occur during the low state of SCL. The data on SDA must remain valid and unchanged during the entire high pulse of SCL plus the setup and hold time requirements. Data is shifted into the device during the rising edge of the SCL. Bit read: At the end of a write operation, the master must release the SDA bus line for the proper amount of setup time before the next rising edge of SCL during a bit read. The device shifts out each bit of data on SDA at the falling edge of the previous SCL pulse and the data bit is valid at the rising edge of the current SCL pulse. Remember that the master generates all SCL clock pulses, including when it is reading bits from the slave. Acknowledge (ACK and NACK): An Acknowledge (ACK) or Not Acknowledge (NACK) is always the 9th bit transmitted during a byte transfer. The device receiving data (the master during a read or the slave during a write operation) performs an ACK by transmitting a 0 during the 9th bit. A device performs a NACK by transmitting a 1 during the 9th bit. Timing for the ACK and NACK is identical to all other bit writes. An ACK is the acknowledgment that the device is properly receiving data. A NACK is used to terminate a read sequence or indicates that the device is not receiving data. Byte write: A byte write consists of 8 bits of information transferred from the master to the slave (most significant bit first) plus a 1-bit acknowledgment from the slave to the master. The 8 bits transmitted by the master are done according to the bit write definition and the acknowledgment is read using the bit read definition. ______________________________________________________________________________________ 13 DS1841 Temperature-Controlled, NV, I2C, Logarithmic Resistor SDA tBUF tHD:STA tLOW tR tSP tF SCL tHD:STA STOP tSU:STA tHIGH tSU:DAT START REPEATED START tSU:STO tHD:DAT NOTE: TIMING IS REFERENCE TO VIL(MAX) AND VIH(MIN). Figure 3. I2C Timing Diagram Byte read: A byte read is an 8-bit information transfer from the slave to the master plus a 1-bit ACK or NACK from the master to the slave. The 8 bits of information that are transferred (most significant bit first) from the slave to the master are read by the master using the bit read definition, and the master transmits an ACK using the bit write definition to receive additional data bytes. The master must NACK the last byte read to terminate communication so the slave returns control of SDA to the master. Slave address byte: Each slave on the I 2 C bus responds to a slave address byte sent immediately following a START condition. The slave address byte contains the slave address in the most significant 7 bits and the R/W bit in the least significant bit. The DS1841’s slave address is determined by the state of the A0 and A1 address pins as shown in Figure 2. Address pins tied to GND result in a 0 in the corresponding bit position in the slave address. Conversely, address pins tied to V CC result in a 1 in the corresponding bit positions. When the R/W bit is 0 (such as in 50h), the master is indicating that it will write data to the slave. If R/W = 1 (51h in this case), the master is indicating that it wants to read from the slave. 14 If an incorrect slave address is written, the DS1841 assumes the master is communicating with another I2C device and ignores the communication until the next START condition is sent. Memory address: During an I2C write operation, the master must transmit a memory address to identify the memory location where the slave is to store the data. The memory address is always the second byte transmitted during a write operation following the slave address byte. I2C Communication Writing a single byte to a slave: The master must generate a START condition, write the slave address byte (R/W = 0), write the memory address, write the byte of data, and generate a STOP condition. Remember the master must read the slave’s acknowledgment during all byte write operations. When writing to the DS1841, the potentiometer adjusts to the new setting once it has acknowledged the new data that is being written, and the EEPROM is written following the STOP condition at the end of the write command. To change the setting without changing the EEPROM, terminate the write with a repeated START condition before the next STOP condition occurs. Using a repeated START condition prevents the tW delay required for the EEPROM write cycle to finish. ______________________________________________________________________________________ Temperature-Controlled, NV, I2C, Logarithmic Resistor counter. To read a single byte from the slave, the master generates a START condition, writes the slave address byte with R/W = 1, reads the data byte with a NACK to indicate the end of the transfer, and generates a STOP condition. However, since requiring the master to keep track of the memory address counter is impractical, the following method should be used to perform reads from a specified memory location. Reading multiple bytes from a slave: The read operation can be used to read multiple bytes with a single transfer. When reading bytes from the slave, the master simply ACKs the data byte if it desires to read another byte before terminating the transaction. After the master reads the last byte it must NACK to indicate the end of the transfer and generates a STOP condition. During a single read sequence of multiple bytes, after the last address counter position of FFh is accessed, the address counter automatically wraps back to the first location, 00h. Read operations can continue indefinitely. Manipulating the address counter for reads: A dummy write cycle can be used to force the address counter to a particular value. To do this the master generates a START condition, writes the slave address byte (R/W = 0), writes the memory address where it desires to read, generates a repeated START condi- TYPICAL I2C WRITE TRANSACTION MSB START 0 LSB 1 0 1 SLAVE ADDRESS* 0 A1 A0 R/W MSB SLAVE ACK b7 LSB b6 READ/ WRITE b5 b4 b3 b2 b1 b0 MSB SLAVE ACK b7 LSB b6 b5 b4 REGISTER ADDRESS b3 b2 b1 b0 SLAVE ACK STOP DATA *THE SLAVE ADDRESS IS DETERMINED BY ADDRESS PINS A0 AND A1. EXAMPLE I2C TRANSACTIONS (WHEN A0 AND A1 ARE CONNECTED TO GND) 50h 02h A) SINGLE-BYTE WRITE -WRITE CONTROL REGISTER 0 TO 00h START 0 1 0 1 0 0 0 0 SLAVE 0 0 0 0 0 0 1 0 ACK B) SINGLE-BYTE READ -READ TEMPERATURE REGISTER START 0 1 0 1 0 0 0 0 SLAVE 0 0 0 0 1 1 0 0 SLAVE ACK ACK 50h 0Ch 50h C) TWO-BYTE WRITE - WRITE LUT VALUES FOR REGISTERS 80h AND 81h START 0 1 0 1 0 0 0 0 10000 000 START 0 1 0 1 0 0 0 0 SLAVE ACK 10000 000 SLAVE ACK STOP 51h 80h SLAVE ACK 50h D) TWO-BYTE READ - READ LUT REGISTERS 80h AND 81h SLAVE 0 0 0 0 0 0 0 0 ACK REPEATED START DATA 0 1 0 1 0 0 0 1 SLAVE ACK 0100 0 0 0 0 SLAVE ACK REPEATED START SLAVE ACK 0101 0 0 0 0 0101 0 0 0 1 SLAVE ACK STOP STOP DATA 51h 80h MASTER NACK 50h 40h SLAVE ACK TEMP SLAVE ACK REG80h DATA MASTER ACK REG81h MASTER ACK STOP Figure 4. I2C Communication Examples ______________________________________________________________________________________ 15 DS1841 Writing multiple bytes to a slave: I2C write operations of multiple bytes can also be performed. During a single write sequence, up to 8 bytes in one page can be written at one time. If more than eight bytes are transmitted in the sequence, then only the last eight transmitted bytes are stored. After the last physical memory location in a particular page (8-byte page write), the address counter automatically wraps back to the first location in the same page for subsequent byte write operations. Acknowledge polling: Any time a EEPROM byte is written, the DS1841 requires the EEPROM write time (tW) after the STOP condition to write the contents of the byte to EEPROM. During the EEPROM write time, the device does not acknowledge its slave address because it is busy. It is possible to take advantage of this phenomenon by repeatedly addressing the DS1841, which allows communication to continue as soon as the DS1841 is ready. The alternative to acknowledge polling is to wait for a maximum period of tW to elapse before attempting to access the device. Reading a single byte from a slave: Unlike the write operation that uses the specified memory address byte to define where the data is to be written, the read operation occurs at the present value of the memory address DS1841 Temperature-Controlled, NV, I2C, Logarithmic Resistor tion, writes the slave address byte (R/W = 1), reads data with ACK or NACK as applicable, and generates a STOP condition. See Figure 4 for I2C Communication Examples. tance, which improves performance, and ceramic capacitors tend to have adequate high-frequency response for decoupling applications. Applications Information SDA is an I/O with an open-collector output that requires a pullup resistor to realize high-logic levels. A master using either an open-collector output with a pullup resistor or a push-pull output driver can be used for SCL. Pullup resistor values should be chosen to ensure that the rise and fall times listed in the AC electrical characteristics are within specification. A typical value for the pullup resistors is 4.7kΩ. Power-Supply Decoupling To achieve the best results when using the DS1841, decouple both the power-supply pin and the wiper-bias voltage pin with a 0.01µF or 0.1µF capacitor. Use a high-quality ceramic surface-mount capacitor if possible. Surface-mount components minimize lead induc- SDA and SCL Pullup Resistors Appendix A: Control Bits Logic Table LUTAR MODE BIT WIPER ACCESS CONTROL BIT ADDER MODE BIT UPDATE MODE BIT CONTROL OF WR AND REGISTER FUNCTIONALITY X X X 0 IVR is loaded to WR on power-up. Subsequent writes to 00h set the value of WR. 0 0 0 1 Temperature conversion references the LUT, determining LUTAR value, the LUTAR determines the LUTVAL value, the unsigned LUTVAL value is then automatically loaded into WR. 0 0 1 1 Temperature conversion references the LUT, determining LUTAR value, the LUTAR sets the LUTVAL value, the signed LUTVAL value is then summed with IVR, and the result is loaded into WR. X 1 0 1 I2C Write (to 09h): The unsigned value written to WR, register 09h, is loaded into WR. X 1 1 1 I2C Write (to 09h): The signed value of LUTVAL is summed with IVR, then loaded into WR, register 09h. 1 0 0 1 I2C Write (to 08h): LUTAR references LUT address, value at LUT address location is loaded into LUTVAL, the unsigned LUTVAL value is loaded into WR. 1 0 1 1 I2C Write (to 08h): LUTAR references LUT address, the signed value at LUT address location is loaded into LUTVAL, the signed LUTVAL value is summed with IVR value, and the result is loaded into WR. Package Information (For the latest package outline information, go to www.maxim-ic.com/DallasPackInfo.) PACKAGE TYPE DOCUMENT NO. 10 TDFN 21-0137 Maxim cannot assume responsibility for use of any circuitry other than circuitry entirely embodied in a Maxim product. No circuit patent licenses are implied. Maxim reserves the right to change the circuitry and specifications without notice at any time. 16 ____________________Maxim Integrated Products, 120 San Gabriel Drive, Sunnyvale, CA 94086 408-737-7600 © 2007 Maxim Integrated Products is a registered trademark of Maxim Integrated Products, Inc.