...the world's most energy friendly microcontrollers
2016-04-28 - Giant Gecko Family - d0053_Rev1.20
305
www.silabs.com
• The last OUT data packet written to the receive FIFO is a short packet (0 < packet size < maximum
packet size).
8. When the DMA pops this entry (OUT Data Transfer Completed), a Transfer Completed interrupt is
generated for the endpoint or the endpoint enable is cleared.
9. OUT data packets received with Bad Data CRC or any packet error are flushed from the receive FIFO
automatically.
• In these two cases, the packet count and transfer size registers are not decremented because no
data is written to the receive FIFO.
Figure 15.24. Isochronous OUT Core Internal Flow for Periodic Transfer Interrupt Feature
If (USB_DOEPx _CTL.CNAK = 0b1) &&
(USB_DOEPx _CTL.EPENA = 0b1) &&
(DCTL.IGNRFRMNUM = 0b1) &&
NOTE
1 .
Core will write data to only DWORD Aligned addresses
2 .
Core will not tag Periodic OUT Packets with
( micro)
frame number and PID
3 . Any Short Packet
( SP )
Received will generate XferComplete Interrupt
including zero length packet
4 .
PacketDrop due to unAvailability of Space in RxFifo will generate
XferComplete Immediately
.
5 .
PktDrop due to EndPoint being disabled will generate XferComplete at
End of periodic Frame interval
.
START
OUT Token From Host
Check RXFifo Space
Available
ret urn
Receive Pkt and St ore in RXFifo
Pkt Cnt
= Pkt Cnt
-1
DMA Pop Rx Fifo
XferSize
= XferSize
-
Max Pkt Size
PKtSize
= = MaxPktSize
NO
Received Short Packet
Pkt Cnt
= Pkt Cnt
- 1
NO
If PktCnt
= =
0 &&
XferSize
= =
0
USB_DOEPx _INT.XFERCOMPL = 1
DMA Pop Rx Fifo
XferSize
= XferSize
-
Act Pkt Size
YES
YES
If End Of PerFrInt
&&
ISOC Out Packet Naked
Disable endpoint
YES
NO
YES
YES
A
NO
NO
A
YES
Disable endpoint
NO
15.4.4.2.2.12 Incomplete Isochronous OUT Data Transfers in DMA and Slave Modes
To initialize the core after power-on reset, the application must follow the sequence in Overview:
Programming the Core (p. 250) . Before it can communicate with the host, it must initialize an endpoint
as described in Endpoint Initialization (p. 285) . See Packet Read from FIFO in Slave Mode (p. 294) .
This section describes the application programming sequence when isochronous OUT data packets are
dropped inside the core.
Internal Data Flow
1. For isochronous OUT endpoints, the USB_DOEPx_INT.XFERCOMPL interrupt possibly is not always
asserted. If the core drops isochronous OUT data packets, the application could fail to detect the
USB_DOEPx_INT.XFERCOMPL interrupt under the following circumstances.
• When the receive FIFO cannot accommodate the complete ISO OUT data packet, the core drops
the received ISO OUT data.
• When the isochronous OUT data packet is received with CRC errors
• When the isochronous OUT token received by the core is corrupted
• When the application is very slow in reading the data from the receive FIFO
Summary of Contents for Giant Gecko EFM32GG
Page 842: ......