Problem with usbd_setup_interrupt for OUT Endpoints

Hallo,

we have developed a USB hardware with our own firmware. This firmware use among other Endpoint a USB Interrupt OUT Endpoint. So I
use the usbd_setup_interrupt() function to prepare an OUT-Transfer but this produce an IN Token on the USB bus instead of the expect
OUT Token (we can see it with a USB Analyzer). If we switch on both sides to BULK Endpoints it works correct!



// if(usbd_setup_bulk ( pxCanUsbTab->ptUrbDataOUT, // Just for test! But it works!!!
if(usbd_setup_interrupt( pxCanUsbTab->ptUrbDataOUT, // An opaque handle from usbd_alloc_urb
URB_DIR_OUT, // flags
pxCanUsbTab->ptBuffDataOUT, //
ptCOATab->zCODataLength+CANUSBDATA_OVERHEAD) != EOK) //
{ //
fprintf( stderr, USB_ERR_MSG_7); //
} //



Is it a known problem?



Best regards,

Hermann Leenings

Hermann Leenings <Leenings.Hermann@scheidt-bachmann.de> wrote:

Hallo,

we have developed a USB hardware with our own firmware. This firmware use among other Endpoint a USB Interrupt OUT Endpoint. So I
use the usbd_setup_interrupt() function to prepare an OUT-Transfer but this produce an IN Token on the USB bus instead of the expect
OUT Token (we can see it with a USB Analyzer). If we switch on both sides to BULK Endpoints it works correct!



// if(usbd_setup_bulk ( pxCanUsbTab->ptUrbDataOUT, // Just for test! But it works!!!
if(usbd_setup_interrupt( pxCanUsbTab->ptUrbDataOUT, // An opaque handle from usbd_alloc_urb
URB_DIR_OUT, // flags
pxCanUsbTab->ptBuffDataOUT, //
ptCOATab->zCODataLength+CANUSBDATA_OVERHEAD) != EOK) //
{ //
fprintf( stderr, USB_ERR_MSG_7); //
} //



Is it a known problem?

This is a known problem that should be fixed in the latest DDK. What
is the date of your DDK?

Hi Kevin,

with the newest Beta USB-DDK works it correct!
Thank you!

Hermann



Kevin Chiles <kchiles@qnx.com> schrieb in im Newsbeitrag: 9bne38$dt7$1@nntp.qnx.com

Hermann Leenings <> Leenings.Hermann@scheidt-bachmann.de> > wrote:
Hallo,

we have developed a USB hardware with our own firmware. This firmware use among other Endpoint a USB Interrupt OUT Endpoint. So
I
use the usbd_setup_interrupt() function to prepare an OUT-Transfer but this produce an IN Token on the USB bus instead of the
expect
OUT Token (we can see it with a USB Analyzer). If we switch on both sides to BULK Endpoints it works correct!



// if(usbd_setup_bulk ( pxCanUsbTab->ptUrbDataOUT, // Just for test! But it works!!!
if(usbd_setup_interrupt( pxCanUsbTab->ptUrbDataOUT, // An opaque handle from usbd_alloc_urb
URB_DIR_OUT, // flags
pxCanUsbTab->ptBuffDataOUT, //
ptCOATab->zCODataLength+CANUSBDATA_OVERHEAD) != EOK) //
{ //
fprintf( stderr, USB_ERR_MSG_7); //
} //



Is it a known problem?

This is a known problem that should be fixed in the latest DDK. What
is the date of your DDK?