Hi everybody!
Do you know if there any known issues with zero lenght packet and Windows XP SP2 EHCI controller (Intel) driver?
I’m using Cypress FX2LP and with slave FIFO. When master fills FIFOs ISO packets are correct! I master stops filling the FIFOs I start getting USBD_STATUS_XACT_ERRORs from the controller (while FX2LP should go on sending ISO packets - ZLP of course).
Please note that this only occurs if I send more than 1 packet/microframe (eg. 3pkts/uframe). If I send only one packet per microframe I get no errors.
Thank you in advance!
Giorgio
xxxxx@gmail.com wrote:
Hi everybody!
Do you know if there any known issues with zero lenght packet and Windows XP SP2 EHCI controller (Intel) driver?
I’m using Cypress FX2LP and with slave FIFO. When master fills FIFOs ISO packets are correct! I master stops filling the FIFOs I start getting USBD_STATUS_XACT_ERRORs from the controller (while FX2LP should go on sending ISO packets - ZLP of course).
Please note that this only occurs if I send more than 1 packet/microframe (eg. 3pkts/uframe). If I send only one packet per microframe I get no errors.
Does it not recover from this? USBD_STATUS_XACT_ERROR is a recoverable
error. If you go on submitting packets, it should pick up again.
You are setting up the EPxISOINPKTS register to match the number of
packets per microframe?
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Hi Tim,
it recovers from the error. I would like if is it normal to get this error while sending 3 packets in the correct PID order (even if they are empty packets).
I set up EPxISOINPKTS register correctly!
Thank you Tim for your support!
Giorgio
Tim,
another clue to solve the issue: actually I’ve no idea if ZLP are sent by the FX2LP. Is there any settings to enable zero length packets or is it automatic?
Thank you!
Giorgio
xxxxx@gmail.com wrote:
Hi Tim,
it recovers from the error. I would like if is it normal to get this error while sending 3 packets in the correct PID order (even if they are empty packets).
If you send an empty packet in response to the first packet, you won’t
get tokens for the next two. The three-transfers-per-microframe thing
are all treated as if they were one packet, so a short (or empty) packet
ends your turn for that whole microframe.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.