I am working on a prototype with the above controller in device mode. I have no problem transferring packets smaller than 64Bytes; but I am having trouble with packets larger than 64 bytes, the size of the end point FIFO buffer.
Currently I simply chop up the data I want to send in 64 byte chunks + any remaining bytes and then send them out by writing to the endpoint and then validating the buffer.
Let's say we have 75 bytes of data we want to send, the correct way would be sending 2 bulk packets of data, the first packet containing64 bytes and the second, 11 bytes.
Somehow, I am getting an additional Transfer that I cannot account for in USB packet analysis. ie. Follwing the above example, I will get 64,11 and then the previous 64 bytes.
I am not sure what might cause this problem but I think the problem lies with validating the FIFO buffer, perhaps the buffer isn't clean on the second transfer?