\n

I2S

Peripheral Memory Blocks

address_offset : 0x0 Bytes (0x0)
size : 0x1E00 byte (0x0)
mem_usage : registers
protection : not protected

Registers

ID

CFG1

CFG2

STAT

DIV

SECCHANNEL[0]-PCFG1

SECCHANNEL[0]-PCFG2

SECCHANNEL[0]-PSTAT

SECCHANNEL[1]-SECCHANNEL[0]-PCFG1

SECCHANNEL[1]-SECCHANNEL[0]-PCFG2

SECCHANNEL[1]-SECCHANNEL[0]-PSTAT

SECCHANNEL[2]-SECCHANNEL[1]-SECCHANNEL[0]-PCFG1

SECCHANNEL[2]-SECCHANNEL[1]-SECCHANNEL[0]-PCFG2

SECCHANNEL[2]-SECCHANNEL[1]-SECCHANNEL[0]-PSTAT

FIFOCFG

FIFOSTAT

FIFOTRIG

FIFOINTENSET

FIFOINTENCLR

FIFOINTSTAT

FIFOWR

FIFOWR48H

FIFORD

FIFORD48H

FIFORDNOPOP

FIFORD48HNOPOP


ID

I2S Module identification
address_offset : 0x1DFC Bytes (0x0)
size : 32 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0

ID ID read-only 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Aperture Minor_Rev Major_Rev ID

Aperture : Aperture: encoded as (aperture size/4K) -1, so 0x00 means a 4K aperture.
bits : 0 - 7 (8 bit)
access : read-only

Minor_Rev : Minor revision of module implementation, starting at 0.
bits : 8 - 11 (4 bit)
access : read-only

Major_Rev : Major revision of module implementation, starting at 0.
bits : 12 - 15 (4 bit)
access : read-only

ID : Unique module identifier for this IP block.
bits : 16 - 31 (16 bit)
access : read-only


CFG1

Configuration register 1 for the primary channel pair.
address_offset : 0xC00 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CFG1 CFG1 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MAINENABLE DATAPAUSE PAIRCOUNT MSTSLVCFG MODE RIGHTLOW LEFTJUST ONECHANNEL PDMDATA SCK_POL WS_POL DATALEN

MAINENABLE : Main enable for I 2S function in this Flexcomm
bits : 0 - 0 (1 bit)
access : read-write

Enumeration:

0 : DISABLED

All I 2S channel pairs in this Flexcomm are disabled and the internal state machines, counters, and flags are reset. No other channel pairs can be enabled.

0x1 : ENABLED

This I 2S channel pair is enabled. Other channel pairs in this Flexcomm may be enabled in their individual PAIRENABLE bits.

End of enumeration elements list.

DATAPAUSE : Data flow Pause. Allows pausing data flow between the I2S serializer/deserializer and the FIFO. This could be done in order to change streams, or while restarting after a data underflow or overflow. When paused, FIFO operations can be done without corrupting data that is in the process of being sent or received. Once a data pause has been requested, the interface may need to complete sending data that was in progress before interrupting the flow of data. Software must check that the pause is actually in effect before taking action. This is done by monitoring the DATAPAUSED flag in the STAT register. When DATAPAUSE is cleared, data transfer will resume at the beginning of the next frame.
bits : 1 - 1 (1 bit)
access : read-write

Enumeration:

0 : NORMAL

Normal operation, or resuming normal operation at the next frame if the I2S has already been paused.

0x1 : PAUSE

A pause in the data flow is being requested. It is in effect when DATAPAUSED in STAT = 1.

End of enumeration elements list.

PAIRCOUNT : Provides the number of I2S channel pairs in this Flexcomm This is a read-only field whose value may be different in other Flexcomms. 00 = there is 1 I2S channel pair in this Flexcomm. 01 = there are 2 I2S channel pairs in this Flexcomm. 10 = there are 3 I2S channel pairs in this Flexcomm. 11 = there are 4 I2S channel pairs in this Flexcomm.
bits : 2 - 3 (2 bit)
access : read-write

Enumeration:

0 : PAIRS_1

1 I2S channel pairs in this flexcomm

0x1 : PAIRS_2

2 I2S channel pairs in this flexcomm

0x2 : PAIRS_3

3 I2S channel pairs in this flexcomm

0x3 : PAIRS_4

4 I2S channel pairs in this flexcomm

End of enumeration elements list.

MSTSLVCFG : Master / slave configuration selection, determining how SCK and WS are used by all channel pairs in this Flexcomm.
bits : 4 - 5 (2 bit)
access : read-write

Enumeration:

0 : NORMAL_SLAVE_MODE

Normal slave mode, the default mode. SCK and WS are received from a master and used to transmit or receive data.

0x1 : WS_SYNC_MASTER

WS synchronized master. WS is received from another master and used to synchronize the generation of SCK, when divided from the Flexcomm function clock.

0x2 : MASTER_USING_SCK

Master using an existing SCK. SCK is received and used directly to generate WS, as well as transmitting or receiving data.

0x3 : NORMAL_MASTER

Normal master mode. SCK and WS are generated so they can be sent to one or more slave devices.

End of enumeration elements list.

MODE : Selects the basic I2S operating mode. Other configurations modify this to obtain all supported cases. See Formats and modes for examples.
bits : 6 - 7 (2 bit)
access : read-write

Enumeration:

0 : CLASSIC_MODE

I2S mode a.k.a. 'classic' mode. WS has a 50% duty cycle, with (for each enabled channel pair) one piece of left channel data occurring during the first phase, and one pieces of right channel data occurring during the second phase. In this mode, the data region begins one clock after the leading WS edge for the frame. For a 50% WS duty cycle, FRAMELEN must define an even number of I2S clocks for the frame. If FRAMELEN defines an odd number of clocks per frame, the extra clock will occur on the right.

0x1 : DSP_MODE_WS_50_DUTYCYCLE

DSP mode where WS has a 50% duty cycle. See remark for mode 0.

0x2 : DSP_MODE_WS_1_CLOCK

DSP mode where WS has a one clock long pulse at the beginning of each data frame.

0x3 : DSP_MODE_WS_1_DATA

DSP mode where WS has a one data slot long pulse at the beginning of each data frame.

End of enumeration elements list.

RIGHTLOW : Right channel data is in the Low portion of FIFO data. Essentially, this swaps left and right channel data as it is transferred to or from the FIFO. This bit is not used if the data width is greater than 24 bits or if PDMDATA = 1. Note that if the ONECHANNEL field (bit 10 of this register) = 1, the one channel to be used is the nominally the left channel. POSITION can still place that data in the frame where right channel data is normally located. if all enabled channel pairs have ONECHANNEL = 1, then RIGHTLOW = 1 is not allowed.
bits : 8 - 8 (1 bit)
access : read-write

Enumeration:

0 : RIGHT_HIGH

The right channel is taken from the high part of the FIFO data. For example, when data is 16 bits, FIFO bits 31:16 are used for the right channel.

0x1 : RIGHT_LOW

The right channel is taken from the low part of the FIFO data. For example, when data is 16 bits, FIFO bits 15:0 are used for the right channel.

End of enumeration elements list.

LEFTJUST : Left Justify data.
bits : 9 - 9 (1 bit)
access : read-write

Enumeration:

0 : RIGHT_JUSTIFIED

Data is transferred between the FIFO and the I2S serializer/deserializer right justified, i.e. starting from bit 0 and continuing to the position defined by DATALEN. This would correspond to right justified data in the stream on the data bus.

0x1 : LEFT_JUSTIFIED

Data is transferred between the FIFO and the I2S serializer/deserializer left justified, i.e. starting from the MSB of the FIFO entry and continuing for the number of bits defined by DATALEN. This would correspond to left justified data in the stream on the data bus.

End of enumeration elements list.

ONECHANNEL : Single channel mode. Applies to both transmit and receive. This configuration bit applies only to the first I2S channel pair. Other channel pairs may select this mode independently in their separate CFG1 registers.
bits : 10 - 10 (1 bit)
access : read-write

Enumeration:

0 : DUAL_CHANNEL

I2S data for this channel pair is treated as left and right channels.

0x1 : SINGLE_CHANNEL

I2S data for this channel pair is treated as a single channel, functionally the left channel for this pair. In mode 0 only, the right side of the frame begins at POSITION = 0x100. This is because mode 0 makes a clear distinction between the left and right sides of the frame. When ONECHANNEL = 1, the single channel of data may be placed on the right by setting POSITION to 0x100 + the data position within the right side (e.g. 0x108 would place data starting at the 8th clock after the middle of the frame). In other modes, data for the single channel of data is placed at the clock defined by POSITION.

End of enumeration elements list.

PDMDATA : PDM Data selection. This bit controls the data source for I2S transmit, and cannot be set in Rx mode. This bit only has an effect if the device the Flexcomm resides in includes a D-Mic subsystem. For the LPC5411x, this bit applies only to Flexcomm 7.
bits : 11 - 11 (1 bit)
access : read-write

Enumeration:

0 : NORMAL

Normal operation, data is transferred to or from the Flexcomm FIFO.

0x1 : DMIC_SUBSYSTEM

The data source is the D-Mic subsystem. When PDMDATA = 1, only the primary channel pair can be used in this Flexcomm. If ONECHANNEL = 1, only the PDM left data is used. the WS rate must match the Fs (sample rate) of the D-Mic decimator. A rate mismatch will at some point cause the I2S to overrun or underrun.

End of enumeration elements list.

SCK_POL : SCK polarity.
bits : 12 - 12 (1 bit)
access : read-write

Enumeration:

0 : FALLING_EDGE

Data is launched on SCK falling edges and sampled on SCK rising edges (standard for I2S).

0x1 : RISING_EDGE

Data is launched on SCK rising edges and sampled on SCK falling edges.

End of enumeration elements list.

WS_POL : WS polarity.
bits : 13 - 13 (1 bit)
access : read-write

Enumeration:

0 : NOT_INVERTED

Data frames begin at a falling edge of WS (standard for classic I2S).

0x1 : INVERTED

WS is inverted, resulting in a data frame beginning at a rising edge of WS (standard for most 'non-classic' variations of I2S).

End of enumeration elements list.

DATALEN : Data Length, minus 1 encoded, defines the number of data bits to be transmitted or received for all I2S channel pairs in this Flexcomm. Note that data is only driven to or received from SDA for the number of bits defined by DATALEN. DATALEN is also used in these ways by the I2S: Determines the size of data transfers between the FIFO and the I2S serializer/deserializer. See FIFO buffer configurations and usage In mode 1, 2, and 3, determines the location of right data following left data in the frame. In mode 3 (where WS has a one data slot long pulse at the beginning of each data frame) determines the duration of the WS pulse. Values: 0x00 to 0x02 = not supported 0x03 = data is 4 bits in length 0x04 = data is 5 bits in length 0x1F = data is 32 bits in length
bits : 16 - 20 (5 bit)
access : read-write


CFG2

Configuration register 2 for the primary channel pair.
address_offset : 0xC04 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CFG2 CFG2 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FRAMELEN POSITION

FRAMELEN : Frame Length, minus 1 encoded, defines the number of clocks and data bits in the frames that this channel pair participates in. See Frame format. 0x000 to 0x002 = not supported 0x003 = frame is 4 bits in total length 0x004 = frame is 5 bits in total length 0x1FF = frame is 512 bits in total length if FRAMELEN is an defines an odd length frame (e.g. 33 clocks) in mode 0 or 1, the extra clock appears in the right half. When MODE = 3, FRAMELEN must be larger than DATALEN in order for the WS pulse to be generated correctly.
bits : 0 - 8 (9 bit)
access : read-write

POSITION : Data Position. Defines the location within the frame of the data for this channel pair. POSITION + DATALEN must be less than FRAMELEN. See Frame format. When MODE = 0, POSITION defines the location of data in both the left phase and right phase, starting one clock after the WS edge. In other modes, POSITION defines the location of data within the entire frame. ONECHANNEL = 1 while MODE = 0 is a special case, see the description of ONECHANNEL. The combination of DATALEN and the POSITION fields of all channel pairs must be made such that the channels do not overlap within the frame. 0x000 = data begins at bit position 0 (the first bit position) within the frame or WS phase. 0x001 = data begins at bit position 1 within the frame or WS phase. 0x002 = data begins at bit position 2 within the frame or WS phase.
bits : 16 - 24 (9 bit)
access : read-write


STAT

Status register for the primary channel pair.
address_offset : 0xC08 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

STAT STAT read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BUSY SLVFRMERR LR DATAPAUSED

BUSY : Busy status for the primary channel pair. Other BUSY flags may be found in the STAT register for each channel pair.
bits : 0 - 0 (1 bit)
access : read-only

Enumeration:

0 : IDLE

The transmitter/receiver for channel pair is currently idle.

0x1 : BUSY

The transmitter/receiver for channel pair is currently processing data.

End of enumeration elements list.

SLVFRMERR : Slave Frame Error flag. This applies when at least one channel pair is operating as a slave. An error indicates that the incoming WS signal did not transition as expected due to a mismatch between FRAMELEN and the actual incoming I2S stream.
bits : 1 - 1 (1 bit)
access : write-only

Enumeration:

0 : NO_ERROR

No error has been recorded.

0x1 : ERROR

An error has been recorded for some channel pair that is operating in slave mode. ERROR is cleared by writing a 1 to this bit position.

End of enumeration elements list.

LR : Left/Right indication. This flag is considered to be a debugging aid and is not expected to be used by an I2S driver. Valid when one channel pair is busy. Indicates left or right data being processed for the currently busy channel pair.
bits : 2 - 2 (1 bit)
access : read-only

Enumeration:

0 : LEFT_CHANNEL

Left channel.

0x1 : RIGHT_CHANNEL

Right channel.

End of enumeration elements list.

DATAPAUSED : Data Paused status flag. Applies to all I2S channels
bits : 3 - 3 (1 bit)
access : read-only

Enumeration:

0 : NOT_PAUSED

Data is not currently paused. A data pause may have been requested but is not yet in force, waiting for an allowed pause point. Refer to the description of the DATAPAUSE control bit in the CFG1 register.

0x1 : PAUSED

A data pause has been requested and is now in force.

End of enumeration elements list.


DIV

Clock divider, used by all channel pairs.
address_offset : 0xC1C Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

DIV DIV read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 DIV

DIV : This field controls how this I2S block uses the Flexcomm function clock. 0x000 = The Flexcomm function clock is used directly. 0x001 = The Flexcomm function clock is divided by 2. 0x002 = The Flexcomm function clock is divided by 3. 0xFFF = The Flexcomm function clock is divided by 4,096.
bits : 0 - 11 (12 bit)
access : read-write


SECCHANNEL[0]-PCFG1

Configuration register 1 for channel pair
address_offset : 0xC20 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

SECCHANNEL[0]-PCFG1 SECCHANNEL[0]-PCFG1 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PAIRENABLE ONECHANNEL

PAIRENABLE : Enable for this channel pair..
bits : 0 - 0 (1 bit)
access : read-write

ONECHANNEL : Single channel mode.
bits : 10 - 10 (1 bit)
access : read-write


SECCHANNEL[0]-PCFG2

Configuration register 2 for channel pair
address_offset : 0xC24 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

SECCHANNEL[0]-PCFG2 SECCHANNEL[0]-PCFG2 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 POSITION

POSITION : Data Position.
bits : 16 - 24 (9 bit)
access : read-write


SECCHANNEL[0]-PSTAT

Status register for channel pair
address_offset : 0xC28 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

SECCHANNEL[0]-PSTAT SECCHANNEL[0]-PSTAT read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BUSY SLVFRMERR LR DATAPAUSED

BUSY : Busy status for this channel pair.
bits : 0 - 0 (1 bit)
access : read-write

SLVFRMERR : Save Frame Error flag.
bits : 1 - 1 (1 bit)
access : read-write

LR : Left/Right indication.
bits : 2 - 2 (1 bit)
access : read-write

DATAPAUSED : Data Paused status flag.
bits : 3 - 3 (1 bit)
access : read-only


SECCHANNEL[1]-SECCHANNEL[0]-PCFG1

Configuration register 1 for channel pair
address_offset : 0xC40 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

SECCHANNEL[1]-SECCHANNEL[0]-PCFG1 SECCHANNEL[1]-SECCHANNEL[0]-PCFG1 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PAIRENABLE ONECHANNEL

PAIRENABLE : Enable for this channel pair..
bits : 0 - 0 (1 bit)
access : read-write

ONECHANNEL : Single channel mode.
bits : 10 - 10 (1 bit)
access : read-write


SECCHANNEL[1]-SECCHANNEL[0]-PCFG2

Configuration register 2 for channel pair
address_offset : 0xC44 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

SECCHANNEL[1]-SECCHANNEL[0]-PCFG2 SECCHANNEL[1]-SECCHANNEL[0]-PCFG2 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 POSITION

POSITION : Data Position.
bits : 16 - 24 (9 bit)
access : read-write


SECCHANNEL[1]-SECCHANNEL[0]-PSTAT

Status register for channel pair
address_offset : 0xC48 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

SECCHANNEL[1]-SECCHANNEL[0]-PSTAT SECCHANNEL[1]-SECCHANNEL[0]-PSTAT read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BUSY SLVFRMERR LR DATAPAUSED

BUSY : Busy status for this channel pair.
bits : 0 - 0 (1 bit)
access : read-write

SLVFRMERR : Save Frame Error flag.
bits : 1 - 1 (1 bit)
access : read-write

LR : Left/Right indication.
bits : 2 - 2 (1 bit)
access : read-write

DATAPAUSED : Data Paused status flag.
bits : 3 - 3 (1 bit)
access : read-only


SECCHANNEL[2]-SECCHANNEL[1]-SECCHANNEL[0]-PCFG1

Configuration register 1 for channel pair
address_offset : 0xC80 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

SECCHANNEL[2]-SECCHANNEL[1]-SECCHANNEL[0]-PCFG1 SECCHANNEL[2]-SECCHANNEL[1]-SECCHANNEL[0]-PCFG1 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PAIRENABLE ONECHANNEL

PAIRENABLE : Enable for this channel pair..
bits : 0 - 0 (1 bit)
access : read-write

ONECHANNEL : Single channel mode.
bits : 10 - 10 (1 bit)
access : read-write


SECCHANNEL[2]-SECCHANNEL[1]-SECCHANNEL[0]-PCFG2

Configuration register 2 for channel pair
address_offset : 0xC84 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

SECCHANNEL[2]-SECCHANNEL[1]-SECCHANNEL[0]-PCFG2 SECCHANNEL[2]-SECCHANNEL[1]-SECCHANNEL[0]-PCFG2 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 POSITION

POSITION : Data Position.
bits : 16 - 24 (9 bit)
access : read-write


SECCHANNEL[2]-SECCHANNEL[1]-SECCHANNEL[0]-PSTAT

Status register for channel pair
address_offset : 0xC88 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

SECCHANNEL[2]-SECCHANNEL[1]-SECCHANNEL[0]-PSTAT SECCHANNEL[2]-SECCHANNEL[1]-SECCHANNEL[0]-PSTAT read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BUSY SLVFRMERR LR DATAPAUSED

BUSY : Busy status for this channel pair.
bits : 0 - 0 (1 bit)
access : read-write

SLVFRMERR : Save Frame Error flag.
bits : 1 - 1 (1 bit)
access : read-write

LR : Left/Right indication.
bits : 2 - 2 (1 bit)
access : read-write

DATAPAUSED : Data Paused status flag.
bits : 3 - 3 (1 bit)
access : read-only


FIFOCFG

FIFO configuration and enable register.
address_offset : 0xE00 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

FIFOCFG FIFOCFG read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ENABLETX ENABLERX TXI2SE0 PACK48 SIZE DMATX DMARX WAKETX WAKERX EMPTYTX EMPTYRX POPDBG

ENABLETX : Enable the transmit FIFO.
bits : 0 - 0 (1 bit)
access : read-write

Enumeration:

0 : DISABLED

The transmit FIFO is not enabled.

0x1 : ENABLED

The transmit FIFO is enabled.

End of enumeration elements list.

ENABLERX : Enable the receive FIFO.
bits : 1 - 1 (1 bit)
access : read-write

Enumeration:

0 : DISABLED

The receive FIFO is not enabled.

0x1 : ENABLED

The receive FIFO is enabled.

End of enumeration elements list.

TXI2SE0 : Transmit I2S empty 0. Determines the value sent by the I2S in transmit mode if the TX FIFO becomes empty. This value is sent repeatedly until the I2S is paused, the error is cleared, new data is provided, and the I2S is un-paused.
bits : 2 - 2 (1 bit)
access : read-write

Enumeration:

0 : LAST_VALUE

If the TX FIFO becomes empty, the last value is sent. This setting may be used when the data length is 24 bits or less, or when MONO = 1 for this channel pair.

0x1 : ZERO

If the TX FIFO becomes empty, 0 is sent. Use if the data length is greater than 24 bits or if zero fill is preferred.

End of enumeration elements list.

PACK48 : Packing format for 48-bit data. This relates to how data is entered into or taken from the FIFO by software or DMA.
bits : 3 - 3 (1 bit)
access : read-write

Enumeration:

0 : BIT_24

48-bit I2S FIFO entries are handled as all 24-bit values.

0x1 : BIT_32_16

48-bit I2S FIFO entries are handled as alternating 32-bit and 16-bit values.

End of enumeration elements list.

SIZE : FIFO size configuration. This is a read-only field. 0x0 = FIFO is configured as 16 entries of 8 bits. 0x1, 0x2, 0x3 = not applicable to USART.
bits : 4 - 5 (2 bit)
access : read-only

DMATX : DMA configuration for transmit.
bits : 12 - 12 (1 bit)
access : read-write

Enumeration:

0 : DISABLED

DMA is not used for the transmit function.

0x1 : ENABLED

Trigger DMA for the transmit function if the FIFO is not full. Generally, data interrupts would be disabled if DMA is enabled.

End of enumeration elements list.

DMARX : DMA configuration for receive.
bits : 13 - 13 (1 bit)
access : read-write

Enumeration:

0 : DISABLED

DMA is not used for the receive function.

0x1 : ENABLED

Trigger DMA for the receive function if the FIFO is not empty. Generally, data interrupts would be disabled if DMA is enabled.

End of enumeration elements list.

WAKETX : Wake-up for transmit FIFO level. This allows the device to be woken from reduced power modes (up to power-down, as long as the peripheral function works in that power mode) without enabling the TXLVL interrupt. Only DMA wakes up, processes data, and goes back to sleep. The CPU will remain stopped until woken by another cause, such as DMA completion. See Hardware Wake-up control register.
bits : 14 - 14 (1 bit)
access : read-write

Enumeration:

0 : DISABLED

Only enabled interrupts will wake up the device form reduced power modes.

0x1 : ENABLED

A device wake-up for DMA will occur if the transmit FIFO level reaches the value specified by TXLVL in FIFOTRIG, even when the TXLVL interrupt is not enabled.

End of enumeration elements list.

WAKERX : Wake-up for receive FIFO level. This allows the device to be woken from reduced power modes (up to power-down, as long as the peripheral function works in that power mode) without enabling the TXLVL interrupt. Only DMA wakes up, processes data, and goes back to sleep. The CPU will remain stopped until woken by another cause, such as DMA completion. See Hardware Wake-up control register.
bits : 15 - 15 (1 bit)
access : read-write

Enumeration:

0 : DISABLED

Only enabled interrupts will wake up the device form reduced power modes.

0x1 : ENABLED

A device wake-up for DMA will occur if the receive FIFO level reaches the value specified by RXLVL in FIFOTRIG, even when the RXLVL interrupt is not enabled.

End of enumeration elements list.

EMPTYTX : Empty command for the transmit FIFO. When a 1 is written to this bit, the TX FIFO is emptied.
bits : 16 - 16 (1 bit)
access : read-write

EMPTYRX : Empty command for the receive FIFO. When a 1 is written to this bit, the RX FIFO is emptied.
bits : 17 - 17 (1 bit)
access : read-write

POPDBG : Pop FIFO for debug reads.
bits : 18 - 18 (1 bit)
access : read-write

Enumeration:

0 : DO_NOT_POP

Debug reads of the FIFO do not pop the FIFO.

0x1 : POP

A debug read will cause the FIFO to pop.

End of enumeration elements list.


FIFOSTAT

FIFO status register.
address_offset : 0xE04 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

FIFOSTAT FIFOSTAT read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 TXERR RXERR PERINT TXEMPTY TXNOTFULL RXNOTEMPTY RXFULL TXLVL RXLVL

TXERR : TX FIFO error. Will be set if a transmit FIFO error occurs. This could be an overflow caused by pushing data into a full FIFO, or by an underflow if the FIFO is empty when data is needed. Cleared by writing a 1 to this bit.
bits : 0 - 0 (1 bit)
access : read-write

RXERR : RX FIFO error. Will be set if a receive FIFO overflow occurs, caused by software or DMA not emptying the FIFO fast enough. Cleared by writing a 1 to this bit.
bits : 1 - 1 (1 bit)
access : read-write

PERINT : Peripheral interrupt. When 1, this indicates that the peripheral function has asserted an interrupt. The details can be found by reading the peripheral's STAT register.
bits : 3 - 3 (1 bit)
access : read-only

TXEMPTY : Transmit FIFO empty. When 1, the transmit FIFO is empty. The peripheral may still be processing the last piece of data.
bits : 4 - 4 (1 bit)
access : read-only

TXNOTFULL : Transmit FIFO not full. When 1, the transmit FIFO is not full, so more data can be written. When 0, the transmit FIFO is full and another write would cause it to overflow.
bits : 5 - 5 (1 bit)
access : read-only

RXNOTEMPTY : Receive FIFO not empty. When 1, the receive FIFO is not empty, so data can be read. When 0, the receive FIFO is empty.
bits : 6 - 6 (1 bit)
access : read-only

RXFULL : Receive FIFO full. When 1, the receive FIFO is full. Data needs to be read out to prevent the peripheral from causing an overflow.
bits : 7 - 7 (1 bit)
access : read-only

TXLVL : Transmit FIFO current level. A 0 means the TX FIFO is currently empty, and the TXEMPTY and TXNOTFULL flags will be 1. Other values tell how much data is actually in the TX FIFO at the point where the read occurs. If the TX FIFO is full, the TXEMPTY and TXNOTFULL flags will be 0.
bits : 8 - 12 (5 bit)
access : read-only

RXLVL : Receive FIFO current level. A 0 means the RX FIFO is currently empty, and the RXFULL and RXNOTEMPTY flags will be 0. Other values tell how much data is actually in the RX FIFO at the point where the read occurs. If the RX FIFO is full, the RXFULL and RXNOTEMPTY flags will be 1.
bits : 16 - 20 (5 bit)
access : read-only


FIFOTRIG

FIFO trigger settings for interrupt and DMA request.
address_offset : 0xE08 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

FIFOTRIG FIFOTRIG read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 TXLVLENA RXLVLENA TXLVL RXLVL

TXLVLENA : Transmit FIFO level trigger enable. This trigger will become an interrupt if enabled in FIFOINTENSET, or a DMA trigger if DMATX in FIFOCFG is set.
bits : 0 - 0 (1 bit)
access : read-write

Enumeration:

0 : DISABLED

Transmit FIFO level does not generate a FIFO level trigger.

0x1 : ENABLED

An trigger will be generated if the transmit FIFO level reaches the value specified by the TXLVL field in this register.

End of enumeration elements list.

RXLVLENA : Receive FIFO level trigger enable. This trigger will become an interrupt if enabled in FIFOINTENSET, or a DMA trigger if DMARX in FIFOCFG is set.
bits : 1 - 1 (1 bit)
access : read-write

Enumeration:

0 : DISABLED

Receive FIFO level does not generate a FIFO level trigger.

0x1 : ENABLED

An trigger will be generated if the receive FIFO level reaches the value specified by the RXLVL field in this register.

End of enumeration elements list.

TXLVL : Transmit FIFO level trigger point. This field is used only when TXLVLENA = 1. If enabled to do so, the FIFO level can wake up the device just enough to perform DMA, then return to the reduced power mode. See Hardware Wake-up control register. 0 = trigger when the TX FIFO becomes empty. 1 = trigger when the TX FIFO level decreases to one entry. 15 = trigger when the TX FIFO level decreases to 15 entries (is no longer full).
bits : 8 - 11 (4 bit)
access : read-write

RXLVL : Receive FIFO level trigger point. The RX FIFO level is checked when a new piece of data is received. This field is used only when RXLVLENA = 1. If enabled to do so, the FIFO level can wake up the device just enough to perform DMA, then return to the reduced power mode. See Hardware Wake-up control register. 0 = trigger when the RX FIFO has received one entry (is no longer empty). 1 = trigger when the RX FIFO has received two entries. 15 = trigger when the RX FIFO has received 16 entries (has become full).
bits : 16 - 19 (4 bit)
access : read-write


FIFOINTENSET

FIFO interrupt enable set (enable) and read register.
address_offset : 0xE10 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

FIFOINTENSET FIFOINTENSET read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 TXERR RXERR TXLVL RXLVL

TXERR : Determines whether an interrupt occurs when a transmit error occurs, based on the TXERR flag in the FIFOSTAT register.
bits : 0 - 0 (1 bit)
access : read-write

Enumeration:

0 : DISABLED

No interrupt will be generated for a transmit error.

0x1 : ENABLED

An interrupt will be generated when a transmit error occurs.

End of enumeration elements list.

RXERR : Determines whether an interrupt occurs when a receive error occurs, based on the RXERR flag in the FIFOSTAT register.
bits : 1 - 1 (1 bit)
access : read-write

Enumeration:

0 : DISABLED

No interrupt will be generated for a receive error.

0x1 : ENABLED

An interrupt will be generated when a receive error occurs.

End of enumeration elements list.

TXLVL : Determines whether an interrupt occurs when a the transmit FIFO reaches the level specified by the TXLVL field in the FIFOTRIG register.
bits : 2 - 2 (1 bit)
access : read-write

Enumeration:

0 : DISABLED

No interrupt will be generated based on the TX FIFO level.

0x1 : ENABLED

If TXLVLENA in the FIFOTRIG register = 1, an interrupt will be generated when the TX FIFO level decreases to the level specified by TXLVL in the FIFOTRIG register.

End of enumeration elements list.

RXLVL : Determines whether an interrupt occurs when a the receive FIFO reaches the level specified by the TXLVL field in the FIFOTRIG register.
bits : 3 - 3 (1 bit)
access : read-write

Enumeration:

0 : DISABLED

No interrupt will be generated based on the RX FIFO level.

0x1 : ENABLED

If RXLVLENA in the FIFOTRIG register = 1, an interrupt will be generated when the when the RX FIFO level increases to the level specified by RXLVL in the FIFOTRIG register.

End of enumeration elements list.


FIFOINTENCLR

FIFO interrupt enable clear (disable) and read register.
address_offset : 0xE14 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

FIFOINTENCLR FIFOINTENCLR read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 TXERR RXERR TXLVL RXLVL

TXERR : Writing one clears the corresponding bits in the FIFOINTENSET register.
bits : 0 - 0 (1 bit)
access : read-write

RXERR : Writing one clears the corresponding bits in the FIFOINTENSET register.
bits : 1 - 1 (1 bit)
access : read-write

TXLVL : Writing one clears the corresponding bits in the FIFOINTENSET register.
bits : 2 - 2 (1 bit)
access : read-write

RXLVL : Writing one clears the corresponding bits in the FIFOINTENSET register.
bits : 3 - 3 (1 bit)
access : read-write


FIFOINTSTAT

FIFO interrupt status register.
address_offset : 0xE18 Bytes (0x0)
size : 32 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0

FIFOINTSTAT FIFOINTSTAT read-only 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 TXERR RXERR TXLVL RXLVL PERINT

TXERR : TX FIFO error.
bits : 0 - 0 (1 bit)
access : read-only

RXERR : RX FIFO error.
bits : 1 - 1 (1 bit)
access : read-only

TXLVL : Transmit FIFO level interrupt.
bits : 2 - 2 (1 bit)
access : read-only

RXLVL : Receive FIFO level interrupt.
bits : 3 - 3 (1 bit)
access : read-only

PERINT : Peripheral interrupt.
bits : 4 - 4 (1 bit)
access : read-only


FIFOWR

FIFO write data.
address_offset : 0xE20 Bytes (0x0)
size : 32 bit
access : write-only
reset_value : 0x0
reset_Mask : 0x0

FIFOWR FIFOWR write-only 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 TXDATA

TXDATA : Transmit data to the FIFO. The number of bits used depends on configuration details.
bits : 0 - 31 (32 bit)
access : write-only


FIFOWR48H

FIFO write data for upper data bits. May only be used if the I2S is configured for 2x 24-bit data and not using DMA.
address_offset : 0xE24 Bytes (0x0)
size : 32 bit
access : write-only
reset_value : 0x0
reset_Mask : 0x0

FIFOWR48H FIFOWR48H write-only 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 TXDATA

TXDATA : Transmit data to the FIFO. Whether this register is used and the number of bits used depends on configuration details.
bits : 0 - 23 (24 bit)
access : write-only


FIFORD

FIFO read data.
address_offset : 0xE30 Bytes (0x0)
size : 32 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0

FIFORD FIFORD read-only 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RXDATA

RXDATA : Received data from the FIFO. The number of bits used depends on configuration details.
bits : 0 - 31 (32 bit)
access : read-only


FIFORD48H

FIFO read data for upper data bits. May only be used if the I2S is configured for 2x 24-bit data and not using DMA.
address_offset : 0xE34 Bytes (0x0)
size : 32 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0

FIFORD48H FIFORD48H read-only 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RXDATA

RXDATA : Received data from the FIFO. Whether this register is used and the number of bits used depends on configuration details.
bits : 0 - 23 (24 bit)
access : read-only


FIFORDNOPOP

FIFO data read with no FIFO pop.
address_offset : 0xE40 Bytes (0x0)
size : 32 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0

FIFORDNOPOP FIFORDNOPOP read-only 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RXDATA

RXDATA : Received data from the FIFO.
bits : 0 - 31 (32 bit)
access : read-only


FIFORD48HNOPOP

FIFO data read for upper data bits with no FIFO pop. May only be used if the I2S is configured for 2x 24-bit data and not using DMA.
address_offset : 0xE44 Bytes (0x0)
size : 32 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0

FIFORD48HNOPOP FIFORD48HNOPOP read-only 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RXDATA

RXDATA : Received data from the FIFO. Whether this register is used and the number of bits used depends on configuration details.
bits : 0 - 23 (24 bit)
access : read-only



Is something missing? Is something wrong? can you help correct it ? Please contact us at info@chipselect.org !

This website is sponsored by EmbeetleEmbeetle, an IDE designed from scratch for embedded software developers.