![FTDI FT51A Application Note Download Page 89](http://html1.mh-extra.com/html/ftdi/ft51a/ft51a_application-note_2341158089.webp)
Application Note
AN_289 FT51A Programming Guide
Version 1.0
Document Reference No.: FT_000962 Clearance No.: FTDI# 483
88
Copyright © 2015 Future Technology Devices International Limited
EP2
Endpoint
Configurati
on Mode
Endpoint
Index
(EPI)
Endpoint
Direction
Transfer Type
Max Packet
Size
0
(default)
4
5
OUT
IN
Bulk/Interrupt
Bulk/Interrupt
64
64
1
4
OUT
Isochronous
128
2
5
IN
Isochronous
128
3
4
5
OUT
IN
Isochronous
Isochronous
64
64
Table 2.114 Endpoint Configuration for EP2
As the primary endpoint, EP2 is suitable for transmitting or receiving relatively large data. To
improve the data throughput, EP2 is implemented with double buffering. This allows concurrent
access by the USB bus and the FT51A core. For example, for EP2 IN endpoint (EPI5), the USB
host can read data from Buffer 0 while the FT51A core is writing to Buffer 1. The USB host can
subsequently read from Buffer 1 without waiting for it to be filled. Buffer switching is handled
automatically by the USB Full Speed device controller.
2.11.1.2
Endpoint Buffer Management in Enhanced Mode
In enhanced mode, the USB Full Speed device controller supports a dedicated 1 kB buffer for IN
packets and a dedicated 1 kB buffer for OUT packets. The OUT/IN buffer can be allocated to any
endpoint with the same direction, up to a maximum of 504 bytes double buffered (1008 bytes in
total) to one endpoint. 504 is the maximum byte count as there are 1024 bytes in total per
OUT/IN Buffer and 8 bytes for IN and OUT packets on control endpoint 0 must always be reserved.
Control, interrupt and bulk endpoints can have a maximum packet size of 64 bytes and only
isochronous endpoints can be allocated more than 64 bytes.
Isochronous modes can have larger buffer sizes as USB packets can be larger than 64 bytes for
isochronous transfers. The isochronous buffer is managed in the same way as bulk, interrupt and
control buffers – i.e. a buffer is for one USB packet only and will not span more than one USB
packet.
An example of buffer configurations follows, where Configuration 1 and 2 have larger isochronous
buffers. In this example, each row indicates a buffer of 64 bytes - control endpoints are therefore
64 bytes.