Data Sheet ADAU1463/ADAU1467
Rev. A | Page 37 of 207
Slave Control Port Overview
To program the DSP and configure the control registers, a slave
port is available that can communicate using either the I2C or
SPI protocols. Any external device that controls the ADAU1463/
ADAU1467, including a hardware interface used with SigmaStudio
for development or a microcontroller in a large running system,
uses the slave control port to communicate with the DSP. This
port is unrelated to the master communications port that also uses
the I2C or SPI protocols. The master port enables applications
without an external microcontroller and can read from an
external EEPROM to self boot and control external ICs.
The slave communications port defaults to I2C mode; however, it
can be put into SPI mode by toggling SS (SS/ADDR0), the slave
select pin, from high to low three times. The slave select pin
must be held low for at least one master clock period (that is,
one period of the clock on the XTALIN/MCLK input pin). Only
the PLL configuration registers (0xF000 to 0xF004) are accessible
before the PLL locks. For this reason, always write to the PLL
registers first after the chip powers up. After the PLL locks, the
remaining registers and the RAM become accessible. See the
System Initialization Sequence section for more information.
SLAVE CONTROL PORT ADDRESSING
Unlike earlier SigmaDSP processors, the ADAU1463/ADAU1467
slave control port 16-bit addressing cannot provide direct access
to the total amount of memory available to the DSP core on its
wider internal busses. Full read/write access to all memory and
addressable registers is possible, but it must be accessed as two
pages of memory in the slave control port address space. Page 0
is referred to as lower memory and Page 1 as upper memory.
The single-bit register SECONDPAGE_ENABLE (0xF899)
selects the active page.
Within a page, all addresses are accessible using both single
address mode and burst mode. The first byte (Byte 0) of a
control port write contains the 7-bit chip address plus the R/W
bit. The next two bytes (Byte 1 and Byte 2) together form the
subaddress of the register location within the memory maps of
the ADAU1463/ADAU1467. This subaddress must be two bytes
long because the memory locations within the devices are
directly addressable, and their sizes exceed the range of single
byte addressing. The third byte to the end of the sequence
contain the data, such as control port data, program data, or
parameter data. The number of bytes written per word depends
on the type of data. For more information, see the Burst Mode
Writing and Reading section. The ADAU1463/ADAU1467 must
have a valid master clock to write to the slave control port, with
the exception of the PLL configuration registers, 0xF000 to 0xF004.
If large blocks of data must be downloaded, halt the output of
the DSP core (using Register 0xF400, hibernate), load new data,
and then restart the device (using Register 0xF402, START_
CORE). This process is most common during the booting
sequence at startup or when loading a new program into RAM
because the ADAU1463/ADAU1467 have several mechanisms
for updating signal processing parameters in real time without
causing pops or clicks.
When updating a signal processing parameter while the DSP
core is running, use the software safeload function. This
function allows atomic writes to memory and prevents updates
to parameters across the boundary of an audio frame, which
can lead to an audio artifact such as a click or pop sound. For
more information, see the Software Safeload section.
The slave control port supports either I2C or SPI, but not
simultaneously. The function of each pin is described in
Table 25 for the two modes.
Burst Mode Writing and Reading
Burst write and read modes are available for convenience when
writing large amounts of data to contiguous registers. In these
modes, the chip and memory addresses are written once, and
then a large amount of data can follow uninterrupted. The sub-
addresses are automatically incremented at the word boundaries.
This increment happens automatically after a single word write
or read unless a stop condition is encountered (I2C mode) or the
slave select is disabled and brought high (SPI mode). A burst write
starts like a single word write, but, following the first data-word,
the data-word for the next address can be written immediately
without sending its 2-byte address. The control registers in the
ADAU1463/ADAU1467 are two bytes wide, and the memories
are four bytes wide. The auto-increment feature knows the word
length at each subaddress; therefore, it is not necessary to manually
specify the subaddress for each address in a burst write.
The subaddresses are automatically incremented by one address,
following each read or write of a data-word, regardless of whether
there is a valid register or RAM word at that address.
SLAVE PORT TO DSP CORE ADDRESS MAPPING
The DSP core architecture use of three separate areas of memory,
program memory (PM), DM0, and DM1. To maintain backward
compatibility with the ADAU1450/ADAU1451/ADAU1452
family of processors, slave port access to this memory is divided
into two pages, Page 1 and Page 2. The single-bit register
SECONDPAGE_ENABLE (0xF899) selects the active page.
Figure 81 shows the mapping between slave port addresses and
the native address space of the core for ADAU1463. Figure 82
shows the mapping between slave port addresses and the native
address space of the core for ADAU1467.
Note that the lower and upper halves of program memory, DM0
and DM1, map to the same slave control port addresses. The
value of register SECONDPAGE_ENABLE (Address 0xF899)
determines whether a slave control port address points to the
lower or upper areas of PM, DM0, and DM1.
Although the slave port accesses memory in pages, the
addressing is contiguous and seamless to the DSP core.