TMP92CF30
2009-06-12
92CF30-485
(3)
Considerations for using the I
2
S unit
1)
INTI2S0 generation timing
Every 4bytes data trance from FIFO buffer to shift register per one time.
An INTI2S0 interrupt is generated under two conditions. One is when there are
64 bytes of empty space in the FIFO (after 61- 64th byte has been transferred to
the shift register). The other is when the FIFO becomes completely empty (after
125-128th byte has been transferred to the shift register). Therefore, INTI2S0
indicates that there are 64 bytes or 128 bytes of empty space in the FIFO,
enabling the next data to be written.
The FIFO must be written in units of 64 bytes. Since the FIFO can contain 128
bytes of data, I
2
S output can be performed continuously as long as there are 64
bytes of data in the FIFO. It is also possible to check the FIFO state by using the
I2S0CTL<TEMP0> flag.
2)
I2S0CTL<TXE0>
Transmission is started by setting I2S0CTL <TXE0> to “1”. Once <TXE0> is set
to “1”, transmission is continued automatically as long as the FIFO contains the
data to be transmitted. While <TXE0> is set to “1” (transmission in progress), the
other bits in the I2S0CTL register must not be changed.
To stop transmission, make sure that the FIFO is empty by checking the
I2S0CTL<TEMP0> flag. Then, after waiting for two periods of the I2S0WS signal
(after all the data has been transmitted), set <TXE0> to “0”. 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 I2SWS signal (after all the data
has been transmitted), set <TXE0> to “0”.
If <TXE0> is set to “0” while data is being transmitted, the transmission is
stopped immediately. At the same time, the read and write pointers of the FIFO,
the data in the output shift register and the clock generator are all cleared.
(However, when I2S0CTL<CNTE0>=1, the clock generator is not cleared. To clear
the clock generator, I2S0CTL<CNTE0> must be set to “0”). Therefore, if
transmission is stopped and then resumed, no data will be output.
The WS signal stops at Low level and the CK signal stops at Low level when the
rising edge is selected and at High level when the falling edge is selected.
3)
I2S0CTL<CNTE0>
I2S0CTL<CNTE0> is used to control the clock generator (8-bit counter, 6-bit
counter) for generating the I2S0CKO and I2S0WS signals.
Setting I2S0CTL<CNTE0> to “1” starts the counters, and setting this bit to “0”
stops the counters. Normally, I
2
S data transmission is executed by setting both
I2S0CTL<TXE0> and <CNTE0> to “1”. When transmission is stopped by setting
I2S0CTL<TXE0> to “0” with I2S0CTL<CNTE0>= “1”, the clock generator is not
cleared. To clear the clock generator, I2S0CTL<CNTE0> must be set to “0”.
Содержание TLCS-900/H1 Series
Страница 1: ...TOSHIBA Original CMOS 32 Bit Microcontroller TLCS 900 H1 Series TMP92CF30FG Semiconductor Company ...
Страница 650: ...TMP92CF30 2009 06 12 92CF30 648 7 Package Dimensions LQFP176 P 2020 0 40F TOP VIEW BOTTOM VIEW Detail view of A 25 1 A ...
Страница 652: ...TMP92CF30 2009 06 12 92CF30 650 ...