Implementing a 10-Bit Digi Pot Using a Quad 8-Bit Digi Pot

TB3073
Implementing a 10-Bit Digital Potentiometer using a
Quad 8-Bit Digital Potentiometer Technical Brief
Mark Palmer
Microchip Technology Inc.
FIGURE 1:
POR/BOR Event
Digital
Potentiometer
INTRODUCTION
RxA = 1
This technical brief will discuss how using the Terminal
Control feature of Microchip’s digital potentiometers
allows a higher resolution digital potentiometer to be
implemented.
PxA
RxW = 1
Using a quad 8-bit digital potentiometer allows a 10-bit
digital potentiometer to be implemented, while a dual
8-bit digital potentiometer allows a 9-bit digital
potentiometer to be implemented.
Limitations of this implementation will be covered so
that application issues may be understood. These
limitations may be an acceptable trade-off to the
possible cost savings.
RxB = 1
The Terminal Control operation is shown in Figure 1 for
all terminals connected (RxA, RxW, and RxB bits = 1,
default state after a POR/BOR event), while Figure 2
shows the Terminal Control operation for all terminals
disconnected (the RxA, RxW, and RxB bits = 0), where
the “x” refers to the resistor network selected (0, 1, 2,
or 3).
Implementing a higher resolution digital potentiometer
requires that all the A and B terminals are connected
(RxA and RxB bits = 1) and all W pins are externally
shorted together. With this configuration, only one of
the W pins can be connected to the resistor network at
any one time. If two or more W pins are connected to
the resistor networks, then the higher resolution digital
potentiometer RAB resistance will be affected.
 2013 Microchip Technology Inc.
PxW
PxB
Model
Digital
Potentiometer
RSxA
OVERVIEW
PxA
RAB
The Terminal Control feature allows any of the three
digital potentiometer terminals (A, W, or B) of the
resistor network to be disconnected from the device’s
pins. The default state of the TCON register is
terminals connected. The number of TCON registers is
determined by the number of resistor networks on the
device. For this discussion we will use a quad resistor
network digital potentiometer, which is either the
MCP43x1 or MCP44x1 device. The TCON registers
bits are shown in Register 1.
Terminal Connections After
RSxW
PxW
RSxB
FIGURE 2:
Terminals Open
A
8-bit RAB
Author:
PxB
B
Terminal Connections – All
Digital
Potentiometer
RxA = 0
PxA
RxW = 0
RxB = 0
PxW
PxB
DS93073A-page 1
TB3073
Figure 3 shows the block diagram for the MCP4461
device, which is a quad output 8-bit nonvolatile digital
potentiometer with I2C™ serial interface.
MCP4461 Device Block Diagram (8-bit Nonvolatile with I2C Serial Interface)
FIGURE 3:
VDD
VSS
A1
HVC/A0
SCL
SDA
WP
RESET
Power-up/
Brown-out
Control
Resistor
Network 0
(Pot 0)
I2C™ Serial
Interface
Module &
Control
Logic
(WiperLock™
Technology)
Wiper 0
& TCON0
Register
Memory (16x9)
Wiper0 (V & NV)
Wiper1 (V & NV)
Wiper2 (V & NV)
Wiper3 (V & NV)
TCON0
TCON1
STATUS
Data EEPROM
(5 x 9-bits)
Resistor
Network 1
(Pot 1)
Wiper 1
& TCON0
Register
Resistor
Network 2
(Pot 2)
Wiper 2
& TCON1
Register
Resistor
Network 3
(Pot 3)
Wiper 3
& TCON1
Register
DS93073A-page 2
P0A
P0W
P0B
P1A
P1W
P1B
P2A
P2W
P2B
P3A
P3W
P3B
 2013 Microchip Technology Inc.
TB3073
REGISTER 1:
TCON REGISTER BITS
Control Bit with POR/BOR State
Register
R-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
TCON0
D8
R1HW
R1A
R1W
R1B
R0HW
R0A
R0W
R0B
TCON1
D8
R3HW
R3A
R3W
R3B
R2HW
R2A
R2W
R2B
bit 8
bit 0
Legend:
R = Readable bit
W = Writable bit
U = Unimplemented bit, read as ‘0’
-n = Value at POR
‘1’ = Bit is set
‘0’ = Bit is cleared
x = Bit is unknown
bit 8
D8: Reserved. Forced to “1”
bit 7
R1HW or R3HW: Resistor Network 1 / 3 Hardware Configuration Control bit
This bit forces Resistor Network 1 / 3 into the “shutdown” configuration of the Hardware pin
1 = Resistor Network 1 / 3 is NOT forced to the hardware pin “shutdown” configuration
0 = Resistor Network 1 / 3 is forced to the hardware pin “shutdown” configuration
bit 6
R1A or R3A: Resistor Network 1 / 3 Terminal A (P1A/P3A pin) Connect Control bit
This bit connects/disconnects the Resistor Network 1 / 3 Terminal A to the Resistor 1 / 3 Terminal A Pin
1 = P1A/P3A pin is connected to the Resistor Network 1 / 3 Terminal A
0 = P1A/P3A pin is disconnected from the Resistor Network 1 / 3 Terminal A
bit 5
R1W or R3W: Resistor Network 1 / 3 Wiper (P1W/P3W pin) Connect Control bit
This bit connects/disconnects the Resistor Network 1 / 3 Wiper to the Resistor 1 / 3 Terminal W Pin
1 = P1W/P3W pin is connected to the Resistor Network 1 / 3 Terminal W
0 = P1W/P3W pin is disconnected from the Resistor Network 1 / 3 Terminal W
bit 4
R1B or R3B: Resistor Network 1 / 3 Terminal B (P1B/P3B pin) Connect Control bit
This bit connects/disconnects the Resistor Network 1 / 3 Terminal B to the Resistor 1 / 3 Terminal B Pin
1 = P1B/P3B pin is connected to the Resistor Network 1 / 3 Terminal B
0 = P1B/P3B pin is disconnected from the Resistor Network 1 / 3 Terminal B
bit 3
R0HW or R2HW: Resistor Network 0 / 2 Hardware Configuration Control bit
This bit forces Resistor Network 0 / 2 into the “shutdown” configuration of the Hardware pin
1 = Resistor Network 0 / 2 is NOT forced to the hardware pin “shutdown” configuration
0 = Resistor Network 0 / 2 is forced to the hardware pin “shutdown” configuration
bit 2
R0A or R2A: Resistor Network 0 / 2 Terminal A (P0A/P2A pin) Connect Control bit
This bit connects/disconnects the Resistor Network 0 / 2 Terminal A to the Resistor 0 / 2 Terminal A Pin
1 = P0A/P2A pin is connected to the Resistor Network 0 / 2 Terminal A
0 = P0A/P2A pin is disconnected from the Resistor Network 0 / 2 Terminal A
bit 1
R0W or R2W: Resistor Network 0 / 2 Wiper (P0W/P2W pin) Connect Control bit
This bit connects/disconnects the Resistor Network 0 / 2 Wiper to the Resistor 0 / 2 Terminal W Pin
This bit connects/disconnects the Resistor 0 Wiper to the Resistor 0 Network
1 = P0W/P2W pin is connected to the Resistor Network 0 / 2 Terminal W
0 = P0W/P2W pin is disconnected from the Resistor Network 0 / 2 Terminal W
bit 0
R0B or R2B: Resistor Network 0 / 2 Terminal B (P0B/P2B pin) Connect Control bit
This bit connects/disconnects the Resistor Network 0 / 2 Terminal B to the Resistor 0 / 2 Terminal B Pin
1 = P0B/P2B pin is connected to the Resistor Network 0 / 2 Terminal B
0 = P0B/P2B pin is disconnected from the Resistor Network 0 / 2 Terminal B
Note 1:
These bits do not affect the wiper register values.
 2013 Microchip Technology Inc.
DS93073A-page 3
TB3073
IMPLEMENTATION
resistance. So, if the 8-bit resistor network resistances
are 5k, then the 10-bit RAB resistance (RAB-10) is
20 k.
Figure 4 shows the connections of the four 8-bit
resistor networks of a quad digital potentiometer device
(MCP4351/61 or MCP4451/61) to implement a single
10-bit digital potentiometer. To achieve this, only one of
the four wiper terminals may be connected at a time
(the other three are disconnected, which is floating).
Also, the A terminal of resistor network 0 is connected
to the B terminal of resistor network 1, the A terminal of
resistor network 1 is connected to the B terminal of
resistor network 2, and the A terminal of resistor
network 2 is connected to the B terminal of resistor
network 3. This means that the implemented 10-bit RAB
(RAB-10) resistance is four times the 8-bit RAB (RAB-08)
10-bit Resistor Network Implementation Diagram (using four 8-bit Resistor Networks).
P3A
R3A = 1
A
R3W
P3B
R2B = 1
C1(1)
P1W
R1W (2)
P1A
RAB
R2W
P2B
R2B
W
R1A
P1W
RAB
R1A = 1
P2W
R1W
P1B
P0A
R0A
P0W
R0B = 1
10-bit Digital
Potentiometer
P0B
R0W
B
P0A
RAB
R0W (2)
R1B
RAB
P0W
P1A
P1B
R1B = 1
R0A = 1
P2A
RAB
P2B
W
R2A
P2A
10-bit RAB (RAB-10)
R2W (2)
R3B
RAB
P2W
A
P3B
R3B = 1
R2A = 1
P3A
R3A
P3W
RAB
R3W (2)
MCP43xx or
MCP44xx
10-bit RAB (RAB-10) (3)
MCP43xx or MCP44xx
P3W
After POR, and before writing to the
TCON registers, the RAB-10 resistance will
be ~ the RAB-08 resistance since all wiper
terminals are connected and the wiper will
be at mid-scale (volatile devices or NV
devices where NV Wiper 0 and NV Wiper
3 = mid-scale). So, after POR and until the
device is configured, the RAB-10 resistance approximately equals the RAB-08
resistance.
RAB
FIGURE 4:
Note:
R0B
P0B
B
10-bit Digital
Potentiometer
after POR/BOR
Note 1: Optional, application dependant.
2: Typically only one of these wiper switches will be closed at a time.
3: After POR/BOR event, the effective resistance is shown as blue path.
DS93073A-page 4
 2013 Microchip Technology Inc.
TB3073
FIGURE 5:
10-bit Implementation Model
(for Wiper Value between 100h and 1FFh)
P3W
So, using typical switch resistance values (75), the
switch resistance between each 8-bit digital potentiometer (RS0A + RS1B, RS1A + RS2B, and RS2A + RS3B) is
150. This will affect the VW output voltage for the
output code of RAB(n) at Full Scale and RAB(n+1) at Zero
Scale.
Due to the terminal switches being analog switches
(NMOS and PMOS transistors in parallel), the RON
resistance of the analog switch will depend on several
factors which include the device VDD voltage, the voltages at P3A, P0B, and W. W is the 10-bit wiper, which
is the P0W, P1W, P2W, and P3W pins shorted
together. This variation of the analog switch resistance
will effect the step voltages between the 8-bit resistor
networks, which can be seen when setting the wiper
connections to VFS1 and VZS2. These voltages will
determine the voltages at P3B/P2A, P2B/P1A, and
P1B/P0A, as well as currents through the resistor
network elements, and the device temperature.
P3A
A
VZS3
RS2A + RS3B
R2W = 0
VZS2
RS1A + RS2B
W
VFS1
C1
P1W
R1W = 1
10-bit RAB (RAB-10)
P2W
RAB-08’ (2)
VFS2
RAB-08’ (1)
The value of these switch resistances are determined
by factors such as device VDD voltage, applied terminal
voltages (RS3A, RS0B, and the Wiper), and device
temperature. Therefore, as the RAB-10 resistance
increases, as a result of having multiple RAB-08
resistances in series, the Zero-Scale and Full-Scale
errors decrease approximately proportionally. That is to
say, doubling the RAB-10 resistance will reduce the
Zero-Scale and Full-Scale errors by half.
R3W = 0
RS3A
RAB-08’ (3)
VFS3
VZS1
RS0A + RS1B
VFS0
P0W
R0W = 0
RAB-08’ (0)
The Implementation shown in Figure 4 can be modeled
as shown in Figure 5. The analog switches for each
Terminal A and Terminal B connections will add resistance to the resistor ladder. The use of a larger RAB
resistance device, such as 100 k, is one method to
minimize the errors due to the analog switch resistance
(see Table 2).
VZS0
RS0B
P0B
B
Note: RSxA and RSxB are the resistances
associated with the analog switches
connecting the A terminal to the A pin and
the B terminal to the B pin.
 2013 Microchip Technology Inc.
DS93073A-page 5
TB3073
TRANSITIONS BETWEEN 8-BIT RESISTOR
NETWORKS IN 10-BIT RESISTOR LADDER
FOUR SINGLE POTENTIOMETERS OR A
SINGLE QUAD POTENTIOMETER?
To reduce the transition error that occurs between
RAB-08 (x) and RAB-08 (x+1) both wiper switches can be
connected to the resistor network (see example in
Figure 6). This will cause the Wiper voltage (VW) to be
at approximately the mid-point of RAB-08 (x)@FS and
RAB-08 (x+1)@ZS. Doing this will have a minimal effect
on the RAB-10 resistance. This is due to the two wiper
resistances (RS1W and RS2W) being in parallel with the
Terminal A and Terminal B switch resistances (RS1A
and RS2B). In Figure 6, the RAB-10 resistance is
decreased where the (RS2B + RS1A) resistance is
changed from (RS2B + RS1A) to ( (RS2W + RS1W) ||
(RS2B + RS1A) ).
It is recommended to use a single quad potentiometer
since each of the potentiometers on that single die will
have similar characteristics including the tempco.
FIGURE 6:
10-bit Implementation Model
for Value at Full-Scale/Zero-Scale Transition
P3W
P3A
A
RAB-08 (3)
VFS3
RS3A
R3W
VZS3
VFS2
P1W
RAB-08 (2)
RS2W
R2W = 1
RS1W
R1W = 1
VZS2
RS1A + RS2B
VFS1
10-bit RAB (RAB-10)
P2W
VZS1
RS0A + RS1B
RAB-08 (0)
VFS0
P0W
R0W
VZS0
RS0B
EXAMPLE VARIATION OF VS
WHEN USING FOUR SINGLE
POTENTIOMETERS (1)
RAB3 (2) RAB2 (2) RAB1 (2) RAB0 (2)
RAB-08 (1)
C1
Table 1 shows that for the four devices whose resistor
networks are shown in Table 3, the step voltage (VS)
will vary based on which of the four 8-bit resistor
networks is currently controlling the wiper voltage (VW).
The variation can range from a step voltage of
approximately 3.9 mV to approximately 5.9 mV for the
different devices used to form the RAB-10 resistor
network.
TABLE 1:
RS2A + RS3B
W
Four resistor networks on the same die will have very
similar RAB resistances, as specified by the “Nominal
Resistance Match” electrical specification. The typical
variation for the MCP4461 is 0.2%. When the four RAB
resistors are on different die, the variation is +/- 20%
from the typical value. So, with a 5 k typical device the
resistance could range from 4 k to 6 k. Table 2
calculates 10-bit RAB (RAB-10) for a quad digital
potentiometer with the typical RAB-08 value, while
Table 3 shows an example of the potential variation
using four single digital potentiometers.
P0B
B
5,000
4,000
6,000
4,200
VFSx (3) (V)
4.9805 3.6784 2.6367 1.0742
VZSx (4) (V)
3.7174 2.6758 1.1133 0.0195
4.934
3.916
5.951
4.120
VS (5) (mV)
Note 1: Potentiometer RAB3 is at the top of the
ladder, Terminal A is connected to 5V, and
Potentiometer RAB0 is at the bottom of the
ladder, Terminal B is connected to VSS.
2: Includes the Terminal A and Terminal B
Switch Resistance. For this example,
RSxA and RSxB are 75
3: The Full-Scale voltage is determined by
the RABx resistance and the Terminal A
Switch Resistance (75 for this example).
4: The Zero-Scale voltage is determined by
the RABx resistance and the Terminal B
Switch Resistance (75 for this example).
5: The Step voltage (VS):
VS = (VFS - VZS) / (# of RS)
Note: RSxA and RSxB are the resistances
associated with the analog switches
connecting the A terminal to the A pin and
the B terminal to the B pin.
DS93073A-page 6
 2013 Microchip Technology Inc.
TB3073
TABLE 2:
CALCULATING 10-BIT RAB (WITH QUAD 8-BIT DEVICE)
8-bit (Typ.)
10-bit
RAB-10 (Typ.) (1)
RSxA RSxB
10,000
50,000
100,000
Note 1:
2:
3:
(1,2)
75
75
Comments
RAB’
RS0A + RS1B,
RS (3)
in LSb
Relative
(RAB - RSxA - RSxB)
4*RAB-08 RS1A + RS2B,
to RS (RS = 1 LSb)
RS2A + RS3B
150 /
7.92
18.95
75
75
9,850
38.48
40,000
150
150 /
3.90
38.48
75
75
49,850
194.73 200,000
150
150 /
0.77
194.73
75
75
99,850
390.04 400,000
150
150 /
0.38
Allows best
390.04
performance
Switch Resistance is dependant on many issues including device VDD voltage, voltages on the analog
switches source and drain, temperature, current through switch.
The effects of the analog switch resistance (RSxA, RSxB) decreases as the 8-bit RAB values increases.
The Step Resistance (RS) equals the RAB’ divided by the number of Step Resistors (RS = RAB’ /(# of RS) ).
TABLE 3:
4,850
18.95
20,000
150
EXAMPLE DEVICE TO DEVICE VARIATION IF USING 4 SINGLE 8-BIT DEVICES
8-bit
Note 1:
2:
3:
4:
22.86
46.29
233.79
468.17
4,200
8,400
42,000
84,000
RS3 (4)
5,850
11,850
59,850
119,850
RAB3’ (3)
RAB3
3,850 15.04
6,000
7,850 30.67 12,000
39,850 155.67 60,000
79,850 311.92 120,000
RAB-10 (Typ.) (1, 2)
Device 3
RS2 (4)
RAB2
RS1 (4)
Device 2 (max. case)
RAB2’ (3)
5,000
4,850 18.95
4,000
10,000 9,850 38.48
8,000
50,000 49,850 194.73 40,000
100,000 99,850 390.04 80,000
RAB1’ (3)
Device 1 (min. case)
RAB1
RS0 (4)
RAB0
RAB0’ (3)
Device 0 (typical case)
10-bit
4,050
15.83 19,200
8,250
32.23 38,400
41,850 163.48 192,000
83,850 327.54 384,000
RS0A + RS1B,
RS1A + RS2B,
RS2A + RS3B
5,000
(1,2)
RAB0 + RAB1 +
RAB2 + RAB3
RAB-08
8-bit Transition Error
(Typ.) (1)
150
150
150
150
Switch Resistance is dependant on many issues including device VDD voltage, voltages on the analog
switches source and drain, temperature, current through switch.
The effects of the analog switch resistance (RSxA, RSxB) decreases as the 8-bit RAB values increases.
The RSxA and RSxB resistance is a typical 75.
The Step Resistance (RS) equals the RAB’ divided by the number of Step Resistors (RS = RAB’ /(# of RS) ).
 2013 Microchip Technology Inc.
DS93073A-page 7
TB3073
EXAMPLE STEPS FOR CONTROLLING THE
FOUR 8-BIT RESISTOR NETWORKS FOR
10-BIT OPERATION
With two wiper control bits in each TCON register, the
initialization sequence may require up to three serial
commands to update the RAB-10 wiper position (VW).
Example 1 shows a possible sequence of events and
operations to control the operation of the 10-bit digital
potentiometer.
Table 4 shows how to use the upper two bits (D9:D8) of
the 10-bit wiper code to select the correct Resistor
Network to have the wiper connected to.
EXAMPLE 1:
Step
D9:D8
TABLE 4:
00
01
10
11
DECODING 10-BIT CODES TO
FOUR 8-BIT CODES
D7:D0
xxxx
xxxx
xxxx
xxxx
Resistor
Network
After Power-on Reset (POR) all wiper terminals are
connected to the external pins. With P0W and P3W
shorted together the effective RAB-10 resistance will be
approximately the RAB-08 resistance. This is due to the
Resistor Network 0 wiper is at mid-scale and the Resistor Network 3 wiper is at mid-scale. With both wipers
connected to their respective resistor network and
externally shorted together, the effective resistance
becomes approximately RAB-08.
xxxx
xxxx
xxxx
xxxx
Event/Operation Action
RAB-10
VW (1)
Mid-Scale
5 k
(VA-VB) / 2
2
—
Write TCON1 = DDh
—
15 k
(VA-VB) / 3
3
—
Write TCON0 = DDh
Floating
20 k
(VA-VB) / 3
4
—
Write Wiper 2 = 0
—
20 k
(VA-VB) / 3
5
6
—
Change 10-bit
Wiper to 37Fh
—
TCON1 = DFh
Write Wiper 3 = 7Fh
200h
200h
20 k
20 k
(VA-VB) / 2
(VA-VB) / 2
Write TCON1 = FDh
37Fh
20 k
37Fh / 3FFh
Write Wiper 0 = 5Ah
37Fh
20 k
37Fh / 3FFh
9
Change 10-bit
Wiper to 05Ah
—
Write TCON1 = DDh
Floating
20 k
37Fh / 3FFh
10
—
Write TCON0 = DFh
05Ah
20 k
05Ah / 3FFh
11
Change 10-bit
Wiper to 0A5h
Change 10-bit
Wiper to 1A5h
—
Write Wiper 0 = A5h
0A5h
20 k
0A5h / 3FFh
Write Wiper 1 = 5Ah
0A5h
20 k
0A5h / 3FFh
Write TCON0 = FDh
1A5h
20 k
1A5h / 3FFh
—
Unknown
1A5h / 3FFh
12
13
14
—
10-Bit
Wiper
Power-Up (POR)
8
R3W R2W R1W R0W
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
EXAMPLE 10-BIT STATES AND SEQUENCES
1
7
0
1
2
3
Wiper TCON Bit States
Brown-Out (BOR) —
(2)
Comment
This is due to P0W and P3W
being shorted together,
VW = Mid-Scale
P3W and P2W are
disconnected
P1W and P0W are
disconnected
10-bit POR value will be
Mid-Scale
Wiper is at Mid-Scale
Resistor Network 3
Wiper = 7Fh.
(2)
(2)
External Capacitor holds
VW at ~ 37Fh voltage
(2)
(2)
(2)
(2)
(2,3)
15
Power-Up (POR) —
Mid-Scale
5 k
(VA - VB) / 2 Go back to Step 2
Note 1: For this example, voltage on terminal A (VA) higher than voltage on terminal B (VB).
2: This is the ratio for the voltage between the VA and VB voltages.
3: Volatile register values may become corrupted. This means that the Wiper register value may change and
or the Terminal Control bits may change.
DS93073A-page 8
 2013 Microchip Technology Inc.
TB3073
PSEUDO CODE FOR AN 8-BIT
MICROCONTROLLER
Example 2 shows example pseudo code to update the
10-bit digital potentiometer which is implemented as
four 8-bit potentiometers in series.
The 10-bit wiper code value requires two 8-bit
registers. We will name the registers:
• WIPER_H
• WIPER_L
EXAMPLE 2:
The WIPER_L register contains the lower 8-bits of the
10-bit wiper code, while the The WIPER_H register
contains the upper 2-bits of the 10-bit wiper code. A
variable OLD_TCON_PTR will indicate if last write
used TCON0 or TCON1.
This pseudo code is written as a routine that is called
when the 10-bit wiper value is to be updated. So once
the operation is complete, this routine “returns” to the
calling function.
EXAMPLE PSEUDO CODE TO UPDATE THE RAB-10 POTENTIOMETER
Label
Operation
Comment
UPDATE_DP
WIPER_H AND 03h
; Ensure that only bits 1 and 0 can be non-zero
IF WIPER_H == 0h, Goto RAB0
; Check if Wiper code is in 1st 25% range
IF WIPER_H == 1h, Goto RAB1
; Check if Wiper code is in 2nd 25% range
IF WIPER_H == 2h, Goto RAB2
; Check if Wiper code is in 3rd 25% range
IF WIPER_H == 3h, Goto RAB3
; Check if Wiper code is in 4th 25% range
RAB0
IF OLD_TCON_PTR == 0, Write TCON0 = DDh ; Both Wiper0 and Wiper1 are disconnected
IF OLD_TCON_PTR == 1, Write TCON1 = DDh ; Both Wiper2 and Wiper3 are disconnected
RAB1
Wiper0 = WIPER_L
; Wiper0 Register is loaded with 8-bit value
TCON0 = DFh
; Wiper0 is now connected
OLD_TCON_PTR = 0
; Pointer indicates TCON0
RETURN
; Return to calling routine
IF OLD_TCON_PTR == 0, Write TCON0 = DDh ; Both Wiper0 and Wiper1 are disconnected
IF OLD_TCON_PTR == 1, Write TCON1 = DDh ; Both Wiper2 and Wiper3 are disconnected
RAB2
Wiper1 = WIPER_L
; Wiper1 Register is loaded with 8-bit value
TCON0 = FDh
; Wiper1 is now connected
OLD_TCON_PTR = 0
; Pointer indicates TCON0
RETURN
; Return to calling routine
IF OLD_TCON_PTR == 0, Write TCON0 = DDh ; Both Wiper0 and Wiper1 are disconnected
IF OLD_TCON_PTR == 1, Write TCON1 = DDh ; Both Wiper2 and Wiper3 are disconnected
RAB3
Wiper2 = WIPER_L
; Wiper2 Register is loaded with 8-bit value
TCON1 = DFh
; Wiper2 is now connected
OLD_TCON_PTR = 1
; Pointer indicates TCON1
RETURN
; Return to calling routine
IF OLD_TCON_PTR == 0, Write TCON0 = DDh ; Both Wiper0 and Wiper1 are disconnected
IF OLD_TCON_PTR == 1, Write TCON1 = DDh ; Both Wiper2 and Wiper3 are disconnected
Wiper0 = WIPER_L
; Wiper3 Register is loaded with 8-bit value
TCON1 = FDh
; Wiper3 is now connected
OLD_TCON_PTR = 1
; Pointer indicates TCON1
RETURN
; Return to calling routine
 2013 Microchip Technology Inc.
DS93073A-page 9
TB3073
CONSIDERATIONS
Board Area
Potential applications considerations that need to be
evaluated. These considerations may not be an issue
based on the requirements of the end application.
The quad potentiometer can be used in either a 20-lead
TSSOP or 20-lead QFN (4x4) package. The QFN is the
smaller of the two options with a package size of about
16 mils2. A single potentiometer may be available in an
8-lead DFN (3x3) package, which gives a package size
of about 9 mils2. This is about 56% of the board area.
These considerations include, but may not be limited
to:
POR/BOR
When the device has a POR or BOR event, all
terminals are connected. With all the wipers connected,
the effective RAB-10 resistance is 25% of the resistance
when only one wiper terminal is connected. This
resistance is equivalent to the RAB-08 resistance. This
POR/BOR resistance will remain until the TCON
registers are configured. Due to the two TCON
registers, the RAB-10 resistance will have intermediate
values depending on the sequence of disconnecting
the wiper terminals. This lower RAB-10 resistance may
be a system issue due to the higher current possible
changes to the VA and VB voltages until the digital
potentiometer has been initialized.
8-Bit Code Transitions
Due to the Terminal A and Terminal B switch
resistances as each RAB-08 is placed in series, the
transition of the 10-bit codes at each 8-bit boundary
(0FFh to 100h or 1FFh to 200h or 2FFh to 300h) will
have a larger step voltage than code steps between
x00h and xFFh. For the lower RAB-08 resistances, this
transition can be in the multiple LSbs compared to a
standard step. This characteristic is greatly diminished
when the RAB-08 resistance is 100 k (see Table 2).
SUMMARY
This technical brief has shown how the use on
Microchip’s Terminal Control feature allows the
implementation of a higher resolution digital
potentiometer. Although there are characteristics of
this implementation that need to be understood during
system operation, for many applications this is an
acceptable solution to implement a higher resolution
digital potentiometer device.
When possible, the use of higher resistance 8-bit digital
potentiometers (100 k) is preferred, as it will
decrease errors due to the relationship between the
switch resistances (RSxA, RSxW, and RSxB) and the
step resistance (RS).
Output Update
While the output is in each RAB-08 range, the output
update rate is the same as for the RAB, when the output
code crosses the 8-bit boundary, then the update time
needs to include changing the Wiper Terminal
connections. This may require one or two additional
serial commands.
Software Complexity
Due to the requirement to communicate with the
multiple RAB-08 resistor networks and the TCON
registers, the microcontroller’s communication
firmware is more complex than a dedicated 10-bit
device. This is due to the requirement of determining
which of the RAB-08 devices need to be written, as well
as the update of the Wiper connect/disconnect bits of
the TCON registers. This requires testing of the upper
two bits of the 10-bit digital potentiometer code and
comparing to the current setting to determine the
changes required to transition from the old to the new
code.
DS93073A-page 10
 2013 Microchip Technology Inc.
Note the following details of the code protection feature on Microchip devices:
•
Microchip products meet the specification contained in their particular Microchip Data Sheet.
•
Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the
intended manner and under normal conditions.
•
There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our
knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data
Sheets. Most likely, the person doing so is engaged in theft of intellectual property.
•
Microchip is willing to work with the customer who is concerned about the integrity of their code.
•
Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not
mean that we are guaranteeing the product as “unbreakable.”
Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our
products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts
allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act.
Information contained in this publication regarding device
applications and the like is provided only for your convenience
and may be superseded by updates. It is your responsibility to
ensure that your application meets with your specifications.
MICROCHIP MAKES NO REPRESENTATIONS OR
WARRANTIES OF ANY KIND WHETHER EXPRESS OR
IMPLIED, WRITTEN OR ORAL, STATUTORY OR
OTHERWISE, RELATED TO THE INFORMATION,
INCLUDING BUT NOT LIMITED TO ITS CONDITION,
QUALITY, PERFORMANCE, MERCHANTABILITY OR
FITNESS FOR PURPOSE. Microchip disclaims all liability
arising from this information and its use. Use of Microchip
devices in life support and/or safety applications is entirely at
the buyer’s risk, and the buyer agrees to defend, indemnify and
hold harmless Microchip from any and all damages, claims,
suits, or expenses resulting from such use. No licenses are
conveyed, implicitly or otherwise, under any Microchip
intellectual property rights.
Trademarks
The Microchip name and logo, the Microchip logo, dsPIC,
FlashFlex, KEELOQ, KEELOQ logo, MPLAB, PIC, PICmicro,
PICSTART, PIC32 logo, rfPIC, SST, SST Logo, SuperFlash
and UNI/O are registered trademarks of Microchip Technology
Incorporated in the U.S.A. and other countries.
FilterLab, Hampshire, HI-TECH C, Linear Active Thermistor,
MTP, SEEVAL and The Embedded Control Solutions
Company are registered trademarks of Microchip Technology
Incorporated in the U.S.A.
Silicon Storage Technology is a registered trademark of
Microchip Technology Inc. in other countries.
Analog-for-the-Digital Age, Application Maestro, BodyCom,
chipKIT, chipKIT logo, CodeGuard, dsPICDEM,
dsPICDEM.net, dsPICworks, dsSPEAK, ECAN,
ECONOMONITOR, FanSense, HI-TIDE, In-Circuit Serial
Programming, ICSP, Mindi, MiWi, MPASM, MPF, MPLAB
Certified logo, MPLIB, MPLINK, mTouch, Omniscient Code
Generation, PICC, PICC-18, PICDEM, PICDEM.net, PICkit,
PICtail, REAL ICE, rfLAB, Select Mode, SQI, Serial Quad I/O,
Total Endurance, TSHARC, UniWinDriver, WiperLock, ZENA
and Z-Scale are trademarks of Microchip Technology
Incorporated in the U.S.A. and other countries.
SQTP is a service mark of Microchip Technology Incorporated
in the U.S.A.
GestIC and ULPP are registered trademarks of Microchip
Technology Germany II GmbH & Co. & KG, a subsidiary of
Microchip Technology Inc., in other countries.
All other trademarks mentioned herein are property of their
respective companies.
© 2013, Microchip Technology Incorporated, Printed in the
U.S.A., All Rights Reserved.
Printed on recycled paper.
ISBN: 9781620768747
QUALITY MANAGEMENT SYSTEM
CERTIFIED BY DNV
== ISO/TS 16949 ==
 2013 Microchip Technology Inc.
Microchip received ISO/TS-16949:2009 certification for its worldwide
headquarters, design and wafer fabrication facilities in Chandler and
Tempe, Arizona; Gresham, Oregon and design centers in California
and India. The Company’s quality system processes and procedures
are for its PIC® MCUs and dsPIC® DSCs, KEELOQ® code hopping
devices, Serial EEPROMs, microperipherals, nonvolatile memory and
analog products. In addition, Microchip’s quality system for the design
and manufacture of development systems is ISO 9001:2000 certified.
DS93073A-page 11
Worldwide Sales and Service
AMERICAS
ASIA/PACIFIC
ASIA/PACIFIC
EUROPE
Corporate Office
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 480-792-7200
Fax: 480-792-7277
Technical Support:
http://www.microchip.com/
support
Web Address:
www.microchip.com
Asia Pacific Office
Suites 3707-14, 37th Floor
Tower 6, The Gateway
Harbour City, Kowloon
Hong Kong
Tel: 852-2401-1200
Fax: 852-2401-3431
India - Bangalore
Tel: 91-80-3090-4444
Fax: 91-80-3090-4123
India - New Delhi
Tel: 91-11-4160-8631
Fax: 91-11-4160-8632
Austria - Wels
Tel: 43-7242-2244-39
Fax: 43-7242-2244-393
Denmark - Copenhagen
Tel: 45-4450-2828
Fax: 45-4485-2829
India - Pune
Tel: 91-20-2566-1512
Fax: 91-20-2566-1513
France - Paris
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79
Japan - Osaka
Tel: 81-6-6152-7160
Fax: 81-6-6152-9310
Germany - Munich
Tel: 49-89-627-144-0
Fax: 49-89-627-144-44
Atlanta
Duluth, GA
Tel: 678-957-9614
Fax: 678-957-1455
Boston
Westborough, MA
Tel: 774-760-0087
Fax: 774-760-0088
Chicago
Itasca, IL
Tel: 630-285-0071
Fax: 630-285-0075
Cleveland
Independence, OH
Tel: 216-447-0464
Fax: 216-447-0643
Dallas
Addison, TX
Tel: 972-818-7423
Fax: 972-818-2924
Detroit
Farmington Hills, MI
Tel: 248-538-2250
Fax: 248-538-2260
Indianapolis
Noblesville, IN
Tel: 317-773-8323
Fax: 317-773-5453
Los Angeles
Mission Viejo, CA
Tel: 949-462-9523
Fax: 949-462-9608
Santa Clara
Santa Clara, CA
Tel: 408-961-6444
Fax: 408-961-6445
Toronto
Mississauga, Ontario,
Canada
Tel: 905-673-0699
Fax: 905-673-6509
Australia - Sydney
Tel: 61-2-9868-6733
Fax: 61-2-9868-6755
China - Beijing
Tel: 86-10-8569-7000
Fax: 86-10-8528-2104
China - Chengdu
Tel: 86-28-8665-5511
Fax: 86-28-8665-7889
China - Chongqing
Tel: 86-23-8980-9588
Fax: 86-23-8980-9500
Korea - Daegu
Tel: 82-53-744-4301
Fax: 82-53-744-4302
China - Hangzhou
Tel: 86-571-2819-3187
Fax: 86-571-2819-3189
Korea - Seoul
Tel: 82-2-554-7200
Fax: 82-2-558-5932 or
82-2-558-5934
China - Hong Kong SAR
Tel: 852-2943-5100
Fax: 852-2401-3431
Malaysia - Kuala Lumpur
Tel: 60-3-6201-9857
Fax: 60-3-6201-9859
China - Nanjing
Tel: 86-25-8473-2460
Fax: 86-25-8473-2470
Malaysia - Penang
Tel: 60-4-227-8870
Fax: 60-4-227-4068
China - Qingdao
Tel: 86-532-8502-7355
Fax: 86-532-8502-7205
Philippines - Manila
Tel: 63-2-634-9065
Fax: 63-2-634-9069
China - Shanghai
Tel: 86-21-5407-5533
Fax: 86-21-5407-5066
Singapore
Tel: 65-6334-8870
Fax: 65-6334-8850
China - Shenyang
Tel: 86-24-2334-2829
Fax: 86-24-2334-2393
Taiwan - Hsin Chu
Tel: 886-3-5778-366
Fax: 886-3-5770-955
China - Shenzhen
Tel: 86-755-8864-2200
Fax: 86-755-8203-1760
Taiwan - Kaohsiung
Tel: 886-7-213-7828
Fax: 886-7-330-9305
China - Wuhan
Tel: 86-27-5980-5300
Fax: 86-27-5980-5118
Taiwan - Taipei
Tel: 886-2-2508-8600
Fax: 886-2-2508-0102
China - Xian
Tel: 86-29-8833-7252
Fax: 86-29-8833-7256
Thailand - Bangkok
Tel: 66-2-694-1351
Fax: 66-2-694-1350
Italy - Milan
Tel: 39-0331-742611
Fax: 39-0331-466781
Netherlands - Drunen
Tel: 31-416-690399
Fax: 31-416-690340
Spain - Madrid
Tel: 34-91-708-08-90
Fax: 34-91-708-08-91
UK - Wokingham
Tel: 44-118-921-5869
Fax: 44-118-921-5820
China - Xiamen
Tel: 86-592-2388138
Fax: 86-592-2388130
China - Zhuhai
Tel: 86-756-3210040
Fax: 86-756-3210049
DS93073A-page 12
Japan - Tokyo
Tel: 81-3-6880- 3770
Fax: 81-3-6880-3771
11/29/12
 2013 Microchip Technology Inc.