AnsweredAssumed Answered

USB FS IN Transfer

Question asked by xol.xol on Jan 5, 2014
Latest reply on Jan 15, 2014 by dmitriev.ivan.001
Hi,
I'm reaching Control Pipe IN Timeout indication in DIEPINT0.TOC :
Bit 3 TOC: Timeout condition
Applies only to Control IN endpoints.
Indicates that the core has detected a timeout condition on the USB for the last IN token on
this endpoint.


What exactly this timeout is? Does it mean that TxFIFO is empty while IN token received from Host? If yes how long this timeout is?

I'm tying to send more then 64 bytes IN data - let's say 100bytes. To do it I write 100 bytes to TxFIFO, and fill
DIEPTSIZ.XFRSIZ = 100
DIEPTSIZ.PKTCNT = 2

But it turns out that core does not send two packets (64 and 36 bytes) but stops after first 64 bytes IN transfer. Why?
How in this case DIEPTSIZ XFRSIZ and PKTCNT should be used?
I looked at the USB sample code from ST and they are using only PKTCNT=1 and XFRSIZ<=64. They also fill TxFIFO with no more then 64 bytes.
If this is the right way to make IN transfer what are all this nice control registers for? And why it is not clearly written in reference manual?
 


Outcomes