![Texas Instruments CC2533 User Manual Download Page 199](http://html.mh-extra.com/html/texas-instruments/cc2533/cc2533_user-manual_1094592199.webp)
DMA
21.8 DMA
DMA should be used to fill the IN endpoint FIFOs and empty the OUT endpoint FIFOs. Using DMA
improves the read/write performance significantly compared to using the CPU. It is therefore highly
recommended to use DMA unless timing is not critical or only a few bytes are to be transferred.
There are no DMA triggers for the USB controller, meaning that DMA transfers must be triggered by
firmware.
Byte-size transfer should be used.
21.9 USB Reset
When reset signaling is detected on the bus, the USBCIF.RSTIF flag is asserted. If
USBCIE.RSTIE
is
enabled,
IRCON2.P2IF
is also asserted, and an interrupt request is generated if
IEN2.P2IE = 1
. The
firmware should take appropriate action when a USB reset occurs. A USB reset should place the device in
the default state, where it only responds to address 0 (the default address). One or more resets normally
take place during the enumeration phase, immediately after the USB cable is connected.
The following actions are performed by the USB controller when a USB reset occurs:
•
USBADDR
is set to 0.
•
USBINDEX
is set to 0.
•
All endpoint FIFOs are flushed.
•
USBMAXI
,
USBCS0
,
USBCSIL
,
USBCSIH
,
USBMAXO
,
USBCSOL
,
USBCSOH
,
USBCNT0
,
USBCNTL
, and
USBCNTH
are cleared.
•
All interrupts, except SOF and suspend, are enabled.
•
An interrupt request is generated (if
IEN2.P2IE = 1
and
USBCIE.RSTIE =
1
).
Firmware should close all pipes and wait for a new enumeration phase when USB reset is detected.
21.10 Suspend and Resume
The USB controller asserts
USBCIF.SUSPENDIF
and enters suspend mode when the USB has been
continuously idle for 3 ms, provided that
USBPOW.SUSPEND_EN =
1
. IRCON2.P2IF is asserted if
USBCIE.SUSPENDIE
is enabled, and an interrupt request is
generated if
IEN2.P2IE = 1.
While in suspend mode, only limited current can be sourced from the USB. See the USB 2.0 Specification
[3] for details about this. To be able to meet the suspend-current requirement, the device should be taken
down to PM1 when suspend is detected. The device should not enter PM2 or PM3, because this resets
the USB controller. Before entering PM1, the 48-MHz USB PLL must be turned off. This is done by setting
USBCTRL.PLL_EN
to 0 and waiting for
USBCTRL.PLL_LOCKED
to be cleared.
Any valid nonidle signaling on the USB causes
USBCIF.RESUMEIF
to be asserted and an interrupt
request to be generated, and wakes up the system if the USB resume interrupt is enabled.
When the system wakes up (enters active mode) from suspend, no USB registers except
USBCTRL
can
be accessed before the 48-MHz USB PLL has been activated. This is done by setting
USBCTRL.PLL_EN
to 1 and waiting until
USBCTRL.PLL_LOCKED
is set.
A USB reset also wakes up the system from suspend. A USB resume interrupt request is generated if the
interrupt is enabled, but the
USBCIF.RSTIF
interrupt flag is set instead of the
USBCIF.RESUMEIF
interrupt flag.
21.11 Remote Wake-Up
The USB controller can resume from suspend by signaling resume to the USB hub. Resume is performed
199
SWRU191C
–
April 2009
–
Revised January 2012
USB Controller
Copyright
©
2009
–
2012, Texas Instruments Incorporated