TMP92CF30
2009-06-12
92CF30-486
4)
FIFO buffer
The I
2
S unit is provided with a 128-byte FIFO. Although it is not necessary to
use all 128 bytes in the FIFO, data should basically be written in units of 64 bytes
using an INTI2S0 interrupt as a trigger. If data is written to the FIFO without
waiting for an INTI2S0 interrupt or in units other than 64 bytes, interrupts
cannot be generated properly.
If the last set of data, for which an interrupt is not needed, contains less than 64
bytes, set I2S0CTL<TXE0> to “0” to stop the transmission after writing the data,
then checking that the <TEMP0> flag is set to “1”, and waiting for two I2S0WS
periods (i.e., after all the data has been transmitted). In case monaural setting,
make sure that the FIFO is empty by checking the I2S0CTL<TEMP0> flag. Then,
after waiting for four periods of the I2S0WS signal (after all the data has been
transmitted), set <TXE0> to “0”.
5)
I2S0BUF
When writing data to the I2S0BUF register, be sure to use long-word data load
instructions. Word data load or byte data load instructions cannot be used.
Examples)
ld
(I2S0BUF), xwa; OK
ld (I2S0BUF),
wa;
NG
ld (I2S0BUF),
a;
NG
6)
Share with HALT instruction
I
2
S circuit is not operated at IDLE1/STOP modes. Therefore, maybe PLL clock
that operate at IDLE1 mode affects to this circuits. If mode is shifted to HALT
mode, set it after I
2
S circuit is stopped.
When the CPU is shifted to the HALT mode after transmission is stopped, the
time to stop completely is necessary before execution of HALT instruction.
It’s time is NOP
×
10.
Example:
ld
(I2S0CTL), 0x00 ; Stop transmission
NOP
×
10
HALT
Summary of Contents for TLCS-900/H1 Series
Page 652: ...TMP92CF30 2009 06 12 92CF30 650 ...