...the world's most energy friendly microcontrollers
2016-04-28 - Giant Gecko Family - d0053_Rev1.20
316
www.silabs.com
Figure 15.28. Slave Mode Bulk IN Transfer (Pipelined Transaction)
x act_ 2
Host
Application
Device
USB
IN
ACK
ACK
IN
1 byt e
ACK
x act_
1 of
3
x act_2
of
3
x act_3
of
3
wr_reg( x fer_ size_reg)
NAK
IN
IN
512
byt es
512
byt es
1
2
3
4
6
7
8
9
1 0
2
1 1
1 2
1 3
1 4
idle unt il int r
set up_ np_in_pkt
set up_ np_in_pkt
set up_ np_in_pkt
IN Token =
0
Tim eout
=0
ACK =
0
XferCom pl
=
1
x act_2
x act_3
x act_ 1
x fer_ cnt = 1025
byt es
pkt_ cnt =
3
EP Enable =
1
idle unt il int r
5
NPTX
FEMP
INTR
INTKNTXFEMP
INTR
XFERCOMPL
INTR
Slave Mode Bulk IN Two-Endpoint Transfer
These notes refer to Figure 15.29 (p. 317)
1. The host attempts to read data (IN token) from endpoint 1.
2. On receiving the IN token on the USB, the core returns a NAK handshake, because no data is available
in the transmit FIFO for endpoint 1, and generates a USB_DIEP1_INT.INTKNTXFEMP (In Token
Received When TxFIFO Empty) interrupt.
3. The application processes the interrupt and initializes USB_DIEP1_TSIZ register with the Transfer
Size and Packet Count fields. The application starts writing the transaction data to the transmit FIFO.
4. The application writes one maximum packet size or less of data for endpoint 1 to the Non-periodic
TxFIFO.
5. Meanwhile, the host attempts to read data (IN token) from endpoint 2.
6. On receiving the IN token on the USB, the core returns a NAK handshake, because no data is available
in the transmit FIFO for endpoint 2, and the core generates a USB_DIEP2_INT.INTKNTXFEMP (In
Token Received When TxFIFO Empty) interrupt.
7. Because the application has completed writing the packet for endpoint 1, it initializes the
USB_DIEP2_TSIZ register with the Transfer Size and Packet Count fields. The application starts
writing the transaction data into the transmit FIFO for endpoint 2.
8. The host repeats its attempt to read data (IN token) from endpoint 1.
9. Because data is now ready in the TxFIFO, the core returns the data, which the host ACKs.
10.Meanwhile, the application has initialized the data for the next two packets in the TxFIFO (ep2.xact1
and ep1.xact2, in order).
11.The host repeats its attempt to read data (IN token) from endpoint 2.
12.Because endpoint 2’s data is ready, the core responds with the data (ep2.xact_1), which the host
ACKs.
Summary of Contents for Giant Gecko EFM32GG
Page 842: ......