(over EP0-IN) such information as what device driver to load, how many endpoints it has,
its different configurations, alternate settings it may use, and informative text strings about
the device.
The EZ-USB core provides a special Setup Data Pointer to simplify 8051 service for
Get_Descriptor requests. The 8051 loads this 16-bit pointer with the beginning address of
the requested descriptor, clears the HSNAK bit (by writing “1” to it), and the EZ-USB
core does the rest.
SETUP Stage
S
E
T
U
P
D
A
T
A
0
C
R
C
1
A
D
D
R
E
N
D
P
C
R
C
5
8 bytes
Setup
Data
A
C
K
SETUPDAT
8 RAM
bytes
6
Token Packet
Data Packet
H/S Pkt
SUDAV Interrupt
DATA Stage
D
D
A
T
A
C
R
C
1
C
R
C
1
A
D
D
R
E
N
D
P
C
R
C
5
A
E
N
D
P
C
R
C
5
A
T
A
1
A
C
K
A
C
K
I
N
Payload
Data
I
N
D
D
R
Payload
Data
0
6
6
Data Packet
Token Packet
Data Packet
Token Packet
H/S Pkt
H/S Pkt
EP0IN
EP0IN
Interrupt
Interrupt
STATUS Stage
SUDPTRH/L
D
A
T
A
1
C
R
C
1
A
D
D
R
E
N
D
P
C
R
C
5
64 bytes
O
U
T
A
C
K
27 bytes
6
Token Packet
Data Pkt H/S Pkt
Figure 7-5. Using the Setup Data Pointer (SUDPTR) for Get_Descriptor Requests
Figure 7-5 illustrates use of the Setup Data Pointer. This pointer is implemented as two
registers, SUDPTRH and SUDPTRL. Most Get_Descriptor requests involve transferring
more data than will fit into one packet. In the Figure 7-5 example, the descriptor data con-
sists of 91 bytes.
EZ-USB TRM v1.9
Chapter 7. EZ-USB CPU
Page 7-13