I am presently working on a USBHS (device) driver and, after preparing first steps, I have quite a strange problem.
When I connect the USB (using an external transceiver for high speed operation) I get the standard reset, followed by a (successfull) high speed detection handshake, and then receive the GetDescriptor (first SETUP). An answer is prepared to be sent back when the next IN token arrives since its content is correct.
The problem is that, although the HS device has successfully received the SETUP token and data (which can be successfully interpreted), the USBHS device is not sending an ACK back to the host. Neither does it send NAKs back if the debugger is halted, where it would normally do since it has no buffer space to receive on endpoint 0.
What the host does in this circumstance is repeat the SETUP a couple of times, gives up and resets again.
I am correctly receiving all of the repeated SETUPs too!
The question is, why would the USBHS device neither ACK nor NAK? I find no settings to disable such operation; the receiver is obviously receiving the data correctly, but am puzzled what can be wrong to make it behave like this?
Has anyone an idea what could be going wrong?