08.06.2013 Views

C8051F326/7 - Silicon Labs

C8051F326/7 - Silicon Labs

C8051F326/7 - Silicon Labs

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

12.5. FIFO Management<br />

<strong>C8051F326</strong>/7<br />

256 bytes of on-chip XRAM are used as FIFO space for USB0. This FIFO space is split between Endpoint0<br />

and Endpoint1 as shown in Figure 12.3. FIFO space allocated for Endpoint1 is split into an IN and an OUT<br />

endpoint.<br />

0xFF<br />

0xC0<br />

0xBF<br />

0x00<br />

0x03FF<br />

0x0000<br />

12.5.1. FIFO Split Mode<br />

Figure 12.3. USB FIFO Allocation<br />

The FIFO space for Endpoint1 is split such that the upper 64 bytes of the FIFO space is used by the IN<br />

endpoint, and the lower 128 bytes is used by the OUT endpoint.<br />

The FIFO space for Endpoint0 is not split. The 64 byte FIFO space forms a single IN or OUT FIFO.<br />

Endpoint0 can transfer data in one direction at a time. The endpoint direction (IN/OUT) is determined by<br />

the DIRSEL bit in the corresponding endpoint’s EINCSRH register (see Figure 12.20).<br />

12.5.2. FIFO Double Buffering<br />

The Endpoint1 FIFO can be configured for double-buffered mode. In this mode, the maximum packet size<br />

is halved and the FIFO may contain two packets at a time. This mode is only available for Endpoint1. Double<br />

buffering may be enabled for the IN Endpoint and/or the OUT endpoint. See Table 12.3 for a list of<br />

maximum packet sizes for each FIFO configuration.<br />

Endpoint<br />

Number<br />

Endpoint0<br />

(64 bytes)<br />

IN (64 bytes)<br />

Endpoint1<br />

OUT (128 bytes)<br />

User XRAM<br />

(1024 bytes)<br />

Split Mode<br />

Enabled?<br />

USB Clock Domain<br />

System Clock Domain<br />

Table 12.3. FIFO Configurations<br />

Maximum IN Packet Size<br />

(Double Buffer Disabled /<br />

Enabled)<br />

Endpoint0 (IN/OUT)<br />

Control Endpoint<br />

Endpoint1 (Split IN/OUT)<br />

Maximum OUT Packet<br />

Size (Double Buffer Disabled<br />

/ Enabled)<br />

0 N/A 64<br />

1 Y 64 / 32 128 / 64<br />

Rev. 1.1 95

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!