I have an application with a K60 operating as a full-speed host, and have a question about the RETRYDIS bit in the USB0_ENDPT[0] register. Using the default value, 0, SETUP, IN, and OUT transactions operate normally. I would like to set this bit to allow the application to determine the response to NAKs according to the token PID. Specifically, NAKs are not permitted in response to a SETUP token, so instead of a hardware retry as would occur with RETRYDIS clear, the application will interpret a NAK as a failure without any reattempts. The problem I am encountering is the PID value returned in the buffer descriptor's TOK_PID[n] field during an IN transaction. During a IN transaction, the host generates the handshake, and a host is never permitted to generate a NAK or STALL, so I am assuming the only possible values of TOK_PID[n] after an IN transaction are DATA0, DATA1, timeout, and data error, however, I'm getting a NAK. If RETRYDIS is left clear, the same transaction works properly.
Thank you,
Jason Valenzuela
Hi Jason,
It is possible for the Host to have NAK during IN transaction. Please kindly refer to the following for details.
Hope that helps,
Have a great day,
Kan
NXP Technical Support
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------