Figure 20-2. Endpoint activation flow:
Endpoint
Activation
Select the endpoint
Activate the endpoint
UENUM
EPNUM=x
EPEN=1
Configure:
UECFG0X
EPDIR
EPTYPE
...
- the endpoint direction
- the endpoint type
- the Not Yet Disable feature
Configure:
- the endpoint size
- the bank parametrization
Allocation and reorganization of
the memory is made on-the-fly
UECFG1X
ALLOC
EPSIZE
EPBK
Test the correct endpoint
configuration
CFGOK=1
No
Yes
Endpoint activated
ERROR
As long as the endpoint is not correctly configured (CFGOK cleared), the hardware does not
acknowledge the packets sent by the host.
CFGOK will not be set if the Endpoint size parameter is bigger than the DPRAM size.
A clear of EPEN acts as an endpoint reset (see Section 20.3, page 196 for more details). It also
performs the next operation:
• The configuration of the endpoint is kept (EPSIZE, EPBK, ALLOC kept)
• It resets the data toggle field.
• The DPRAM memory associated to the endpoint is still reserved.
See Section 19.6, page 190 for more details about the memory allocation/reorganization.
20.7 Address Setup
The USB device address is set up according to the USB protocol:
• the USB device, after power-up, responds at address 0
• the host sends a SETUP command (SET_ADDRESS(addr)),
• the firmware records that address in UADD, but keep ADDEN cleared,
• the USB device sends an IN command of 0 bytes (IN 0 Zero Length Packet) to acknowledge
the transaction,
• then, the firmware may enable the USB device address by setting ADDEN. The only
accepted address by the controller is the one stored in UADD.
ADDEN and UADD shall not be written at the same time.
UADD contains the default address 00h after a power-up or an USB reset.
198
AT90USB82/162
7707D–AVR–07/08