
Chapter 6. Power Management Page 6-1
Chapter 6 Power Management
6.1 Introduction
The USB host can suspend a device to put it into a power-down mode. When the USB signals a
SUSPEND operation, the FX2 goes through a sequence of steps to allow the firmware first to turn
off external power-consuming subsystems, and then to enter a low-power mode by turning off the
FX2’s oscillator. Once suspended, the FX2 is awakened either by resumption of USB bus activity
or by assertion of one of its two WAKEUP pins (provided that they’re enabled). This chapter
describes the suspend-resume mechanism.
It is important to understand the distinction between ‘suspend’, ‘resume’, ‘idle’, and ‘wakeup’.
• SUSPEND is a request—indicated by a 3-millisecond “J” state on the USB bus—from the
USB host/hub to the device. This request is usually sent by the host when
it
enters a low-
power “suspended” state. USB devices are required to enter a low power state in response
to this request.
The FX2 also provides a register called SUSPEND; writing any value to it will allow the
FX2 to enter the suspended state even when a SUSPEND condition doesn’t exist on the
bus.
• RESUME is a signal from the device to the host, requesting that the host be taken out of its
low-power “suspended” mode. RESUME can be signaled only by a USB device that has
reported (via its Configuration Descriptor) that it supports this “remote wakeup” feature,
and only if the host has enabled remote wakeup from that device.
• Idle is an FX2 low-power state. FX2 firmware initiates this mode by setting bit 0 of the
PCON (Power Control) register. To meet the stringent USB suspend current specification,
the FX2’s oscillator must be stopped; after the PCON.0 bit is set, the oscillator will stop if a)
a SUSPEND condition exists on the bus or the SUSPEND register has been written to,
and b) the two WAKEUP pins are either disabled or false. The FX2 exits the Idle state
when it receives a Wakeup Interrupt.
• Wakeup is the mechanism which restarts the FX2 oscillator and asserts an interrupt to
force the FX2 to exit the Idle state and resume code execution. The FX2 recognizes three
wakeup sources: one from the USB itself (when bus activity resumes) and two from device
pins (WAKEUP and WU2).
Comentarios a estos manuales