Incomplete data transfer

Question: I'm transferring a large block of data that takes multiple transactions to complete. The data appears to transfer correctly but the host does not seem to receive the data. What could be the problem?



In an IN transfer involving more than one packet, if the device has lesser data than requested by the host, the device has to send a partial packet or a zero length packet as the last packet. This will inform the host that the device does not have any more data for that particular transfer.

Here the most possible cause of this problem is that the data sent by the device for this particular transfer is a multiple of the maximum packet size of that endpoint and the device is not a sending a zero length packet to inform the host that it does not have any more data for this particular transfer.