Hi
When there is no ACK from the host the USB controller automatically resends the data.
I have never seen it happen, but I believe that the BTOERR flag is set in this case becasue it will be set whenever there is a 16 bit delay between the IN TOKEN and the ACK.
It is highly unlikely that the problem will be due to the host not being ready since the host is controlling this in its HW controller and will not have sent an IN if not ready. More likely is a corruption due to noise/interference.
When testing USB connection in the presence of noise/interference the first thing that is seen is that the device will receive CRC errors (CRC16 for data or CRC5 for token packets). There are signalled by CRC16 and CRC5EOF in the ERRSTAT register. These can also be detected by enabling their interrupt sources.
Generally it would be advisable to monitoir the CRC errors as higher priority to turnaround errors since they are the ones that will better detect a connection prone to interference since it will be detecting every USB host IN token that failed - the turnaround error is probably a consequence of the poor connection quality and will only occur when the device actually sends data back in response to the IN token (which is usually a small percentage of the IN tokens).
Regards
Mark