Pedro
I don't use the Freescale USB stack so don't know full details about it but if I search through the code I find these:
__declspec (usb_bdt) static uint_8 g_Mem[BYTES_1024];
static void USB_Bus_Reset_Handler (void)
{
...
| /* Clear Memory for BDT and buffer Data */ |
| Clear_Mem((uint_8_ptr)g_bdtmap,(uint_32) BYTES_1024, (uint_8)0); |
/* Initialize BDT buffer address */
g_bdt_address = ((uint_32)g_bdtmap + BYTES_512);
...
}
It looks as though there is 1k of memory assigned for buffer descriptor use (usually ther are two buffer descriptors operating in ping-pong mode) and so that would give 512 bytes to each. Possibly there is some overhead which explains why you have a 480 byte limit but it seems likely that the buffer descriptor memory needs to be increased to be able to work with larger endpoint sizes.
Regards
Mark