DS785UM1
21-5
Copyright 2007 Cirrus Logic
I
2
S Controller
EP93xx User’s Guide
2
1
2
1
21
The I
2
S transmit and receive channels should be disabled before changes are made to the
control registers. Once the new configuration has been set, the channels can be re-enabled
following the specified start order.
If a channel is enabled while the FIFO is empty, no samples are read from the FIFO. The I
2
S
controller will parallel load whatever is currently in the left holding register into the shift
register. Once these contents have been shifted out, the right holding register is then parallel
loaded into the shift register and then shifted out. If this occurs after the I
2
S controller has
been reset, these holding registers will contain zero. If the I
2
S controller has been re-enabled
after an earlier transmission, the holding registers will contain the last samples that were
copied into them. As before, the I
2
S controller will attempt to read the FIFO after the right
holding register has been loaded into the shift register. At this point, if the FIFO is still empty,
the I
2
S controller will assert the FIFO underflow flag. No attempt is made to read the FIFO by
the I
2
S controller and the read pointer stays pointing to location 0. The underflow will update
a status bit in the Global Control Status register, I2SGlSts. (See “Register Descriptions” on
page 448.) To clear the underflow the programmer must write at least one left and right stereo
sample to the FIFO. Disabling the I
2
S controller will also clear the underflow.
The status of each FIFO is reflected in the Global Control Status register. There are 5 bits for
each FIFO in this register that reflect the state of the FIFO. They are as follows:
•
Tx0_underflow - Gets set when the I
2
S controller reads the FIFO when it is empty.
•
Tx0_overflow - Gets set when the programmer attempts to write to the FIFO when it is
full.
•
Tx0_fifo_empty - Gets set when there no left and right stereo samples in the FIFO.
•
Tx0_fifo_half_empty - Gets set when there are 4 left and right stereo samples or less in
the FIFO.
•
Tx0_fifo_full - Gets set when there are 8 left and right stereo samples in the FIFO.
21.3 I
2
S Receiver Channel Overview
The I
2
S Receiver channel enables audio compression algorithms executing on the ARM
Core to receive stereo information from external CODECS.
Each I
2
S RX channel provides a single stereo I
2
S compliant input channel. The Receive
channel can operate in master and slave mode. Data is received from the channel input and
transferred into two registers, the left and right stereo pair. The ARM can then read the data
from the channel. The key features are shown below.
•
Three Receive data channels, master or slave mode.
•
Supports 16/24/32 bit word lengths.
•
Programmable left/right word clock polarity on the serial frame.
•
Programmable bit clock polarity.
•
Programmable data validity, that is, data valid on the rising/negative edge of the bit
clock.
Summary of Contents for EP93 Series
Page 28: ...P 6 DS785UM1 Copyright 2007 Cirrus Logic Preface EP93xx User s Guide PP P ...
Page 162: ...5 36 DS785UM1 Copyright 2007 Cirrus Logic System Controller EP93xx User s Guide 55 5 ...
Page 576: ...15 18 DS785UM1 Copyright 2007 Cirrus Logic UART2 EP93xx User s Guide 1515 15 ...
Page 634: ...17 38 DS785UM1 Copyright 2007 Cirrus Logic IrDA EP93xx User s Guide 1717 17 ...
Page 648: ...19 6 DS785UM1 Copyright 2007 Cirrus Logic Watchdog Timer EP93xx User s Guide 1919 19 ...
Page 688: ...21 32 DS785UM1 Copyright 2007 Cirrus Logic I2S Controller EP93xx User s Guide 2121 21 ...
Page 790: ...27 20 DS785UM1 Copyright 2007 Cirrus Logic IDE Interface EP93xx User s Guide 2727 27 ...
Page 808: ...28 18 DS785UM1 Copyright 2007 Cirrus Logic GPIO Interface EP93xx User s Guide 2828 28 ...