THEORY OF OPERATION
The AD5235 digital potentiometer is designed to operate as a
true variable resistor. The resistor wiper position is determined
by the RDAC register contents. The RDAC register acts as a
scratchpad register, allowing unlimited changes of resistance
settings. The scratchpad register can be programmed with any
position setting using the standard SPI serial interface by loading
the 24-bit data-word. In the format of the data-word, the first four
bits are commands, the following four bits are addresses, and the
last 16 bits are data. When a specified value is set, this value can
be stored in a corresponding EEMEM register. During subsequent
power-ups, the wiper setting is automatically loaded to that value.
Storing data to the EEMEM register takes about 15 ms and
consumes approximately 2 mA. During this time, the shift
register is locked, preventing any changes from taking place.
The RDY pin pulses low to indicate the completion of this
EEMEM storage. There are also 13 addresses with two bytes
each of user-defined data that can be stored in the EEMEM
register from Address 2 to Address 14.
The following instructions facilitate the programming needs
of the user (see Table 7 for details):
0. Do nothing.
1. Restore EEMEM content to RDAC.
2. Store RDAC setting to EEMEM.
3. Store RDAC setting or user data to EEMEM.
4. Decrement by 6 dB.
5. Decrement all by 6 dB.
6. Decrement by one step.
7. Decrement all by one step.
8. Reset EEMEM content to RDAC.
9. Read EEMEM content from SDO.
10. Read RDAC wiper setting from SDO.
11. Write data to RDAC.
12. Increment by 6 dB.
13. Increment all by 6 dB.
14. Increment by one step.
15. Increment all by one step.
Table 14 to Table 20 provide programming examples that use
some of these commands.
SCRATCHPAD AND EEMEM PROGRAMMING
The scratchpad RDAC register directly controls the position of
the digital potentiometer wiper. For example, when the scratchpad
register is loaded with all 0s, the wiper is connected to Terminal B
of the variable resistor. The scratchpad register is a standard
logic register with no restriction on the number of changes
allowed, but the EEMEM registers have a program erase/write
The basic mode of setting the variable resistor wiper position
(programming the scratchpad register) is accomplished by
loading the serial data input register with Instruction 11 (0xB),
Address 0, and the desired wiper position data. When the proper
wiper position is determined, the user can load the serial data
input register with Instruction 2 (0x2), which stores the wiper
position data in the EEMEM register. After 15 ms, the wiper
position is permanently stored in nonvolatile memory.
Table 5 provides a programming example listing the sequence
of the serial data input (SDI) words with the serial data output
appearing at the SDO pin in hexadecimal format.
Table 5. Write and Store RDAC Settings to EEMEM Registers
0xB00100 0xXXXXXX Writes data 0x100 to the RDAC1 register,
Wiper W1 moves to 1/4 full-scale position.
0x20XXXX 0xB00100 Stores RDAC1 register content into the
0xB10200 0x20XXXX Writes Data 0x200 to the RDAC2 register,
Wiper W2 moves to 1/2 full-scale position.
0x21XXXX 0xB10200 Stores RDAC2 register contents into the
At system power-on, the scratchpad register is automatically
refreshed with the value previously stored in the corresponding
EEMEM register. The factory-preset EEMEM value is midscale.
The scratchpad register can also be refreshed with the contents
of the EEMEM register in three different ways. First, executing
Instruction 1 (0x1) restores the corresponding EEMEM value.
Second, executing Instruction 8 (0x8) resets the EEMEM values
of both channels. Finally, pulsing the PR pin refreshes both
EEMEM settings. Operating the hardware control PR function
requires a complete pulse signal. When PR goes low, the internal
logic sets the wiper at midscale. The EEMEM value is not
loaded until PR returns high.
Rev. E | Page 16 of 32