English
Language : 

EP7209 Datasheet, PDF (51/128 Pages) Cirrus Logic – Ultra-Low-Power Audio Decoder System-on-Chip
EP7209
5. REGISTER DESCRIPTIONS
5.1 Internal Registers
Table 25 shows the Internal Registers of the
EP7209 that are compatible with the CL-PS7111
when the CPU is configured to a Little Endian
Memory System. Table 26 shows the differences
that occur when the CPU is configured to a Big En-
dian Memory System for byte-wide access to Ports
A, B, and D. All the internal registers are inherently
Little Endian (i.e., the least significant byte is at-
tached to bits 7 to 0 of the data bus). Hence, the sys-
tem Endianness affects the addresses required for
byte accesses to the internal registers, resulting in a
reversal of the byte address required to read/write a
particular byte within a register. Note that the inter-
nal registers have been split into two groups – the
“old” and the “new”. The old ones are the same as
that used in CL-PS7111 and are there for compati-
bility. The new registers are for accessing the addi-
tional functionality of the DAI interface and the
LED flasher.
There is no effect on the register addresses for word
accesses. Bits A[0:1] of the internal address bus are
only decoded for Ports A, B, and D (to allow
read/write to individual ports). For all other regis-
ters, bits A[0:1] are not decoded, so that byte reads
will return the whole register contents onto the
EP7209’s internal bus, from where the appropriate
byte (according to the Endianness) will be read by
the CPU. To avoid the additional complexity, it is
preferable to perform all internal register accesses
as word operations, except for ports A to D which
are explicitly designed to operate with byte access-
es, as well as with word accesses.
An 8 k segment of memory in the range
0x8000.0000 to 0x8000.3FFF is reserved for inter-
nal use in the EP7209. Accesses in this range will
not cause any external bus activity unless debug
mode is enabled. Writes to bits that are not explic-
itly defined in the internal area are legal and will
have no effect. Reads from bits not explicitly de-
fined in the internal area are legal but will read un-
defined values. All the internal addresses should
only be accessed as 32-bit words and are always on
a word boundary, except for the PIO port registers,
which can be accessed as bytes. Address bits in the
range A[0:5] are not decoded (except for Ports
A–D), this means each internal register is valid for
64 bytes (i.e., the SYSFLG1 register appears at lo-
cations 0x8000.0140 to 0x8000.017C). There are
some gaps in the register map for backward com-
patibility reasons, but registers located next to a
gap are still only decoded for 64 bytes.
The GPIO port registers are byte-wide and can be
accessed as a word but not as a half-word. These
registers additionally decode A[0:1]. All addresses
are in hexadecimal notation.
NOTE:
All byte-wide registers should be accessed
as words (except Port A to Port D registers,
which are designed to work in both word and
byte modes).
All registers bit alignment starts from the
LSB of the register (i.e., they are all right shift
justified).
The registers which interact with the 32 kHz
clock or which could change during read-
back (i.e., RTC data registers, SYSFLG1
register (lower 6-bits only), the TC1D and
TC2D data registers, port registers, and
interrupt status registers), should be read
twice and compared to ensure that a stable
value has been read back.
All internal registers in the EP7209 are reset
(cleared to zero) by a system reset (i.e., nPOR,
nRESET, or nPWRFL signals becoming active),
and the Real Time Clock data register (RTCDR)
and match register (RTCMR), which are only reset
by nPOR becoming active. This ensures that the
system time preserved through a user reset or pow-
er fail condition. In the following register descrip-
tions, Little Endian is assumed.
DS453PP2
51