Figure 21-13. USB General and OTG Controller Interrupt System
IDTI
USBINT.1
IDTE
USBCON.1
VBUSTI
USBINT.0
VBUSTE
USBCON.0
STOI
OTGINT.5
STOE
OTGIEN.5
HNPERRI
OTGINT.4
HNPERRE
USB General & OTG
Interrupt Vector
OTGIEN.4
ROLEEXI
OTGINT.3
ROLEEXE
OTGIEN.3
BCERRI
OTGINT.2
BCERRE
OTGIEN.2
VBERRI
OTGINT.1
VBERRE
Asynchronous Interrupt source
(allows the CPU to wake up from power down mode)
OTGIEN.1
SRPI
OTGINT.0
SRPE
OTGIEN.0
There are 2 kind of interrupts: processing (i.e. their generation are part of the normal processing)
and exception (errors).
Processing interrupts are generated when:
• ID Pad detection (insert, remove)(IDTI)
• VBUS plug-in detection (insert, remove) (VBUSTI)
• SRP detected(SRPI)
• Role Exchanged(ROLEEXI)
Exception Interrupts are generated when:
• Drop on VBus Detected(VBERRI)
• Error during the B-Connection(BCERRI)
• HNP Error(HNPERRI)
• Time-out detected during Suspend mode(STOII)
21.5 Power modes
21.5.1
Idle mode
In this mode, the CPU core is halted (CPU clock stopped). The Idle mode is taken whatever the
USB controller is running or not. The CPU “wakes up” on any USB interrupts.
21.5.2
Power down
In this mode, the oscillator is stopped and halts all the product (CPU and peripherals). The CPU
“wakes up” when:
• the WAKEUPI interrupt is triggered in the Peripheral mode (HOST cleared),
256
AT90USB64/128
7593A–AVR–02/06