UM10503
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2012. All rights reserved.
User manual
Rev. 1.3 — 6 July 2012
1039 of 1269
NXP Semiconductors
UM10503
Chapter 41: LPC43xx I2S interface
41.6.9 I2S Transmit Clock Rate register
The MCLK rate for the I2S transmitter is determined by the values in the TXRATE register.
The required TXRATE setting depends on the desired audio sample rate, the format
(stereo/mono) used, and the data size.
The transmitter MCLK rate is generated using a fractional rate generator, dividing down
the frequency of PCLK = CLK_APB1_I2S. Values of the numerator (X) and the
denominator (Y) must be chosen to produce a frequency twice that desired for the
transmitter MCLK, which must be an integer multiple of the transmitter bit clock rate.
Fractional rate generators have some aspects that the user should be aware of when
choosing settings. These are discussed in
. The equation for the
fractional rate generator is:
I2S_TX_MCLK = PCLK * (X/Y) /2
Note: If the value of X or Y is 0, then no clock is generated. Also, the value of Y must be
greater than or equal to X.
41.6.9.1 Notes on fractional rate generators
A fractional rate generator can introduce output jitter with some divide settings. This is
because the fractional rate generator is a fully digital function, so the output clock
transitions are synchronous with the source clock, whereas a theoretical perfect fractional
rate may have edges that are not related to the source clock. Therefore the output jitter
will not be greater than plus or minus one source clock between consecutive clock edges.
For example, if X = 0x07 and Y = 0x11, the fractional rate generator will output 7 clocks for
every 17 (11 hex) input clocks, distributed as evenly as it can. In this example, there is no
way to distribute the output clocks in a perfectly even fashion, so some clocks will be
longer than others. The output is divided by 2 in order to square it up, which also helps
15:12
-
Reserved, user software should not write ones to reserved bits. The value read from
a reserved bit is not defined.
-
19:16
TX_DEPTH_IRQ
Set the FIFO level on which to create an irq request.
0
31:20
-
Reserved, user software should not write ones to reserved bits. The value read from
a reserved bit is not defined.
-
Table 905. I2S Interrupt Request Control register (IRQ - address 0x400A 201C (I2S0) and 0x400A 301C (I2S1)) bit
description
Bit
Symbol
Description
Reset
value
Table 906. I2S Transmit Clock Rate register (TXRATE - address 0x400A 2020 (I2S0) and 0x400A 3020 (I2S1)) bit
description
Bit
Symbol
Description
Reset
value
7:0
Y_DIVIDER
I2S transmit MCLK rate denominator. This value is used to divide PCLK to produce the
transmit MCLK. Eight bits of fractional divide supports a wide range of possibilities. A value
of 0 stops the clock.
0
15:8
X_DIVIDER
I2S transmit MCLK rate numerator. This value is used to multiply PCLK by to produce the
transmit MCLK. A value of 0 stops the clock. Eight bits of fractional divide supports a wide
range of possibilities. Note: the resulting ratio X/Y is divided by 2.
0
31:16
-
Reserved, user software should not write ones to reserved bits. The value read from a
reserved bit is not defined.
-