Bulk endpoint buffer size: Setting of SIZE  bit in EPxCFG for a bulk endpoint

Question: Is it valid to set the size of a Bulk endpoint as 1024?



For a bulk endpoint the FIFO buffer size needs to be set to 512  bytes and not 1024 bytes. This is done  by setting the SIZE  bit in the EPxCFG  register to 0. As per  USB 2.0 spec the  maximum packet size of a bulk endpoint is restricted to 512 bytes and  the data is transferred over USB in packets of 512 bytes maximum.  So, in order to maintain  conformity, the endpoint size in the FX2LP must be configured for 512  bytes. 

 Hence if you set the bulk endpoint to be  of size1024 bytes only the first 512 bytes will be used per buffer and the rest of the buffer will be unused.  So to avoid the wastage and  maintain conformity,  the bulk endpoint MUST  be set  to 512  bytes only.