...the world's most energy friendly microcontrollers
2016-04-28 - Giant Gecko Family - d0053_Rev1.20
294
www.silabs.com
• USB_DIEPx_CTL.CNAK = 1
7. When the application clears the IN NAK bit, the core interrupts the application with a
USB_DIEPx_INT.INTKNTXFEMP. On this interrupt, the application enables the control IN endpoint
with a USB_DIEPx_TSIZ.XFERSIZE of 0 and a USB_DIEPx_TSIZ.PKTCNT of 1. This results in a
zero-length data packet for the status IN token on the USB.
8. At the end of the status IN phase, the core interrupts the application with a
USB_DIEPx_INT.XFERCOMPL interrupt.
Figure 15.20. Two-Stage Control Transfer
set up dat a
2
set up dat a
2
Host
Application
Device
USB
SETUP
.
IN(STATUS)
8
byt es
ACK
st at us_ x act_2
A CK Lo
st
RXFLVL
INTR
set up_ x act_1
NAK
IN
set up_ x act_2
st at us_ x act_2
set up dat a
1
S ETUP
ACK
RXF
LVL
INTR
NA K
IN
set up dat a
1
set up done
SETUP
Intr
Clear IN
NAK
INTKNTXFEM
P
INTR
XFERCOMP
L
INTR
idle unt il int r
set up_ in_ np_ pkt
sts data
rdy
proc_ set up_pkt
# 2
idle unt il int r
rcv_out_ dat a
idle unt il int r
rcv_out_ dat a
idle unt il int r
rcv_out_ dat a
idle unt il int r
1
3
4
RX
FLV
L IN
TR
5
6
7
8
Ct l- IN NAK
=
1
Ct l- OUT NAK
=
1
Cont rol IN NAK
=
1
Cont rol OUT NAK
=
1
8
byt es
8
byt es
set up dat a
1
XFERSIZE = 0 byt es
PKTCNT = 1
EPENA = 1
15.4.4.2.2.4 Packet Read from FIFO in Slave Mode
This section describes how to read packets (OUT data and SETUP packets) from the receive FIFO in
Slave mode.
1. On catching a USB_GINTSTS.RXFLVL interrupt, the application must read the Receive Status Pop
register (USB_GRXSTSP).
2. The
application
can
mask
the
USB_GINTSTS.RXFLVL
interrupt
by
writing
to
USB_GINTMSK.RXFLVL = 0, until it has read the packet from the receive FIFO.
3. If the received packet’s byte count is not 0, the byte count amount of data is popped from the receive
Data FIFO and stored in memory. If the received packet byte count is 0, no data is popped from the
Receive Data FIFO.
4. The receive FIFO’s packet status readout indicates one of the following.
5. Global OUT NAK Pattern: PKTSTS = Global OUT NAK, BCNT = 0x000, EPNUM = Dont Care (0x0),
DPID = Dont Care (0b00). This data indicates that the global OUT NAK bit has taken effect.
Summary of Contents for Giant Gecko EFM32GG
Page 842: ......