...the world's most energy friendly microcontrollers
2016-04-28 - Giant Gecko Family - d0053_Rev1.20
328
www.silabs.com
Figure 15.33. SRP Initiation by the Core When Acting as a B-Device
1. Program USB_GINTMSK
(unm ask OTGINT)
2. Read USB_GOTGCTL
No
Yes
( This indicat es t hat
VBUS is already being driven
and hence t here is no need for
a SRP )
Device Init ializat ion
St eps .
For m ore
inform at ion
,
see
Device Init ializat ion
sect ion of t his
chapt er.
Int errupt ?
No
Yes
Read
USB_GINTSTS
No
Yes
Read
USB_GOTGINT
USB_GOTGINT .
SESREQSUCS
TSCHNG =
1?
No
Yes
1. Read USB_GOTGCTL
2. Clear
USB_GOTGINT .SESREQSU
CSTSCHNG by writ ing
a
1
USB_GOTGCTL .
SESREQSCS
=
1?
Yes
Device Init ializat ion
St eps.
For m ore
inform at ion
,
see
Device Init ializat ion
sect ion of t his
chapt er
.
No
Device
Transact ions
Device (OTG
FSM in b_idle st at e)
USB_GOTGCTL.
BSESVLD = 1 ?
Set USB_GOTGCTL.
SESREQ = 1
USB_GINTSTS.
OTGINT = 1?
Note
The programming flow illustrated in Figure 15.33 (p. 328) is similar to OTG revision 1.3.
This is because the presence or absence of VBUS pulsing is transparent to the application.
15.4.6.2 OTG Revision 2.0 Host Negotiation Protocol
When the core is operating as A-device, the application must execute a GetStatus() operation to the B-
device with a frequency of THOST_REQ_POLL to determine the state of the host request flag in the
B-device. If the host request flag is set in B-device it must program the core to change its role within
THOST_REQ_SUSP.
Figure 15.34 (p. 329) shows the programming steps that need to be performed by A-device’s
application (core as A-device) in order to change its role to device. In Figure 15.34 (p. 329) , the A-
device performs a role change, becomes a B-device and then reverts back to host (A-device) mode of
operation.
Summary of Contents for Giant Gecko EFM32GG
Page 842: ......