I am using an EVM3359 development board to develop code for a project. We are using Vendor Specific requests to transfer data back and forth on Endpoint 0. When I have a device to host transfer which has a data phase which is a multiple of 64 and I follow this request with a request with one for a host to device data transfer the second request produces a stall condition.
The setup packet of the second request arrives in the chip without a problem. The setup packet is acked and I receive an interrupt for EP0 indicating the data should have arrived but the rxPktRdy bit is not set indicating data is in the FIFO. It appears the chip is just eliminating the data packet.
I can get the chip to function correctly if the transfer size of the first request is not a multiple of 64 or if the second request doesn't have a data phase as part of the request.
Unfortunately the Host side software has been released with other products and can't be changed. So any help would be appreciated. This appears to be a hardware issue and not a software issue