Registers
EN
- Name: I2S Enable Register
- Description: This register acts as a global enable/disable for I2S.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x0
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:1 |
RSVD |
R |
Reserved bits |
|
0 |
I2S_EN |
RW |
0x0 |
I2S enable. This bit enables or disables I2S. A disable on this bit overrides any other block or channel enables and flushes all FIFOs. Value:
|
RX_EN
- Name: I2S Receiver Block Enable Register
- Description: This register acts as an enable/disable for the I2S Receiver block.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x4
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:1 |
RSVD |
R |
Reserved bits |
|
0 |
RX_EN |
RW |
0x0 |
Receiver block enable. This bit enables or disables the receiver. A disable on this bit overrides any individual receive channel enables. Value:
|
TX_EN
- Name: I2S Transmitter Block Enable Register
- Description: This register acts as an enable/disable for the I2S Transmitter block.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x8
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:1 |
RSVD |
R |
Reserved bits |
|
0 |
TX_EN |
RW |
0x0 |
Transmitter block enable. This bit enables or disables the transmitter. A disable on this bit overrides any individual transmit channel enables. Value:
|
CLK_EN
- Name: Clock Enable Register
- Description: This register acts as an enable/disable for the I2S clock generation block.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0xC
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:1 |
RSVD |
R |
Reserved bits |
|
0 |
CLK_EN |
RW |
0x0 |
Clock Generation enable/disable. This bit enables or disables the clock generation signals when I2S is a master. Value:
Note: When the I2S is configured as a slave, this register serves no purpose. |
SCLK_CFG
- Name: Clock Configuration Register
- Description: This register configures the WS when I2S is a master.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x10
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:5 |
RSVD |
R |
Reserved bits |
|
4:3 |
WS_SCLK |
RW |
0x0 |
These bits are used to program the number of SCLK cycles for which the word select line (ws_out) stays in the left or right sample mode. The I2S Clock Generation block must be disabled (CLK_EN [0] = 0) prior to any changes in this value. Value:
|
2:0 |
SCLK_GAT |
RW |
0x0 |
These bits are used to program the gating of SCLK. The programmed gating value must be less than or equal to the largest configured/programmed audio resolution to prevent the truncating of RX/TX data. The I2S Clock Generation block must be disabled (CLK_EN[0] = 0) before making any changes in this value. Values:
Note: This register is only relevant when component is configured to be a master (I2S_MODE_EN = 1). |
RX_FIFO_RST
- Name: Receiver Block FIFO Reset Register
- Description: This register specifies the Receiver Block FIFO Reset Register.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x14
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:1 |
RSVD |
W |
Reserved bits |
|
0 |
RX_FIFO_RST |
W |
0x0 |
Receiver FIFO Reset. Writing a 1 to this register flushes all the RX FIFOs (this is a self-clear bit). The Receiver Block must be disabled before writing to this bit. Value:
|
TX_FIFO_RST
- Name: Transmitter Block FIFO Reset Register
- Description: This register specifies the Transmitter Block FIFO Reset Register.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x18
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:1 |
RSVD |
W |
Reserved bits |
|
0 |
TX_FIFO_RST |
W |
0x0 |
Transmitter FIFO Reset. Writing a 1 to this register flushes all the TX FIFOs (this is a self-clear bit). The Transmitter Block must be disabled prior to writing this bit. Value:
|
LEFT_RX_BUF
- Name: Left Receive Buffer Register
- Description: This specifies the Left Receive Buffer Register.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x20
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:0 |
LEFT_RX_BUF |
R |
0x0 |
The left stereo data received serially from the receive channel input (sdi). If the RX FIFO is full and the two-stage read operation (for instance, a read from LEFT_RX_BUF followed by a read from RIGHT_RX_BUF) is not performed before the start of the next stereo pair, then the new data is lost and an overrun interrupt occurs. (Data already in the RX FIFO is preserved.) Note: Before reading this register again, the right stereo data must be read from RIGHT_RX_BUFx or the status/interrupts will not be valid. |
LEFT_TX_HDG
- Name: Left Transmit Holding Register
- Description: This specifies the Left Transmit Holding Register
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x20
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:0 |
LEFT_TX_HDG |
W |
0x0 |
The left stereo data to be transmitted serially through the transmit channel output (sdo) is written through this register. Writing is a two-stage process:
Data must only be written to the FIFO when it is not full. Any attempt to write to a full FIFO results in that data being lost and an overrun interrupt being generated. |
RIGHT_RX_BUF
- Name: Right Receive Buffer Register
- Description: This specifies the Right Receive Buffer Register
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x24
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:0 |
RIGHT_RX_BUF |
R |
0x0 |
The right stereo data received serially from the receive channel input (SDI) is read through this register. If the RX FIFO is full and the two-stage read operation (for instance, read from LEFT_RX_BUF followed by a read from RIGHT_RX_BUF) is not performed before the start of the next stereo pair, then the new data is lost and an overrun interrupt occurs. (Data already in the RX FIFO is preserved.) Note: Prior to reading this register, the left stereo data must be read from LEFT_RX_BUF, or the status/interrupts will not be valid. |
RIGHT_TX_HDG
- Name: Right Transmit Holding Register
- Description: This specifies the Right Transmit Holding Register.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x24
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:0 |
RIGHT_TX_HDG |
W |
0x0 |
The right stereo data to be transmitted serially through the transmit channel output (SDO) is written through this register. Writing is a two-stage process:
Data should only be written to the FIFO when it is not full. Any attempt to write to a full FIFO results in that data being lost and an overrun interrupt being generated. |
RX_CH_EN
- Name: Receive Enable Register
- Description: This specifies the Receive Enable Register.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x28
- Reset Value: 0x00000001
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:1 |
RSVD |
R |
Reserved bits |
|
0 |
RX_CH_EN |
RW |
0x1 |
Receive channel enable. This bit enables/disables a receive channel. On enable, the channel begins receiving on the next left stereo cycle. A global disable of I2S (EN[0] = 0) or the Receiver block (RX_EN[0] = 0) overrides this value. Value:
|
TX_CH_EN
- Name: Transmit Enable Register
- Description: This specifies the Transmit Enable Register.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x2c
- Reset Value: 0x00000001
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:1 |
RSVD |
R |
Reserved bits |
|
0 |
TX_CH_EN |
RW |
0x1 |
Transmit channel enable. This bit enables/disables a transmit channel. On enable, the channel begins transmitting on the next left stereo cycle. A global disable of I2S (EN[0] = 0) or Transmitter block (TX_EN[0] = 0) overrides this value. Value:
|
RX_CFG
- Name: Receive Configuration Register
- Description: This specifies the Receive Configuration Register
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x30
- Reset Value: 0x00000005
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:3 |
RSVD |
R |
Reserved bits |
|
2:0 |
WORD_LEN |
RW |
0x5 |
These bits are used to program the desired data resolution of the receiver and enables the LSB of the incoming left (or right) word to be placed in the LSB of the LEFT_RX_BUF (or RIGHT_RX_BUF) register. Programmed data resolution must be less than or equal to 0x5. If the selected resolution is greater than the 0x5, the receive channel defaults back to 0x5. The channel must be disabled prior to any changes in this value (RX_EN0[0] = 0). Value:
|
TX_CFG
- Name: Transmit Configuration Register
- Description: This specifies the Transmit Configuration Register.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x34
- Reset Value: 0x00000005
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:3 |
RSVD |
R |
Reserved bits |
|
2:0 |
WORD_LEN |
RW |
0x5 |
These bits are used to program the data resolution of the transmitter and ensures the MSB of the data is transmitted first. Programmed resolution must be less than or equal to 0x5. If the selected resolution is greater than 0x5, the transmit channel defaults back to 0x5. The channel must be disabled prior to any changes in this value (TX_EN [0] = 0). Value:
|
INT_STAT
- Name: Interrupt status Register
- Description: This specifies the Interrupt Status Register.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x38
- Reset Value: 0x00000010
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:6 |
RSVD |
R |
Reserved bits |
|
5 |
TX_FIFO_OVER |
R |
0x0 |
Status of Data Overrun interrupt for the TX channel. This bit specifies whether the TX FIFO write is valid or an overrun. Attempt to write to full TX FIFO. Value:
|
4 |
TX_FIFO_EMPTY |
R |
0x1 |
Status of Transmit Empty Trigger interrupt. This bit specifies whether the TX FIFO trigger level has reached or not. TX FIFO is empty. Value:
|
3:2 |
RSVD |
R |
Reserved bits |
|
1 |
RX_FIFO_OVER |
R |
0x0 |
Status of Data Overrun interrupt for the RX channel. Incoming data lost due to a full RX FIFO. Value:
|
0 |
RX_DATA_AVL |
R |
0x0 |
Status of Receive Data Available interrupt. This bit denotes the status of the RX FIFO trigger level. Value:
|
INT_MASK
- Name: Interrupt Mask Register
- Description: This specifies the Interrupt Mask Register
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x3c
- Reset Value: 0x00000033
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:6 |
RSVD |
R |
Reserved bits |
|
5 |
TX_FOM |
RW |
0x1 |
Mask TX FIFO Overrun interrupt. This bit masks or unmasks a TX FIFO overrun interrupt. Value:
|
4 |
TX_FEM |
RW |
0x1 |
Mask TX FIFO Empty interrupt. This bit masks or unmasks a TX FIFO Empty interrupt. Value:
|
3:2 |
RSVD |
R |
Reserved bits |
|
1 |
RX_FOM |
RW |
0x1 |
Mask RX FIFO Overrun interrupt. This bit masks or unmasks an RX FIFO Overrun interrupt. Value:
|
0 |
RX_DAM |
RW |
0x1 |
Mask RX FIFO Data Available interrupt. This bit masks or unmasks an RX FIFO Data Available interrupt. Value:
|
RX_OVER
- Name: Receive Overrun Register
- Description: This specifies the Receive Overrun Register
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x40
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:1 |
RSVD |
R |
Reserved bits |
|
0 |
RX_CLR_FDO |
R |
0x0 |
Read this bit to clear the RX FIFO Data Overrun interrupt. Value:
|
TX_OVER
- Name: Transmit Overrun Register
- Description: This specifies the Transmit Overrun Register.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x44
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:1 |
RSVD |
R |
Reserved bits |
|
0 |
TX_CLR_FDO |
R |
0X0 |
Read this bit to clear the TX FIFO Data Overrun interrupt. Value:
|
RX_FIFO_CFG
- Name: Receive FIFO Configuration Register
- Description: This specifies the Receive FIFO Configuration Register
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x48
- Reset Value: 0x00000008
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:4 |
RSVD |
R |
Reserved bits |
|
3:0 |
RX_FIFO_TL |
RW |
0x8 |
These bits program the trigger level in the RX FIFO at which the Received Data Available interrupt is generated. Trigger Level = Programmed Value + 1 Value:
|
TX_FIFO_CFG
- Name: Transmit FIFO Configuration Register
- Description: This specifies the Transmit FIFO Configuration Register.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x4C
- Reset Value: 0x00000008
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:4 |
RSVD |
R |
Reserved bits |
|
3:0 |
TX_FIFO_TL |
RW |
0x8 |
These bits program the trigger level in the TX FIFO at which the Empty Threshold Reached Interrupt is generated. Trigger Level = TX_FIFO_TL Value:
|
RX_FIFO_FLUSH
- Name: Receive FIFO Flush Register
- Description: This specifies the Receive FIFO Flush Register.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x50
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:1 |
RSVD |
W |
Reserved bits |
|
0 |
RX_FIFO_RST |
W |
0x0 |
Receive Channel FIFO Reset. Writing a 1 to this register flushes an individual RX FIFO (This is a self-clear bit.). A RX channel or block must be disabled prior to writing to this bit. Value:
|
TX_FIFO_FLUSH
- Name: Transmit FIFO Flush Register
- Description: This specifies the Transmit FIFO Flush Register.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x54
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:1 |
RSVD |
W |
Reserved bits |
|
0 |
TX_FIFO_RST |
W |
0x0 |
Transmit Channel FIFO Reset. Writing a 1 to this register flushes an individual TX FIFO (This is a self-clear bit.). A TX channel or block must be disabled prior to writing to this bit. Value:
|
RX_DMA
- Name: Receiver Block DMA Register
- Description: The RX_DMA register allows access to receive channel via a single point rather than through the LEFT_RX_BUF and RIGHT_RX_BUF registers. The receive channel is targeted in a cyclical fashion (starting at the lowest numbered enabled channel) and takes two reads (left and right stereo data) before the component points to the next channel.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x1c0
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:1 |
RSVD |
R |
Reserved bits |
|
0 |
RX_DMA |
RW |
0x0 |
Receiver Block DMA Register. These bits are used to cycle repeatedly through the enabled receive channel, reading stereo data pairs. |
RST_RX_DMA
- Name: Reset Receiver Block DMA Register
- Description: The RX_DMA can be reset to the enabled Channel via the RST_RX_DMA register. The RST_RX_DMA register can be written to at any stage of the RX_DMA's read cycle, however, it has no effect when the component is in the middle of a stereo pair read.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x1C4
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:1 |
RSVD |
W |
Reserved bits |
|
0 |
RST_RX_DMA |
W |
0x0 |
Reset Receiver Block DMA Register. Writing a 1 to this self-clearing register resets the RX_DMA register mid-cycle to point to the enabled Receive channel. Value:
|
TX_DMA
- Name: Transmitter Block DMA Register
- Description: The TX_DMA register functions similar to the RX_DMA register and allows write access to all of the enabled Transmit channel via a single point rather than through the LEFT_TX_HDG and RIGHT_TX_HDG registers.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x1c8
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:1 |
RSVD |
R |
Reserved bits |
|
0 |
TX_DMA |
RW |
0x0 |
Transmitter Block DMA Register. These bits are used to cycle repeatedly through the enabled transmit channel to allow writing of stereo data pairs. |
RST_TX_DMA
- Name: Reset Transmitter Block DMA Register
- Description: This register provides the same functionality as the RST_RX_DMA register but targets TX_DMA instead.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x1cc
- Reset Value: 0x00000000
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:1 |
RSVD |
W |
Reserved bits |
|
0 |
RST_TX_DMA |
W |
0x0 |
Reset Transmitter Block DMA Register. Writing a 1 to this self-clearing register resets the TX_DMA register mid-cycle to point to the enabled Transmit channel. Value:
|
CLK_CFG
- Name: I2S Clock Configure Register
- Description: This register is used to configure I2S master clock.
- Base Address: 0xA000CA00 (master) and 0xA000F000 (slave)
- Offset: 0x268
- Reset Value: 0x00040008
Bits | Field Name | RW | Reset | Description |
---|---|---|---|---|
31:19 |
RSVD |
R |
Reserved bits |
|
18 |
CLK_SRC_SEL |
RW |
0x1 |
clock divider source select 0:96 M, 1:32 M |
17 |
RSVD |
R |
Reserved bits |
|
16 |
DIV_EN |
RW |
0x0 |
Enable I2S clock divider |
15:12 |
RSVD |
R |
Reserved bits |
|
11:0 |
DIV |
RW |
0x8 |
ratio = 1/(div + 2). Duty cycle is not 50 when the number is odd. For example: div = 0, ratio = 1/2 |