Rev 0; 4/06 Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM The DS3901 is a triple, 8-bit nonvolatile (NV) variable resistor. Each of the resistors has two setting registers, which are selectable by software or by pin configuration. The selected register determines the value of the variable resistor. Additionally, all three resistors have a high-impedance setting. Resistor R0 has the additional flexibility of allowing an external shunt resistor to provide increased dynamic range. Internal address settings allow the DS3901 slave address to be programmed to one of 128 possible addresses. The DS3901 also features an optional password-protection scheme that allows the protection of sensitive data. Features ♦ Three 256-Position Linear Digital Resistors ♦ Full-Scale Resistances 50kΩ, 30kΩ, 20kΩ ♦ Dual NV Settings for Each Resistor ♦ ♦ ♦ ♦ Low Temperature-Coefficient Resistors I2C Serial Interface Wide Operating Voltage (2.4V to 5.5V) Two-Level Password Write Protection ♦ 232 Bytes of User EEPROM ♦ Programmable Slave Address ♦ -40°C to +95°C Operating Temperature Range Ordering Information Applications Optical Transceivers Optical Transponders PART RESISTOR VALUES FOR R0, R1, AND R2 TEMP RANGE Instrumentation and Industrial Controls RF Power Amps DS3901E+ -40°C to +95°C Audio Power-Amp Biasing PINPACKAGE 50kΩ, 30kΩ, 20kΩ 14 TSSOP +Denotes lead-free package. Replacement for Mechanical Variable Resistors and DIP Switches Pin Configuration + TOP VIEW SCL 1 14 VCC SDA 2 13 N.C. ADD_SEL 3 DS3901 12 H2 BK_SEL 4 11 L2 DIS 5 10 H1 N.C. 6 9 H0 GND 7 8 L0 TSSOP Typical Operating Circuit appears at end of data sheet. ______________________________________________ Maxim Integrated Products For pricing, delivery, and ordering information, please contact Maxim/Dallas Direct! at 1-888-629-4642, or visit Maxim’s website at www.maxim-ic.com. 1 DS3901 General Description DS3901 Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM ABSOLUTE MAXIMUM RATINGS Voltage on VCC, SDA, SCL Relative to GND .........-0.5V to +6.0V Voltage on ADD_SEL, BK_SEL, DIS Relative to GND .................-0.5V to (VCC + 0.5V), not to exceed +6.0V Voltage on H0, H1, H2, L2, L0 Relative to GND........-0.5V to +6.0V Maximum Resistor Current....................................................3mA Operating Temperature Range ...........................-40°C to +95°C Programming Temperature Range .........................0°C to +70°C Storage Temperature Range .............................-55°C to +125°C Soldering Temperature ....................................Refer to IPC/JEDEC J-STD-020 Specification Maximum Switch 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 +95°C.) MAX UNITS Supply Voltage PARAMETER VCC (Note 1) 2.4 5.5 V Input Logic 0 (SDA, SCL, ADD_SEL) VIL (Note 1) -0.3 0.3 x VCC V Input Logic 1 (SDA, SCL, ADD_SEL) VIH (Note 1) 0.7 x VCC VCC + 0.3 V Input Logic 0 (BK_SEL, DIS) VIL (Note 1) -0.3 +0.8 V Input Logic 1 (BK_SEL, DIS) VIH (Note 1) 2.0 VCC + 0.3 V -0.3 +5.5 V 3 mA MAX UNITS Voltage on Resistor Inputs Switch Current (L0_SW, Hi-Z0, Hi-Z1, Hi-Z2) SYMBOL CONDITIONS H0, H1, L0, H2, L2 ISW MIN TYP (Note 2) ELECTRICAL CHARACTERISTICS (VCC = +2.4V to +5.5V, TA = -40°C to +95°C, unless otherwise noted.) PARAMETER Standby Current Input Leakage Low-Level Output Voltage (SDA) SYMBOL ISTBY CONDITIONS IL TYP 250 µA -1 +1 µA VOL1 3mA sink current 0 0.4 VOL2 6mA sink current 0 0.6 Pulldown Resistance (BK_SEL) RBK Pullup Resistance (DIS) RDIS BK_SEL Pulse Width 2 MIN (Note 3) _____________________________________________________________________ V 20 30 45 kΩ 20 30 45 kΩ 20 µs Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM (VCC = +2.4V to +5.5V, TA = -40°C to +95°C, unless otherwise noted.) PARAMETER SYMBOL Resistor Tolerance Position 00h Resistance Position FFh Resistance CONDITIONS TA = +25°C MIN MAX UNITS +20 % R0, R2 242 500 R1 149 250 R0 50 R1 30 R2 Switch Resistance TYP -20 RL0_SW kΩ 20 At 3mA 150 Ω LSB Absolute Linearity (Note 4) -0.75 +0.75 Relative Linearity (Note 5) -0.75 +0.75 Temperature Coefficient Position FFh (Notes 2, 6) Hi-Z Resistor Leakage IRHIZ Ω H0, H1, H2, L0, or L2 = VCC 50 -1 LSB ppm/°C +1 µA MAX UNITS 400 kHz I2C CHARACTERISTICS (VCC = +2.4V to +5.5V, TA = -40°C to +95°C, unless otherwise noted. Timing referenced to VIL(MAX) and VIH(MIN).) PARAMETER SYMBOL CONDITIONS TYP fSCL Bus Free Time between STOP and START Condition tBUF 1.3 µs tHD:STA 0.6 µs Low Period of SCL Clock tLOW 1.3 µs High Period of SCL Clock tHIGH 0.6 Data Hold Time tHD:DAT 0 Data Setup Time tSU:DAT 100 ns Start Setup time tSU:STA 0.6 µs Hold Time (Repeated) START Condition (Note 7) MIN SCL Clock Frequency 0 µs 0.9 µs Rise Time of Both SDA and SCL Signals tR (Note 8) 20 + 0.1CB 300 ns Fall Time of Both SDA and SCL Signals tF (Note 8) 20 + 0.1CB 300 ns Setup Time for STOP Condition tSU:STO 0.6 µs Capacitive Load for Each Bus Line CB (Note 8) 400 pF EEPROM Write Time tW (Note 9) 10 ms 2 ms Input Capacitance CI 5 Startup Time tST 0.3 pF _____________________________________________________________________ 3 DS3901 ANALOG RESISTOR CHARACTERISTICS NONVOLATILE MEMORY CHARACTERISTICS (VCC = +2.4V to +5.5V.) PARAMETER SYMBOL CONDITION EEPROM Write Cycles MIN TA =+ 70 °C (Note 2) TYP MAX UNITS 50,000 Note 1: All voltages referenced to ground. Note 2: Guaranteed by design. Note 3: ISTBY specified for the inactive state measured with SDA = SCL = VCC, ADD_SEL = GND, BK_SEL, DIS, H0, H1, H2, L2, L0 floating. Note 4: Absolute linearity is the deviation of a measured resistor-setting value from the expected value at each particular resistor setting. Expected value is calculated by connecting a straight line from the measured minimum setting to the measured maximum setting. Note 5: Relative linearity is the deviation of the step size change between two LSB settings from the expected step size. The expected LSB step size is the slope of the straight line from measured minimum position to measured maximum position. Note 6: See the Typical Operating Characteristics. Note 7: Timing shown is for fast-mode (400kHz) operation. This device is also backward-compatible with I2C standard mode. Note 8: CB—total capacitance of one bus line in picofarads. Note 9: EEPROM write begins after a STOP condition occurs. Typical Operating Characteristics (VCC = +3.3V, TA = +25°C, unless otherwise noted.) 177 175 173 171 170 160 150 140 169 130 167 120 DS3901 toc03 ADD_SEL = GND SDA = SCL = VCC , ALL OTHERS ARE FLOATING 200 195 190 185 180 165 -13 14 41 68 110 2.400 95 175 3.175 3.950 4.725 50 100 150 200 250 300 350 400 SCL FREQUENCY (kHz) RESISTANCE vs. RESISTOR SETTING TEMPERATURE COEFFICIENT vs. RESISTOR SETTING CHANGE IN RESISTANCE vs. TEMPERATURE 30 20 10 900 R0, -40°C TO +25°C R1, -40°C TO +25°C 800 700 R2, -40°C TO +25°C 600 R0, +25°C TO +95°C 500 R1, +25°C TO +95°C 400 R2, +25°C TO +95°C 51 102 153 SETTING (DEC) 204 255 RESISTOR SETTING = 00h R1 7 300 200 R0 2 R2 -3 -8 100 -13 0 0 12 RESISTOR CHANGE (%) R0 R1 R2 DS3901 toc05 DS3901 toc04 40 1000 DS3901 toc06 SUPPLY VOLTAGE (V) 50 0 0 5.500 TEMPERATURE (°C) TEMPERATURE COEFFICIENT (ppm/°C) -40 4 ADD_SEL = GND SDA = SCL = VCC , ALL OTHERS ARE FLOATING SUPPLY CURRENT (µA) 180 179 SUPPLY CURRENT (µA) SUPPLY CURRENT (µA) 190 205 DS3901 toc02 SDA = SCL = VCC , ALL OTHERS ARE FLOATING 181 200 DS3901 toc01 ADD_SEL = GND 183 SUPPLY CURRENT vs. SCL FREQUENCY SUPPLY CURRENT vs. SUPPLY VOLTAGE SUPPLY CURRENT vs. TEMPERATURE 185 RESISTANCE (kΩ) DS3901 Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM 0 51 102 153 204 255 SETTING (DEC) _____________________________________________________________________ -40 -13 14 41 TEMPERATURE (°C) 68 95 Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM 0.06 0.600 R1 0.200 R0 0.000 -0.02 -13 14 68 R0 ABSOLUTE LINEARITY vs. RESISTOR SETTING 51 R0 49 2.75 0.45 0.25 0.05 -0.15 -0.35 5.50 5.50 0.65 0.45 0.25 0.05 -0.15 -0.35 -0.55 -0.75 -0.75 0 51 SUPPLY VOLTAGE (V) 102 153 204 255 0 51 SETTING (DEC) 153 204 255 R1 RELATIVE LINEARITY vs. RESISTOR SETTING 0.65 RELATIVE LINEARITY (LSB) 0.45 0.25 0.05 -0.15 -0.35 -0.55 DS3901 toc14 0.65 102 SETTING (DEC) R1 ABSOLUTE LINEARITY vs. RESISTOR SETTING DS3901 toc13 0 2.75 R0 RELATIVE LINEARITY vs. RESISTOR SETTING -0.55 47 0 RELATIVE LINEARITY (LSB) ABSOLUTE LINEARITY (LSB) 53 ABSOLUTE LINEARITY (LSB) RESISTANCE (kΩ) 55 R0 SUPPLY VOLTAGE (V) 0.65 57 51 5.500 DS3901 toc11 RESISTANCE vs. POWER-DOWN SUPPLY VOLTAGE DS3901 toc10 TEMPERATURE (°C) RESISTOR SETTING = FFh 53 47 -0.10 2.400 95 55 49 3.950 4.725 3.175 SUPPLY VOLTAGE (V) > 1MΩ 59 41 R1 -0.04 -0.08 -40 R0 0 -0.06 -0.600 R2 0.02 -0.400 RESISTOR SETTING = FFh 57 0.04 -0.200 > 1MΩ 59 DS3901 toc12 0800 0.400 RESISTOR SETTING = 7Fh 0.08 RESISTANCE CHANGE (%) 1.000 RESISTOR CHANGE (%) 0.10 RESISTANCE (kΩ) R2 DS3901 toc08 RESISTOR SETTING = FFh DS3901 toc07 1.400 1.200 RESISTANCE vs. POWER-UP SUPPLY VOLTAGE RESISTANCE vs. SUPPLY VOLTAGE DS3901 toc09 CHANGE IN RESISTANCE vs. TEMPERATURE 0.45 0.25 0.05 -0.15 -0.35 -0.55 -0.75 -0.75 0 51 102 153 SETTING (DEC) 204 255 0 51 102 153 204 255 SETTING (DEC) _____________________________________________________________________ 5 DS3901 Typical Operating Characteristics (continued) (VCC = +3.3V, TA = +25°C, unless otherwise noted.) Typical Operating Characteristics (continued) (VCC = +3.3V, TA = +25°C, unless otherwise noted.) 0.65 0.65 RELATIVE LINEARITY (LSB) 0.45 0.25 0.05 -0.15 -0.35 -0.55 DS3901 toc16 R2 RELATIVE LINEARITY vs. RESISTOR SETTING DS3901 toc15 R2 ABSOLUTE LINEARITY vs. RESISTOR SETTING ABSOLUTE LINEARITY (LSB) DS3901 Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM 0.45 0.25 0.05 -0.15 -0.35 -0.55 -0.75 -0.75 0 51 102 153 204 255 SETTING (DEC) 0 51 102 153 204 255 SETTING (DEC) Pin Description 6 PIN NAME 1 SCL I2C Clock Input FUNCTION 2 SDA I2C Data I/O Pin 3 ADD_SEL 4 BK_SEL I2C Slave Address Select Pin Bank Select Pin. This pin has an internal pulldown resistor, RBK. 5 DIS High-Impedance Disable Input. This pin has an internal pullup resistor, RDIS. 6, 13 N.C. No Connection 7 GND Ground 8 L0 Resistor 0 Low Terminal 9 H0 Resistor 0 High Terminal 10 H1 Resistor 1 High Terminal 11 L2 Resistor 2 Low Terminal 12 H2 Resistor 2 High Terminal 14 VCC Voltage Supply _____________________________________________________________________ Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM SDA SCL DATA BUS I2C INTERFACE ADDRESS VCC ADD_SEL DS3901 VCC CONTROL GND VCC MEMORY 84h 88-8Bh 8Fh CONFIGURATION RDIS PASSWORD ENTRY (SRAM) DIS RBK STATUS (SRAM) 90-93h PW1 PASSWORD SETTING 94-97h PW2 PASSWORD SETTING Hi-Z2 CONTROL Hi-Z0 CONTROL Hi-Z1 CONTROL BK_SEL Hi-Z0 MUX CONTROL 98h RESISTOR 0 BANK 0 99h RESISTOR 1 BANK 0 9Ah RESISTOR 2 BANK 0 H0 R0 50kΩ FS 256 POSITIONS BANK 0 L0 L0_SW Hi-Z1 MUX H1 9Ch RESISTOR 0 BANK 1 9Dh RESISTOR 1 BANK 1 9Eh RESISTOR 2 BANK 1 9Fh I2C SLAVE ADDRESS BANK 1 R1 30kΩ FS 256 POSITIONS Hi-Z2 H2 PW1 EEPROM PW2 EEPROM R2 20kΩ FS 256 POSITIONS L2 _____________________________________________________________________ 7 DS3901 Block Diagram DS3901 Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM Detailed Description The DS3901 contains three configurable variable resistors. The Block Diagram illustrates the features of the DS3901. The following sections discuss these features in detail. Dual Bank Resistor Settings The setting for each resistor can be loaded from one of two possible registers. These registers are referred to as “banks” with each resistor having a “Bank 0” and “Bank 1” value. The bank to be loaded as the resistor value is selected by the OR’ing of the BK_SEL pin logic state and the BSC control bit (bit 3, register 84h). See the Memory Map section for details. If the result of the OR’ing is a 0, then all three resistors will use the values stored in their Bank 0 locations. If the result is a 1, then all three resistors will use the values stored in their Bank 1 locations. Shunt Resistor Switch Resistor 0 has the option to have an external fixed resistor connected to the L0 pin. This provides a means to select between a standard full-scale resistor value and an extended full-scale value. By default, the L0_SW bit (bit 4 of the Configuration Register, 84h) is set to a value of 0. When the L0_SW bit is 0, the internal connection from the low side of Resistor 0 to ground is opened, and the low terminal of Resistor 0 is only connected to the L0 pin. This allows for an external resistor to be attached to the L0 pin for an extended full-scale value. By writing the switch control bit L0_SW to a 1, the low terminal of Resistor 0 is internally connected to ground. High-Impedance Function There are two ways to place the resistors in a highimpedance (Hi-Z) state. One way is to set the DIS pin to a 1. This is done by either floating the pin (there is an internal pullup resistor, R DIS ) or by connecting DIS directly to VCC. When the DIS pin is held high or left floating, all three resistors are held in a high-impedance state. The second method is to use bits 0 to 2 of the Configuration Register (84h), to set each resistor to a 8 high-impedance state (see the Memory Map section for details). The state of the DIS pin overrides the state of the high-impedance control bits (see the Memory Map section for details). Slave Address Byte The ADD_SEL pin is used to select the I2C address of the DS3901. When the ADD_SEL pin is connected low, the I 2 C address of the DS3901 is A2h. When the ADD_SEL pin is connected high, the value stored in the Slave Address register (9Fh) is used. The default value for the Slave Address register is shown in the Memory Map section. The Slave Address register can be programmed to one of 128 possible addresses since the LSB of the Slave Address register is reserved as the read/write bit for the I2C command structure. Password Protection The memory of the DS3901 is write-protected with a two-level password scheme. All memory locations can be read without a password, with the exception of the Password Entry registers and Password Setting registers. Once the appropriate password is entered in the Password Entry bytes (88 to 8Bh), the DS3901 will allow write access to the memory areas designated for that password. The setting for the PW1 password is written in the PW1 Password Setting register (bytes 90 to 93h). The setting for the PW2 password is written in the PW2 Password Setting register (bytes 94 to 97h). See the Memory Map section for more details. Entering the PW2 password allows access to areas protected by the PW1 password. When shipped from the factory, both password settings are all zeroes. Likewise, every time the device is powered up the Password Entry register (SRAM) defaults to all zeroes. If write protection is not desired, leave the password setting at the factory default and ignore the Password Entry register. Write protection goes into effect once either or both default password settings have been changed to unique values. _____________________________________________________________________ Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM how the memory map is organized. Register details are discussed in the Register Descriptions section. Table 1. Memory Map DESCRIPTION ADDR BINARY MSB LSB ACCESS FACTORY DEFAULT NO PW PW1 PW2 TYPE Lower Memory 00–7Fh PW2 EEPROM 00h R R R/W EEPROM Memory 80–83h PW1 EEPROM 00h R R/W R/W EEPROM Configuration 00h R R/W R/W EEPROM Memory 85–87h PW1 EEPROM 00h R R/W R/W EEPROM Password Entry 88–8Bh MSB–LSB 00h W W W SRAM Memory 8C–8Eh 00h R/W R/W R/W SRAM R R R SRAM Status 84h 8Fh L0_SW BSC HiZ2 HiZ1 HiZ0 SRAM 0 0 0 BSS 0 0 0 DISS 000x000xb Password Setting PW1 90–93h MSB–LSB 00h — — W EEPROM Password Setting PW2 94–97h MSB–LSB 00h — — W EEPROM Resistor 0 Bank 0 98h — 7Fh R R R/W EEPROM Resistor 1 Bank 0 99h — 7Fh R R R/W EEPROM Resistor 2 Bank 0 9Ah — 7Fh R R R/W EEPROM Memory 9Bh PW2 EEPROM 00h R R R/W EEPROM Resistor 0 Bank 1 9Ch — 7Fh R R R/W EEPROM Resistor 1 Bank 1 9Dh — 7Fh R R R/W EEPROM Resistor 2 Bank 1 9Eh — 7Fh R R R/W EEPROM Slave Address 9Fh I2C SLAVE ADDRESS A0h R R R/W EEPROM A0h–FFh PW2 EEPROM 00h R R R/W EEPROM Memory Register Descriptions MEMORY REGISTERS 00h–7Fh: PW2 EEPROM Factory Default: 00h Access Without Password: Read only Access With PW1 Password: Read only Access With PW2 Password: Read and Write Memory Type: Nonvolatile (EEPROM) 00h–7Fh EEPROM _____________________________________________________________________ 9 DS3901 Memory Map The memory consists of 256 bytes and is write-protected with a two-level password scheme. Table 1 below shows DS3901 Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM MEMORY REGISTERS 80h–83h: PW1 EEPROM Factory Default: 00h Access Without Password: Read only Access With PW1 Password: Read and Write Access With PW2 Password: Read and Write Memory Type: Nonvolatile (EEPROM) 80h–83h EEPROM MEMORY REGISTER 84h: CONFIGURATION REGISTER Factory Default: 00h Access Without Password: Read only Access With PW1 Password: Read and Write Access With PW2 Password: Read and Write Memory Type: Nonvolatile (EEPROM) 84h bits 7–5 bit 4 bit 3 bit 2 bit 1 bit 0 10 L0_SW BSC b7 HiZ2 HiZ1 HiZ0 b0 These bits are set to 0. L0_SW: Selectable switch (see the Block Diagram) that allows for an external shunt resistor to be connected to the L0 pin. 0 = Switch L0_SW is open (default). 1 = Switch L0_SW is closed. BSC: A control bit that, when OR’d with the state of the BK_SEL pin, selects which bank of registers will be used to determine the setting of Resistors 0, 1, and 2. 0 = BK_SEL pin determines which bank settings are used. 1 = Bank 1 settings are used. HiZ2: A control bit used to select a high-impedance state for Resistor 2. If the DIS pin is high, all resistors are high impedance regardless of Hi-Z control pin state. If the DIS pin is low, then the following is true: 0 = Resistor 2 is not in a high-impedance state (default). 1 = Resistor 2 is placed in a high-impedance state. HiZ1: A control bit used to select a high-impedance state for Resistor 1. If the DIS pin is high, all resistors are high impedance regardless of Hi-Z control pin state. If the DIS pin is low, then the following is true: 0 = Resistor 1 is not in a high-impedance state (default). 1 = Resistor 1 is placed in a high-impedance state. HiZ0: A control bit used to select a high-impedance state for Resistor 0. If the DIS pin is high, all resistors are high impedance regardless of Hi-Z control pin state. If the DIS pin is low, then the following is true: 0 = Resistor 0 is not in a high-impedance state. (Default) 1 = Resistor 0 is placed in a high-impedance state. ____________________________________________________________________ Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM Factory Default: 00h Access Without Password: Read only Access With PW1 Password: Read and Write Access With PW2 Password: Read and Write Memory Type: Nonvolatile (EEPROM) 85h–87h DS3901 MEMORY REGISTERS 85h–87h: PW1 EEPROM EEPROM MEMORY REGISTERS 88h-8Bh: PASSWORD ENTRY Factory Default: 00000000h Access Without Password: Write only Access With PW1 Password: Write only Access With PW2 Password: Write only Memory Type: Volatile (SRAM) 88h 231 230 229 228 227 226 225 224 89h 223 222 221 220 219 218 217 216 8Ah 215 214 213 212 211 210 29 28 8Bh 27 26 25 24 23 22 21 20 b7 b0 There are two passwords for the DS3901, the PW1 password and the PW2 password. The memory map register descriptions indicate the type of access granted for each level of password used. See the Password Protection section for details on password access. MEMORY REGISTERS 8Ch–8Eh: SRAM Factory Default: 00h Access Without Password: Read and Write Access With PW1 Password: Read and Write Access With PW2 Password: Read and Write Memory Type: Volatile (SRAM) 8Ch-8Eh SRAM ____________________________________________________________________ 11 DS3901 Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM MEMORY REGISTER 8Fh: STATUS Factory Default: 000x000xb Access Without Password: Read only Access With PW1 Password: Read only Access With PW2 Password: Read only Memory Type: Volatile (SRAM) 8Fh 0 0 0 BSS 0 0 0 b7 DISS b0 bits 7–5 These bits are 0. bit 4 BSS: A status bit that indicates the state of the BK_SEL pin. 0 = BK_SEL pin is low. 1 = BK_SEL pin is high. bits 3–1 These bits are 0. bit 0 DISS: A status bit that indicates the state of the DIS pin. 0 = DIS pin is low. Hi-Z control bits can be used to select high-impedance state for each resistor. 1 = DIS pin is high. All resistors are in a high-impedance state. MEMORY REGISTERS 90h–93h: PW1 PASSWORD SETTING Factory Default: 00000000h Access Without Password: None Access With PW1 Password: None Access With PW2 Password: Write only Memory Type: Nonvolatile (EEPROM) 90h 231 230 229 228 227 226 225 224 91h 223 222 221 220 219 218 217 216 92h 215 214 213 212 211 210 29 28 93h 27 26 25 24 23 22 21 20 b7 These four bytes contain the password used to access memory that is protected by the PW1 password. 12 ____________________________________________________________________ b0 Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM Factory Default: 00000000h Access Without Password: None Access With PW1 Password: None Access With PW2 Password: Write only Memory Type: Nonvolatile (EEPROM) DS3901 MEMORY REGISTERS 94h–97h: PW2 PASSWORD SETTING 94h 231 230 229 228 227 226 225 224 95h 223 222 221 220 219 218 217 216 96h 215 214 213 212 211 210 29 28 97h 27 26 25 24 23 22 21 20 b7 b0 These four bytes contain the password used to access memory that is protected by the PW2 password. MEMORY REGISTER 98h: RESISTOR 0, BANK 0 Factory Default: 7Fh Access Without Password: Read only Access With PW1 Password: Read only Access With PW2 Password: Read and Write Memory Type: Nonvolatile (EEPROM) 98h 27 26 25 b7 24 23 22 21 20 b0 This register contains the Bank 0 values for Resistor 0. The OR’d result of the state of the BSC bit (bit 3, 84h) and the BK_SEL pin determines if Resistor 0 Bank 0 or Resistor 0 Bank 1 is used for the Resistor 0 setting. See the Configuration Register in Register 84h for logic details. ____________________________________________________________________ 13 DS3901 Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM MEMORY REGISTER 99h: RESISTOR 1, BANK 0 Factory Default: 7Fh Access Without Password: Read only Access With PW1 Password: Read only Access With PW2 Password: Read and Write Memory Type: Nonvolatile (EEPROM) 99h 27 26 25 24 23 22 21 b7 20 b0 This register contains the Bank 0 values for Resistor 1. The OR’d result of the state of the BSC bit (bit 3, 84h) and the BK_SEL pin determines if Resistor 1 Bank 0 or Resistor 1 Bank 1 is used for the Resistor 1 setting. See the Configuration Register in Register 84h for logic details. MEMORY REGISTER 9Ah: RESISTOR 2, BANK 0 Factory Default: 7Fh Access Without Password: Read only Access With PW1 Password: Read only Access With PW2 Password: Read and Write Memory Type: Nonvolatile (EEPROM) 9Ah 27 26 25 24 23 b7 20 Resistor 2 Bank 1 is used for the Resistor 2 setting. See the Configuration Register in Register 84h for logic details. MEMORY REGISTER 9Bh: PW2 EEPROM Factory Default: 00h Access Without Password: Read only Access With PW1 Password: Read only Access With PW2 Password: Read and Write Memory Type: Nonvolatile (EEPROM) 14 21 b0 This register contains the Bank 0 values for Resistor 2. The OR’d result of the state of the BSC bit (bit 3, 84h) and the BK_SEL pin determines if Resistor 2 Bank 0 or 9Bh 22 EEPROM ____________________________________________________________________ Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM Factory Default: 7Fh Access Without Password: Read only Access With PW1 Password: Read only Access With PW2 Password: Read and Write Memory Type: Nonvolatile (EEPROM) 9Ch 27 26 25 24 DS3901 MEMORY REGISTER 9Ch: RESISTOR 0, BANK 1 23 22 21 b7 20 b0 This register contains the Bank 1 values for Resistor 0. The OR’d result of the state of the BSC bit (bit 3, 84h) and the BK_SEL pin determines if Resistor 0 Bank 0 or Resistor 0 Bank 1 is used for the Resistor 0 setting. See the Configuration Register in Register 84h for logic details. MEMORY REGISTER 9Dh: RESISTOR 1, BANK 1 Factory Default: 7Fh Access Without Password: Read only Access With PW1 Password: Read only Access With PW2 Password: Read and Write Memory Type: Nonvolatile (EEPROM) 9Dh 27 26 25 24 23 22 21 b7 20 b0 This register contains the Bank 1 values for Resistor 1. The OR’d result of the state of the BSC bit (bit 3, 84h) and the BK_SEL pin determines if Resistor 1 Bank 0 or Resistor 1 Bank 1 is used for the Resistor 1 setting. See the Configuration Register in Register 84h for logic details. MEMORY REGISTER 9Eh: RESISTOR 2, BANK 1 Factory Default: 7Fh Access Without Password: Read only Access With PW1 Password: Read only Access With PW2 Password: Read and Write Memory Type: Nonvolatile (EEPROM) 9Eh 27 26 25 b7 24 23 22 21 20 b0 This register contains the Bank 1 values for Resistor 2. The OR’d result of the state of the BSC bit (bit 3, 84h) and the BK_SEL pin determines if Resistor 2 Bank 0 or Resistor 2 Bank 1 is used for the Resistor 2 setting. See the Configuration Register in Register 84h for logic details. ____________________________________________________________________ 15 DS3901 Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM MEMORY REGISTER 9Fh: SLAVE ADDRESS REGISTER Factory Default: A0h Access Without Password: Read only Access With PW1 Password: Read only Access With PW2 Password: Read and Write Memory Type: Nonvolatile (EEPROM) 9Fh 27 26 25 24 23 b7 20 value for the slave address is A0h. The seven most significant bits are used (the LSB is not used because it is in the bit position of the R/W bit) to allow the slave address to be programmed to one of 128 possible addresses. MEMORY REGISTERS A0h–FFh: PW2 EEPROM Factory Default: 00h Access Without Password: Read only Access With PW1 Password: Read only Access With PW2 Password: Read and Write Memory Type: Nonvolatile (EEPROM) 16 21 b0 The I2C slave address of the DS3901 depends on the state of the ADD_SEL pin. If this pin is low, then the slave address is fixed at A2h. If the ADD_SEL pin is high, then the slave address is determined by the value stored in EEPROM at address 9Fh. Factory default A0h–FFh 22 EEPROM ____________________________________________________________________ Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM I2C Definitions The following terminology is commonly used to describe I2C data transfers. 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 their logic-high states. When the bus is idle it often initiates a low-power mode for slave devices. 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. See the timing diagram for applicable timing. 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. See the timing diagram for applicable timing. Repeated START Condition: The master can use a repeated START condition at the end of one data transfer to indicate that it immediately initiates 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. See the timing diagram for applicable timing. 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 (see Figure 1). 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 (see Figure 1) 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. Acknowledgement (ACK and NACK): An Acknowledgement (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 zero during the 9th bit. A device performs a NACK by transmitting a one during the 9th bit. Timing (Figure 1) 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 as an indication that the device is not receiving data. 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 1. I2C Timing Diagram ____________________________________________________________________ 17 DS3901 I2C Serial Interface Description DS3901 Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM Byte Write: A byte write consists of 8 bits of information transferred from the master to the slave (MSB first) plus a 1-bit acknowledgement from the slave to the master. The 8 bits transmitted by the master are done according to the bit write definition and the acknowledgement is read using the bit read definition. 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 (MSB first) from the slave to the master are read by the master using the bit read definition above, 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 will return control of SDA to the master. Slave Address Byte: Each slave on the I 2 C bus responds to a slave addressing 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 ADD_SEL pin and Slave Address register (9Fh) determine the I2C slave address for the DS3901. If ADD_SEL is low, then the slave address is fixed at A2h. If ADD_SEL is high, then the slave address in the Slave Address Register (9Fh) is used. The LSB of the Slave Address Byte is the R/W bit. If the R/W bit is 0, then the master indicates it will write data to the slave. If R/W = 1, then the master will read data from the slave. If an incorrect slave address is written, the DS3901 will assume the master is communicating with another I2C device and ignore 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 acknowledgement during all byte write operations. 18 Writing Multiple Bytes to a Slave: To write multiple bytes to a slave the master generates a START condition, writes the slave address byte (R/W = 0), writes the memory address, writes up to 8 data bytes, and generates a STOP condition. The DS3901 is capable of writing up to 8 bytes (1 page or row) with a single write transaction. This is internally controlled by an address counter that allows data to be written to consecutive addresses without transmitting a memory address before each data byte is sent. The address counter limits the write to one 8-byte page. Attempts to write to additional pages of memory without sending a STOP condition between pages result in the address counter wrapping around to the beginning of the present row. To prevent address wrapping from occurring, the master must send a STOP condition at the end of the page, and then wait for the bus free or EEPROM write time to elapse. Then the master may generate a new START condition and write the slave address byte (R/W = 0) and the first memory address of the next memory row before continuing to write data. Acknowledge Polling: Any time an EEPROM page is written, the DS3901 requires the EEPROM write time (tW) after the STOP condition to write the contents of the page to EEPROM. During the EEPROM write time, the device will not acknowledge its slave address because it is busy. It is possible to take advantage of that phenomenon by repeatedly addressing the DS3901, which allows the next page to be written as soon as the DS3901 is ready to receive the data. The alternative to acknowledge polling is to wait for a maximum period of tW to elapse before attempting to write again to the device. EEPROM Write Cycles: When EEPROM writes occur, the DS3901 will write the whole EEPROM memory page even if only a single byte on the page was modified. Writes that do not modify all 8 bytes on the page are allowed and do not corrupt the remaining bytes of memory on the same page. Because the whole page is written, bytes on the page that were not modified during the transaction are still subject to a write cycle. This can result in a whole page being worn out over time by writing a single byte repeatedly. The DS3901’s EEPROM write cycles are specified in the Nonvolatile Memory Characteristics table. The specification shown is at the worst-case temperature. ____________________________________________________________________ Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM 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 NACKs to indicate the end of the transfer and generates a stop condition. This can be done with or without modifying the address counter’s location before the read cycle. Applications Information Power-Supply Decoupling To achieve best results, it is recommended that the power supply is decoupled with a 0.01µF or a 0.1µF capacitor. Use high-quality, ceramic, surface-mount capacitors, and mount the capacitors as close as possible to the VCC and GND pins to minimize lead inductance. SDA and SCL Pullup Resistors SDA is an open-collector output on the DS3901 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 utilized 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. Chip Topology TRANSISTOR COUNT: 52,353 SUBSTRATE CONNECTED TO GROUND ____________________________________________________________________ 19 DS3901 Reading a Single Byte from a Slave: Unlike the write operation that uses the memory address byte to define where the data is to be written, the read operation occurs at the present value of the memory address 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. 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 condition, writes the slave address byte (R/W = 1), reads data with ACK or NACK as applicable, and generates a STOP condition. Triple, 8-Bit NV Variable Resistor with Dual Settings and User EEPROM DS3901 Typical Operating Circuit VCC DS3901 H0 MODSET VCC 0.1µF 4.7kΩ 4.7kΩ MAX3738 LASER DRIVER L0 (OPTIONAL SHUNT RESISTOR) SDA SCL DIS SIGNALS FROM HOST H1 APCSET ADD_SEL BK_SEL H2 TH GND VCC L2 2.5kΩ 0.1µF MAX3747A LIMITING AMP 0.1µF VREF 50kΩ 50kΩ 0.1µF DIFFERENTIAL DATA IN 0.1µF IN+ IN- Package Information For the latest package outline information, go to www.maxim-ic.com/DallasPackInfo. 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. 20 ____________________Maxim Integrated Products, 120 San Gabriel Drive, Sunnyvale, CA 94086 408-737-7600 © 2006 Maxim Integrated Products Printed USA is a registered trademark of Maxim Integrated Products, Inc. is a registered trademark of Dallas Semiconductor Corporation.