MAXIM DS3901E

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.