How to send Zero-Length packet?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi,

   

During a isochronous transfers, if there is no data during a USB microframe, how to send a Zero-Length packet?

   

Thanks,

   

Subbarao.

0 Likes
3 Replies
Anonymous
Not applicable

 Checkout the function of PKTEND# pin in CYUSB3014 datasheet.

0 Likes
Anonymous
Not applicable

 What NIKL said was for a Slave FIFO interface. However, if you have your own interface, you can just do a SetWrapUp() on the DMA channel to force the empty buffer to be committed. This will then send a zero length packet.

0 Likes
Anonymous
Not applicable

Hi,

   

Thanks for your reply.

   

I am not using GPIF interface in my FX3 project. I am using UVC ISOC example available in FX3 SDK examples.

   

In the example one transaction (CY_FX_EP_ISO_VIDEO_PKTS_COUNT = 0x01 )per micro frame is enabled, I have modified the example for 2 and 3 transactions per micro frame.

   

On host side I am using USBTrace software, to check the data coming from the device.

   

When CY_FX_EP_ISO_VIDEO_PKTS_COUNT set to 1, some of the USB packets doesn't have the data, so length of the USB packet is shown as "0" and status shown as SUCCESS (0x00).

   

But if CY_FX_EP_ISO_VIDEO_PKTS_COUNT set to either 2 or 3, if a USB packet doesn't have the data, length has shown as "0" and status shown as USBD_STATUS_XACT_ERROR (0xC0000011).

   

Here my question is that, why is this error occuring and how to avoid it?

   

Thanks

   

Subbarao.

0 Likes