Fifo management, Figure 16.3. usb fifo allocation, Fifo split mode – Silicon Laboratories C8051F347 User Manual

Page 167

Advertising
background image

Rev. 1.3

167

C8051F340/1/2/3/4/5/6/7/8/9/A/B/C/D

16.5. FIFO Management

1024 bytes of on-chip XRAM are used as FIFO space for USB0. This FIFO space is split between
Endpoints0-3 as shown in Figure 16.3. FIFO space allocated for Endpoints1-3 is configurable as IN, OUT,
or both (Split Mode: half IN, half OUT).

Figure 16.3. USB FIFO Allocation

16.5.1. FIFO Split Mode

The FIFO space for Endpoints1-3 can be split such that the upper half of the FIFO space is used by the IN
endpoint, and the lower half is used by the OUT endpoint. For example: if the Endpoint3 FIFO is configured
for Split Mode, the upper 256 bytes (0x0540 to 0x063F) are used by Endpoint3 IN and the lower 256 bytes
(0x0440 to 0x053F) are used by Endpoint3 OUT.

If an endpoint FIFO is not configured for Split Mode, that endpoint IN/OUT pair’s FIFOs are combined to
form a single IN or OUT FIFO. In this case only one direction of the endpoint IN/OUT pair may be used at
a time. The endpoint direction (IN/OUT) is determined by the DIRSEL bit in the corresponding endpoint’s
EINCSRH register (see SFR Definition 16.20).

Endpoint0

(64 bytes)

Configurable as

IN, OUT, or both (Split

Mode)

Free

(64 bytes)

0x0400

0x043F

0x0440

0x063F

0x0640

0x073F

0x0740

0x07BF

0x07C0

0x07FF

User XRAM

(1024 bytes)

0x0000

0x03FF

USB Clock Domain

System Clock Domain

Endpoint1

(128 bytes)

Endpoint2

(256 bytes)

Endpoint3

(512 bytes)

Advertising
This manual is related to the following products: