beautypg.com

Suspend/resume management – Rainbow Electronics AT89C5131 User Manual

Page 128

background image

128

AT89C5131

4136A–USB–03/03

Suspend/Resume Management

Suspend

The Suspend state can be detected by the USB controller if all the clocks are enabled
and if the USB controller is enabled. The bit SPINT is set by hardware when an idle
state is detected for more than 3 ms. This triggers a USB interrupt if enabled.

In order to reduce current consumption, the firmware can stop the clocks and put the
C51 in Idle or Power-down mode. The Resume detection is still active.

The stop of the 48 MHz clock from the PLL should be done in the following order:

1.

Disable of the 48 MHz clock input of the USB controller by setting to 1 the SUS-
PCLK bit in the USBCON register.

2.

Disable the PLL by clearing the PLLEN bit in the PLLCON register.

Resume

When the USB controller is in Suspend state, the Resume detection is active even if all
the clocks are disabled and if the C51 is in Idle or Power-down mode. The WUPCPU bit
is set by hardware when a non-idle state occurs on the USB bus. This triggers an inter-
rupt if enabled. This interrupt wakes up the CPU from its Idle or Power-down state and
the interrupt function is then executed. The firmware will first enable the 48 MHz gener-
ation and then reset to 0 the SUSPCLK bit in the USBCON register if needed.

The firmware has to clear the SPINT bit in the USBINT register before any other USB
operation in order to wake up the USB controller from its Suspend mode.

The USB controller is then re-activated.

Figure 59. Example of a Suspend/Resume Management

USB Controller Init

Detection of a SUSPEND State

SPINT

Set SUSPCLK

Disable PLL

microcontroller in Power-down

Detection of a RESUME State

WUPCPU

Enable PLL

Clear SUSPCLK

Clear SPINT Bit

Clear WUPCPU Bit