Hi,
I need to send back NAK on a usb host bulk endpoint request.
Yet I cannot find any relevant function in the new CLS2.10 of the C55x5 cpu.
Can anyone help me on this?
How can I send a NAK from the C5515 USB to a host request?
Christos
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
I need to send back NAK on a usb host bulk endpoint request.
Yet I cannot find any relevant function in the new CLS2.10 of the C55x5 cpu.
Can anyone help me on this?
How can I send a NAK from the C5515 USB to a host request?
Christos
Just to make it clear, I need to send NAK on a OUT endpoint to a host OUT request.
This is standard USB functionality but from what I've seen so far it is not covered in the CSL 2.10.
Yet it is not even mentioned in the SPRUGH9 "TMS320C5515 DSP Universal Serial Bus 2.0 (USB) Controller User's Guide".
I'm confident that the Mentor USB peripheral should have it, so I wonder if is it something that I just overlooked or is the document missing this information?
Christos
Hi,
Can someone from T.I. please see to this.
There is no reference in the TMS320C55x5 USB guide SPRUGH9 on any usb register that the usb peripheral can send NAK to a host OUT request. Yet this is a standard usb function but its not in the USB user guide.
Can someone tell us how to do that NAK replying to a OUT host request?
I apologize in advance if I am speaking out of turn here, but...
Why would you want to control the ACK/NAK response yourself? If you are using a buffered endpoint, I expect the peripheral to automatically ACK the OUT if there is adequate buffer space to hold the payload and the CRC validation passes. Likewise if either of those conditions fail, it will automatically NAK it so that the host can resend.
In some of the older, non-buffered processors you simply didn't register a receive buffer if you wanted it to NAK incoming transactions.
I'm just trying to understand why you feel you need to NAK a valid received payload.
Hi Gary,
If the situation is as you mention, then there is no problem.
Yet what I see with a S/W USB monitor is that there is no NAK going back to the host nomatter what the FIFO status is, so even if the FIFO is full there is no NAK going back on a OUT request thus the host times-out the request and an error condition arises.
So I hoped that I could manually address it.
Even though if it is like what you mention, I expected to see that on the user guide yet there is no reference of automatic NAK reply based on the FIFO status. If that is so, then I guess the doc needs updating (and me to investigate further why I have that issue).
The only reference that I've seen is on the (840Eh) INDEX_TESTMODE register whereas the controller can reply a NAK on the next IN request.
Christos
I have used the USB peripheral on the C5504, VC5505 and C5515 and IIRC all have behaved as I described. Unfortunately, I can't be much help with checking your CSL configuration - I haven't used CSL in a project since 2006 with the 5509A, and I'm sure it has evolved a bit since then. If you phrase your question as one of CSL USB configuration, I'm sure there are plenty of forum members that would be happy to help you out. I based my current USB code loosely off one of the Spectrum Digital USB samples for the USBSTK5515.
Are you having this problem on the control endpoint, or on an endpoint that you have created/defined?
The endpoints are bulk endpoints.
Your point of NAK based on FIFO status was also communicated to me by T.I. regarding that issue.
I'll see again if my tracing lacks something or if I miss something obvious here.
And yes, the USB implementation is entirely on the CSL 2.10.
Forgot also to mention that the testcase for which I have this issue is with
HighSpeed endpoints and the FIFO is handled from the USB CDMA.
When not in error condition it achieves a total of ~15MByte/sec (7.5MB IN, 7.5MB OUT)
Happy New Year to all,
After the holiday season with lots of wishes to all, I'm coming back to this issue as it is still troubling me.
Is there a way for the C5515 USB controller to send a NAK on the next incoming OUT host request?
To recap, there is documentation for a register bit for sending NAK to the next incoming IN host request, but not for OUT.
Also tested and see that if FIFO is full and CDMA/QM is left without new buffer, it does not send a NAK back in the next OUT host request, it raises an overrun error condition in PERI_RXCSR register.
So the question remains, how can I send a NAK on the next incoming OUT host request?
Any help appreciated.
Christos
I'm getting a bit desperate here and I need to solve this.
Can anyone please help on how to send on C5515 MUSB device a NAK on the next incoming host OUT request?