![NXP Semiconductors LPC43Sxx Скачать руководство пользователя страница 720](http://html1.mh-extra.com/html/nxp-semiconductors/lpc43sxx/lpc43sxx_user-manual_1721827720.webp)
UM10503
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2015. All rights reserved.
User manual
Rev. 2.1 — 10 December 2015
720 of 1441
NXP Semiconductors
UM10503
Chapter 25: LPC43xx/LPC43Sxx USB0 Host/Device/OTG controller
25.11 System error
The USB controller is an AHB bus master and any interaction between the USB controller
and the system may experience errors. The type of error may be catastrophic to the USB
controller (such as a Master Abort), making it impossible for the USB controller to continue
in a coherent manner. In the presence of non-catastrophic errors, such as parity errors,
the USB controller could potentially continue operation. The recommended behavior for
these types of errors is to escalate it to a catastrophic error and halt the USB controller. A
system error will result in the following actions:
•
The Run/Stop bit in the USBCMD register is set to zero.
•
The following bits in the USBSTS register are set:
–
System Error bit is set to a one.
–
HChalted bit is set to a one.
•
If the System Error Enable bit in the USBINTR register is a one, then the USB
controller will issue a hard interrupt.
Remark:
After a system error, the software must reset the USB controller via HCReset in
the UBCMD register before re-initializing and re-starting the USB controller.
The most likely cause of system error in device mode is that the pointer fields (next dTD
pointer, buffer pointer) in endpoint transfer descriptors or in endpoint queue head got
corrupted (pointing to inaccessible memory location). The DCD should always provide
pointers to the USB controller accessible memory area. See
.To avoid corruption
of endpoint transfer descriptors due to race conditions between the DCD and the USB
controller, the DCD must follow the safety procedure described in
“Executing a transfer descriptor”
to add new dTD to the queue. When creating new queue
heads, the DCD must ensure that the EP is disabled or the queue is empty. If the queue is
not empty, the DCD should flush the endpoint first before altering the queue head
structure.
25.12 USB power optimization
The USB-HS core is a fully synchronous static design. Applications that transfer more
data or use a greater number of packets to be sent will consume a greater amount of
power.
The USB power consumption can be controlled by disabling the USB clocks and disabling
the High-speed PHY (see
).
A device may go into the Suspended state either autonomously by disconnecting from the
USB, or in response to USB suspend signaling.
25.12.1 USB power states
The USB provides a mechanism to place segments of the USB or the entire USB into a
low-power Suspended state. USB devices are required to respond to a 3ms lack of activity
on the USB bus by going into a Suspended state. In the USB-HS core software is notified
of the suspend condition via the transition of the SUSP bit in the PORTSC1 register.
Optionally an interrupt can be generated which is controlled by the port change Detect