Trying to transfer multiple packets each of max packet size

Problem : Trying to transfer multiple packets each of max packet size ( namely the max packet size of control end point is 64 Bytes. i need to transfer 64,

128, etc…).

The operation is performed by doing a loopback using the control end point.
1 > In the first iteration we sent 128 bytes of data using OUT packet to the device from the host and we succefully received the Zero length IN packet from

the device to the host. This completes one set up ,data ,ack phase.
After that we received the setup packet for IN packet containing the 128 bytes of data and then an Zero length packet has been sent from the host to device. This completes the ACK phase. The total transactions are completed successfully.

2 > In the second iteration every thing went fine till the first transaction completes. In the second transaction of the IN phase instead of obtaining the data from the device we are obtaing a zero length packet.

I am not able to justify what could be the problem. If this is not apt place to discuss please let me know the correct forum in which i can discuss.

Thanks,
Sudhakar.

Actually it is a issue with the device code. In the device side the zero length termination is enabled so the device is expecting a zero length termination for multiples of max packet size data transfers.
After disabling the zero length termination the problem was solved.

This is for information sharing sorry if i have discussed it wrongly here.
Thanks,
Sudhakar

Vamsi Sudhakar wrote:

Actually it is a issue with the device code. In the device side the zero
length termination is enabled so the device is expecting a zero length
termination for multiples of max packet size data transfers.

Make sure you leave it enabled for IN transfers – the Windows-side code will expect it when a transfer ends on a packet-size boundary.

xxxxx@yahoo.co.in wrote:

Actually it is a issue with the device code. In the device side the zero length termination is enabled so the device is expecting a zero length termination for multiples of max packet size data transfers.
After disabling the zero length termination the problem was solved.

However, allow me to point out that the kind of operation you are
describing here would be better suited for bulk pipes. Control pipes
have much more overhead than bulk pipes. Control pipes are designed for
one-time things like setting register values and reading status. Bulk
pipes are designed for transferring data streams, as you have described
here.

This is for information sharing sorry if i have discussed it wrongly here

I think this was exactly the right place.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.