WM8581
Product Preview
w
PP Rev 1.0 March 2006
20
2-WIRE SERIAL CONTROL MODE WITH READ-BACK
The WM8581 supports software control via a 2-wire (2-wire write, 3-wire read) serial bus. Many
devices can be controlled by the same bus, and each device has a unique 7-bit address (see Table
10).
The controller indicates the start of data transfer with a high to low transition on SDIN while SCLK
remains high. This indicates that a device address and data will follow. All devices on the 2-wire bus
respond to the start condition and shift in the next eight bits on SDIN (7-bit a Read/Write bit,
MSB first). If the device address received matches the address of the WM8581, the WM8581
responds by pulling SDIN low on the next clock pulse (ACK). If the address is not recognised, the
WM8581 returns to the idle condition and wait for a new start condition and valid address.
Once the WM8581 has acknowledged a correct address, the controller sends the first byte of control
data (B15 to B8, i.e. the WM8581 register address plus the first bit of register data). The WM8581
then acknowledges the first data byte by pulling SDIN low for one clock pulse. The controller then
sends the second byte of control data (B7 to B0, i.e. the remaining 8 bits of register data), and the
WM8581 acknowledges again by pulling SDIN low.
The transfer of data is complete when there is a low to high transition on SDIN while SCLK is high.
After receiving a complete address and data sequence the WM8581 returns to the idle state and
waits for another start condition. If a start or stop condition is detected out of sequence at any point
during data transfer (i.e. SDIN changes while SCLK is high), the device jumps to the idle condition.
Figure 9 2-Wire Serial Control Interface
The WM8581 has two possible device addresses, which can be selected using the CSB pin.
CSB STATE
DEVICE ADDRESS IN 2-
WIRE MODE
Low or Unconnected
0011010
High 0011011
Table 10 2-Wire MPU Interface Address Selection
SDIN
SCLK
address
wr
ack
B15-B8
ack
B7-B0
ack
device address
[wr=0]
in
STOP
START
out
out
out
in
in
register
address and
1st data bit
remaining data
bits