As Figure 7-4 illustrates, the 8051 responds to the SUDAV interrupt by decoding the eight
bytes the EZ-USB core has copied into RAM at SETUPDAT. The 8051 answers a
Get_Status request (bRequest=0) by loading two bytes into the IN0BUF buffer and load-
ing the byte count register IN0BC with the value “2.” The EZ-USB core transmits these
two bytes in response to an IN token. Finally, the 8051 clears the HSNAK bit (by writing
“1” to it) to instruct the EZ-USB core to ACK the status stage of the transfer.
The following tables show the eight SETUP bytes for Get_Status requests.
Table 7-3. Get Status-Device (Remote Wakeup and Self-Powered Bits)
Byte
0
Field
bmRequestType
bRequest
wValueL
Value
Meaning
8051 Response
0x80 IN, Device
1
0x00 “Get Status”
Load two bytes into IN0BUF
2
0x00
3
wValueH
0x00
Byte 0 : bit 0 = Self Powered bit
: bit 1 = Remote Wakeup
Byte 1 : zero
4
wIndexL
0x00
5
wIndexH
0x00
6
wLengthL
wLengthH
0x02 Two bytes requested
7
0x00
Get_Status-Device queries the state of two bits, Remote Wakeup and Self-Powered. The
Remote Wakeup bit indicates whether or not the device is currently enabled to request
remote wakeup. Remote wakeup is explained in Chapter 11, "EZ-USB Power Manage-
ment." The Self-Powered bit indicates whether or not the device is self-powered (as
opposed to USB bus-powered).
The 8051 returns these two bits by loading two bytes into IN0BUF, and then loading a
byte count of two into IN0BC.
Table 7-4. Get Status-Endpoint (Stall Bits)
Byte
0
Field
bmRequestType
bRequest
wValueL
Value
Meaning
8051 Response
Load two bytes into IN0BUF
Byte 0 : bit 0 = Stall bit for EP(n)
Byte 1 : zero
0x82 IN, Endpoint
0x00 “Get Status”
0x00
1
2
3
wValueH
0x00
4
wIndexL
EP Endpoint Number
0x00
EP(n):
5
wIndexH
0x00-0x07: OUT0-OUT7
6
wLengthL
wLengthH
0x02 Two bytes requested 0x80-0x87: IN0-IN7
7
0x00
Page 7-8
Chapter 7. EZ-USB CPU
EZ-USB TRM v1.9