21 I
2
S
S1C33L26 TECHNICAL MANUAL
Seiko Epson Corporation
21-19
7.7 Monitoring the FIFO State Machine
Table 21.
FIFOSTAT[2:0]
State
0x7–0x6
Reserved
0x5
FLUSH: FIFO is flushing the remained audio data before it stops.
This means that the I
2
S module is stopped by setting I2SSTART to 0, but there
are some audio data remained in the FIFO. The I
2
S module enters FLUSH
state until all the remained audio data has been shifting out. After that, the
FIFOSTAT[2:0] changes from FLUSH to STOP.
If the application program restarts the I
2
S module by setting I2SSTART to 1
again in FLUSH state, FIFOSTAT[2:0] changes back to FULL or LACK accord-
ing to the current FIFO status.
0x4
EMPTY: FIFO is empty.
This means that the I
2
S FIFO became absolutely empty, but it has not been
filled to full yet.
Once the FIFO becomes absolutely empty, FIFOSTAT[2:0] is set to EMPTY.
When the application program fills the FIFO with less than four stereo data (16
bits
×
2 channels (L & R)
×
4), FIFOSTAT[2:0] retains EMPTY and the I
2
S mod-
ule stops shifting out data until the FIFO becomes full again. After the FIFO
becomes full, FIFOSTAT[2:0] is set to FULL and the I
2
S module starts shifting
out data again.
0x3
LACK: FIFO is not full and not empty.
This means that the I
2
S FIFO has data, but is not full and also not empty.
0x2
FULL: FIFO is full.
This means that the I
2
S FIFO becomes full with four stereo data. The I
2
S mod-
ule will start shifting out the buffered data.
0x1
INIT:
Initialize all four entries of FIFO.
This means that the I
2
S module is started and waits for filling the FIFO with the
first four stereo data.
0x0
STOP: FIFO is idle.
This means that the I
2
S module is stopped.
(Default: 0x0)
D1
I2SFIFOFF: I
2
S FIFO Full Flag Bit
Indicates whether the transmit FIFO is full or not.
1 (R):
Full
0 (R):
Not full (default)
I2SFIFOFF is set to 1 when the FIFO becomes full of the written data (16 bits
×
2 channels (L & R)
×
4)
to indicate that no more data can be written.
I2SFIFOFF is reset to 0 when the stored data is read out to transmit.
D0
I2SFIFOEF: I
2
S FIFO Empty Flag Bit
Indicates whether the transmit FIFO is empty or not.
1 (R):
Empty (default)
0 (R):
Not empty
I2SFIFOEF is reset to 0 when a transmit data is written to the FIFO and is set to 1 when all the stored
data have been transmitted.
When the FIFO becomes absolutely empty (I2SFIFOEF = 1), the I
2
S module stops shifting data and
enters EMPTY state. In this case, the I
2
S module resumes output when the FIFO becomes full again.
I
2
S Interrupt Control Register (I2S_INT)
Register name Address
Bit
Name
Function
Setting
Init. R/W
Remarks
I
2
S Interrupt
Control Register
(I2S_INT)
0x30140c
(16 bits)
D15–11 –
reserved
–
–
–
0 when being read.
D10
WEIF
I
2
S FIFO whole empty int. flag
1 Cause of
interrupt
occurred
0 Cause of
interrupt not
occurred
0
R/W Reset by writing 1.
D9
HEIF
I
2
S FIFO half empty interrupt flag
1
0
0
R/W
D8
OEIF
I
2
S FIFO one empty interrupt flag 1
0
0
R/W
D7–3 –
reserved
–
–
–
0 when being read.
D2
WEIE
I
2
S FIFO whole empty int. enable
1 Enable
0 Disable
0
R/W
D1
HEIE
I
2
S FIFO half empty int. enable
1 Enable
0 Disable
0
R/W
D0
OEIE
I
2
S FIFO one empty int. enable
1 Enable
0 Disable
0
R/W