I have read USB ep0 (control endpoint) data transfer limit is 64 bytes, it can still transfer larger data sizes such as 128 or even 256 bytes?. Is the 64 byte limit an hardware limit or a software limit?. How it can still transfer larger data sizes?.
1. Why would you want to transfer larger control packets than 64 byte?
2. Even if the packet size is limited, e.g. communication device class uses 64 byte for data-in and data-out endpoints by default, you can still split large data blocks over multiple packets.
Tested it by transferring more than 64 bytes, sent once 128 bytes and second time 256 bytes. It worked. Based on the descriptor file, the limit is 64 bytes. But still can transfer larger sizes. tried it with one of the cypress's old MCUs, fx1 or fx2. Now sure if that 64 byte limit is for the software or the hardware.