Our customer SIGMATEK wants to implement USB Control Transfers on the LPC1347.
This works nice as long as they have a data length of less than 64 or more than 64 Bytes.
If the data length is exactly 64 Bytes (or a multiple of 64 bytes) then this does not work anymore.
What do they need to do to get this working??
Regards,
Peter
Hello,
When USB data payloads equal an exact multiple of the endpoint's maximum packet size (64 bytes for Full-Speed), the receiver hangs because there is no short packet to signal the end of the transfer; to fix this on the LPC1347, SIGMATEK must check if the payload length is a non-zero multiple of 64 and, if so, manually send a Zero-Length Packet (ZLP) with a length of zero right after the main data block to flush the buffer, signal completion, and successfully terminate the transfer.
Best Regards