Universal Serial Bus OTG Controller
UG0331 User Guide Revision 15.0
298
For all cases shown in the preceding table in which the USB controller responds (no timeout occurs), an
LPM interrupt is generated in LPM_INTR_REG (
Note:
The USB controller responds with an ACK only if there is no data pending in any of the transmit endpoint
FIFOs. If there is data pending, the USB controller responds with a NYET.
Once an LPM transaction is successfully received, three events occur:
1.
is updated with values received in the LPM transaction. The fields
in this register are as follows:
•
LinkState:
This field tells the USB controller what state to transition to. The only valid value for
this field is 4’h1, indicating that the core should suspend. For any other value, the USB
controller responds with a STALL, and the appropriate interrupt will be generated. However, in
this case the LPM_ATTR_REG is updated so that software can observe the non-compliant LPM
packet payload. In addition, the LPMERR interrupt set in
is also generated, informing software of the non-compliant
LPM transaction.
•
HIRD:
This field let the USB controller know the minimum duration that the host drives resume
signaling on the bus. This field represents a resume duration range from 50 µs to 1200 µs. This
value may be different for subsequent LPM transactions.
•
RmtWak:
This is a 1-bit field indicating whether the remote wake-up by the USB controller is
allowed. This bit applies to the current suspend/resume cycle only. This bit may be different for
subsequent LPM transactions. This bit should not supersede the wake-up capability that was
previously negotiated on enumeration of the USB controller.
2.
The USB controller suspends 9 µs after transmitting the ACK. Resume signaling can be driven by
the host or the USB controller 50 µs after this event. During this 9 µs interval, the host may continue
to transmit the LPM transaction. The USB controller responds with an ACK in this case, regardless
of the LPMXMT value in
LPM_CTRL_REG (0x40043362)(Peripheral)
.
3.
An interrupt is generated, informing software of the response (an ACK in this case). An ACK
response is the indication to the software that the USB controller has suspended.
Since the primary purpose of LPM is to save power, the software will read the
to determine the attributes of the suspend mode. The software must make a determination
based on these attributes whether additional power savings in the system can be exploited.
Note:
If the host initiates resume signaling, the USB controller is required to respond to the packet
transmissions within the time specified by HIRD + 10 µs.
•
Resume Signaling Occurs on the Bus:
When the host resumes the bus, it drives resume signaling
for a minimum time specified by the HIRD field in
. The USB
controller must be able to respond to traffic within the time HIRD + 10 µs. The USB controller
transitions to a normal operating state automatically and a resume interrupt is generated in
LPM_INTR_REG (0x40043364)(Peripheral Mode)
. However, for this to occur, the inputs CLK and
XCLK must be available. To facilitate the resume timing requirement, an additional feature,
LPMNAK, is provided in
LPM_CTRL_REG (0x40043362)(Peripheral)
. If LPMNAK is set to 1, all
endpoints respond to any transaction (other than an LPM) with a NAK. This bit only takes effect after
the USB controller has LPM suspended. Typically, this bit would be asserted when the LPMXMT
field is also asserted. Using this feature may simplify the resume timing requirement because only
XCLK is needed for the USB controller to respond (with a NAK) to traffic. The software can continue
to restore the system to normal operation while the USB controller responds to all transactions with
a NAK. After the system has been completely restored, the software can then clear the LPMNAK
field in LPM_CTRL_REG.
1'b0
11
Don't Care
NYET
1'b1
Yes
NYET
1'b1
No
ACK
Table 193 •
Response to LPM Transaction as Peripheral
(continued)
LPMXMT
LPMEN
Data Pending (Data Resides in
Transmit FIFOs)
Response to the Next LPM
transaction