WM8961
Pre-Production
The write sequencer control registers are explained in Table 51.
REGISTER
BIT
LABEL
DEFAULT
DESCRIPTION
ADDRESS
Write Sequencer Enable.
R87 (57h)
5
WSEQ_ENA
0
0: off
1: on
Write Sequencer 1
Sets the current location in the Write Sequencer Memory.
Writes to the following write sequencer registers will affect
this memory location.
4:0
8
WSEQ_WRITE_
INDEX[4:0]
0_0000
0
Writes to the EOS field in the current write sequencer
R88 (58h)
WSEQ_EOS
memory
location
(specified
by
last
write
to
Write Sequencer 2
WSEQ_WRITE_INDEX).
0 – not end of current sequence
1 – end of current sequence. The write sequencer will stop
after this write has been completed.
This data will be written into the Register Address field of the
current write sequencer memory location (specified by
WSEQ_WRITE_INDEX).
7:0
7:0
WSEQ_ADDR[7:0]
WSEQ_DATA[7:0]
0000_0000
0000_0000
The Data which is to be used to overwrite the current
register bits.
R89 (59h)
Write Sequencer
3
Only bits [WSEQ_DATA_WIDTH:0] of this register are used.
The remaining bits should be set to 0.
Quit the current sequence and return control of the device
back to the serial control interface
R90 (5Ah) Write
Sequencer
8
7
WSEQ_ABORT
WSEQ_START
0
0
4
Starts the write sequencer. The write sequencer will start
writing
the
contents
of
its
memory
from
WSEQ_START_INDEX until it reaches an end-of-sequence
flag.
Note, this bit will be reset by the Write Sequencer state
machine at the end of each sequence
Sequence Start Index. Gives the location in memory that
the Write Sequencer will start executing from.
5:0
6:4
WSEQ_START_
INDEX[5:0]
00_0000
00_0000 -> 01_1111 : locations in RAM portion of memory
10_0000 -> 11_0000 : location in ROM portion of memory.
11_0001 -> 11_1111 : reserved.
Sets the highest bit of the bit slice that the write sequencer
will write to. Total width = value of this register + 1. For
example:
R91 (5Bh) Write
Sequencer 5
WSEQ_DATA_
WIDTH[2:0]
000
000: Highest bit is 0. Data width 1
001: Highest bit is 1. Data width 2
…
111: Highest bit is 7. Data width 8.
Selects the bit in the register for WSEQ_DATA to replace.
For example, if:
3:0
WSEQ_DATA_
START[3:0]
0000
WSEQ_ADDR = 2Eh
WSEQ_DATA_WIDTH = 3 WSEQ_DATA_START = 5,
In this example the write sequencer (when the sequence is
activated) will replace bits [7:5] of register 2Eh with the data
supplied in WSEQ_DATA[2:0].
PP, August 2009, Rev 3.1
w
69