
Chapter 8. Access to Endpoint Buffers Page 8-1
Chapter 8 Access to Endpoint Buffers
8.1 Introduction
USB data enters and exits FX2 via endpoint buffers. In order to keep up with the high-speed 480
megabit/second transfer rates,
external logic usually reads and writes this data by direct connec-
tion to the endpoint FIFOs without any participation by the FX2’s CPU.
Chapter 9, "Slave FIFOs" and Chapter 10, "General Programmable Interface (GPIF)" give details
about how external logic directly connects to the large endpoint FIFOs.
When an application requires the CPU to process the data as it flows between external logic and
the USB — or when there
is
no external logic — firmware can access the endpoint buffers either as
blocks of RAM or (using a special auto-incrementing pointer) as a FIFO.
Even when external logic or the built-in General Programmable Interface (GPIF) is handling high-
bandwidth data transfers through the four large endpoint FIFOs without any CPU intervention, the
firmware has certain responsibilities:
• Configure the endpoints.
• Respond to host requests on CONTROL endpoint zero.
• Control and monitor GPIF activity.
• Handle all application-specific tasks using its USARTs, counter-timers, interrupts, I/O pins,
etc.
8.2 FX2 Large and Small Endpoints
FX2 endpoint buffers are divided into “small” and “large” groups. EP0 and EP1 are small, 64-byte
endpoints which are accessible only by the CPU; they can’t be connected directly to external logic.
EP2, EP4, EP6 and EP8 are large, configurable endpoints designed to meet the high-bandwidth
requirements of USB 2.0. Although data normally flows through the large endpoint buffers under
Komentarze do niniejszej Instrukcji