...the world's most energy friendly microcontrollers
2016-04-28 - Giant Gecko Family - d0053_Rev1.20
303
www.silabs.com
• Number of USB packets in which this payload was received = application-programmed initial packet
count – core updated final packet count.
• If for some reason, the host stop sending tokens, there will be no interrupt to the application, and
the application must timeout on its own.
5. The assertion of the USB_DOEPx_INT.XFERCOMPL can also mark a packet drop on USB due to
unavailability of space in the RxFifo or due to any packet errors.
• The application must read the USB_DOEPx_INT.PKTDRPSTS (USB_DOEPx_INT.Bit[11] is
now used as the USB_DOEPx_INT.PKTDRPSTS) register to differentiate whether the
USB_DOEPx_INT.XFERCOMPL was generated due to the normal end of transfer or due to
dropped packets. In case of packets being dropped on the USB due to unavailability of space in
the RxFifo or due to any packet errors the endpoint enable bit is cleared.
• In case of packet drop on the USB application must re-enable the endpoint after recalculating the
values USB_DOEPx_TSIZ.XFERSIZE and USB_DOEPx_TSIZ.PKTCNT.
• Payload size in memory = application-programmed initial transfer size - core updated final transfer
size
• Number of USB packets in which this payload was received = application-programmed initial packet
count - core updated final packet count.
Note
Due to application latencies it is possible that DOEPINT.XFERCOMPL interrupt is
generated without DOEPINT.PKTDRPSTS being set, This scenario is possible only if back-
to-back packets are dropped for consecutive frames and the PKTDRPSTS is merged, but
the XFERSIZE and PktCnt values for the endpoint are nonzero. In this case, the application
must proceed further by programming the PKTCNT and XFERSIZE register for the next
frame, as it would if PKTDRPSTS were being set.
Figure 15.23 (p. 304) gives the application flow for Isochronous OUT Periodic Transfer Interrupt
feature.
Summary of Contents for Giant Gecko EFM32GG
Page 842: ......