Datasheet
2010 Microchip Technology Inc. DS39940D-page 211
PIC24FJ64GB004 FAMILY
The B-device then proceeds by pulsing the VBUS
supply. Software should do this by setting PUVBUS
(U1CNFG2<4>). When an A-device detects SRP sig-
naling (either via the ATTACHIF (U1IR<6>) interrupt or
via the SESVDIF (U1OTGIR<3>) interrupt), the
A-device must restore the V
BUS supply by either setting
VBUSON (U1OTGCON<3>), or by setting the I/O port
controlling the external power source.
The B-device should not monitor the state of the V
BUS
supply while performing VBUS supply pulsing. When the
B-device does detect that the V
BUS supply has been
restored (via the SESVDIF (U1OTGIR<3>) interrupt),
the B-device must re-connect to the USB link by pulling
up D+ or D- (via the DPPULUP or DMPULUP).
The A-device must complete the SRP by driving USB
Reset signaling.
18.6.2 HOST NEGOTIATION PROTOCOL
(HNP)
In USB OTG applications, a Dual Role Device (DRD) is
a device that is capable of being either a host or a
peripheral. Any OTG DRD must support Host
Negotiation Protocol (HNP).
HNP allows an OTG B-device to temporarily become
the USB host. The A-device must first enable the
B-device to follow HNP. Refer to the On-The-Go
Supplement to the USB 2.0 Specification for more
information regarding HNP. HNP may only be initiated
at full speed.
After being enabled for HNP by the A-device, the
B-device requests being the host any time that the USB
link is in Suspend state, by simply indicating a discon-
nect. This can be done in software by clearing
DPPULUP and DMPULUP. When the A-device detects
the disconnect condition (via the URSTIF (U1IR<0>)
interrupt), the A-device may allow the B-device to take
over as Host. The A-device does this by signaling con-
nect as a full-speed function. Software may accomplish
this by setting DPPULUP.
If the A-device responds instead with resume signaling,
the A-device remains as host. When the B-device
detects the connect condition (via ATTACHIF
(U1IR<6>), the B-device becomes host. The B-device
drives Reset signaling prior to using the bus.
When the B-device has finished in its role as Host, it
stops all bus activity and turns on its D+ pull-up resistor
by setting DPPULUP. When the A-device detects a
suspend condition (Idle for 3 ms), the A-device turns off
its D+ pull-up. The A-device may also power-down
V
BUS supply to end the session. When the A-device
detects the connect condition (via ATTACHIF), the
A-device resumes host operation, and drives Reset
signaling.
18.6.3 EXTERNAL VBUS COMPARATORS
The external VBUS comparator option is enabled by
setting the UVCMPDIS bit (U1CNFG2<1>). This dis-
ables the internal VBUS comparators, removing the
need to attach V
BUS to the microcontroller’s VBUS pin.
The external comparator interface uses either the
VCMPST1 and VCMPST2 pins, or the VBUSVLD,
SESSVLD and SESSEND pins, based upon the setting
of the UVCMPSEL bit (U1CNFG2<5>). These pins are
digital inputs and should be set in the following patterns
(see Table 18-3), based on the current level of the
V
BUS voltage.
TABLE 18-3: EXTERNAL VBUS COMPARATOR STATES
If UVCMPSEL = 0
VCMPST1 VCMPST2 Bus Condition
00VBUS < VB_SESS_END
10VB_SESS_END < VBUS < VA_SESS_VLD
01VA_SESS_VLD < VBUS < VA_VBUS_VLD
11VBUS > VVBUS_VLD
If UVCMPSEL = 1
VBUSVLD SESSVLD SESSEND Bus Condition
001V
BUS < VB_SESS_END
000VB_SESS_END < VBUS < VA_SESS_VLD
010VA_SESS_VLD < VBUS < VA_VBUS_VLD
110VBUS > VVBUS_VLD