10
FN8084.2
August 13, 2015
Communicating with the ISL95311
There are 3 register addresses in the ISL95311, of which two
can be used. Address 00h and address 02h are used to
control the device. Address 01h is reserved and should not
be used. Address 00h contains the nonvolatile Initial Value
Register (IVR), and the volatile Wiper Register (WR).
Address 02h contains only a volatile word and is used as a
pointer to either the IVR or WR. See Table 1.
Register Descriptions: Access Control
The Access Control Register (ACR) is volatile and is at
address 02h. It is 8-bits, and only the MSB is significant, all
other bits should be zero (0). The ACR controls which word
is accessed at register 00h as follows:
00h = Nonvolatile IVR
80h = Volatile WR
All other bits of the ACR should be written to as zeros. Only
the MSB can be either 0 or 1. Power-up default for this
address is 00h.
Register Description: IVR and WR
The ISL95311 has a single potentiometer. The wiper of the
potentiometer is controlled directly by the WR. Writes and
reads can be made directly to this register to control and
monitor the wiper position without any nonvolatile memory
changes. This is done by setting address 02h to data 80h,
then writing the data.
The nonvolatile IVR stores the power-up value of the wiper.
On power-up, the contents of the IVR are transferred to the
WR.
To write to the IVR, first address 02h is set to data 00h, then
the data is written. Writing a new value to the IVR register
will set a new power-up position for the wiper. Also, writing to
this register will load the same value into the WR as the IVR.
So, if a new value is loaded into the IVR, not only will the
non-volatile IVR change, but the WR will also contain the
same value after the write, and the wiper position will
change. Reading from the IVR will not change the WR, if its
contents are different.
Example 1
WRITING A NEW VALUE (77H) TO THE IVR:
(Note that the WR will also reflect this new value since both registers get written to at the same time)
Example 2
READING FROM THE WR:
Notes: A = acknowledge, x = data bit read
Write to ACR first
01010000A00000010A00000000A
Then, write to IVR
01010000A00000000A01110111A
Write to the ACR first (to index the WR)
01010000A00000010A00000010A
Then, Set the WR address
01010000A00000000A
Read from the WR
01010001Axxxxxxx
x
ISL95311