
APPENDIX
S3C9654/C9658/P9658
19-22
6.
Sent_Stall.
6.1. Read/Clear flag. If MCU receive interrupt and get this value set then MCU should clear this flag
through writing "0" to this flag.
6.2. If the SIE sent stall to upstream then this flag will be set. There are two source which send stall to
upstream, The one is set Send_Stall flag by MCU and the other case is by SIE automatically when
the host do a protocol violation. The below is the example of protocol violation which the SIE send
stall automatically.
example)
A. If the host send IN or OUT token without SETUP transaction.
B. If the host send IN status transaction on IN control transfer.
C. If the host send OUT status transaction on OUT control transfer.
D. If the host send OUT status transaction on non-data transfer.
6.3. This can be a source of interrupt. When this flag do a transition from "0" to "1", the SIE will generate
a interrupt to MCU.
7.
In_Pkt_Rdy.
7.1. Read/Write flag. This value can be set by MCU but cleared by hardware after successful IN
transaction.
7.2. After loading the data to endpoint 0 FIFO the MCU should set this flag. The MCU can not write data
to endpoint 0 FIFO during this flag is set. Since set this flag means that data loading is finished.
And if the controller receive IN token then send these data to upstream. And if this value is "0" when
received IN token then the SIE will send NAK packet to upstream. If MCU set this flag without data
loading then the SIE will send zero-length data packet to upstream. If the MCU did not receive ACK
packet after sending loaded data then this value stay "1" and will retry in next IN transaction.
7.3. This can be a source of interrupt. When this flag do a transition from "1" to "0", the SIE will generate
a interrupt to MCU.
8.
Out_Pkt_Rdy.
8.1. Read only flag. This value can be set by SIE but cleared by MCU through setting Clr_Out_Pkt_Rdy
flag.
8.2. If the controller receive SETUP transaction in idle state and receive OUT transaction during data
stage of OUT control transfer then the SIE set this flag and generate interrupt to MCU. If the MCU
get this value set then should download the data to local buffer. The MCU can not write data to
endpoint 0 FIFO if this value is set. So if MCU want to write data to endpoint 0 FIFO then should
clear this flag before loading. If the controller receive IN or OUT transaction during this value set
then the SIE send NAK to upstream. But if the MCU receive SETUP transaction then the SIE set
Setup_End flag and set this flag and generate interrupt again.
8.3. This can be a source of interrupt. When this value do a transition from "0" to "1" the SIE generate
a interrupt to MCU.