Hi.
There is quite some confusion with doing USB transfers correctly using C5515 (ezdsp kit) and CSL. In the help for CSL_confDmaTx there is the example:
#define CSL_USB_DATA_SIZE (256)
Uint16 usbDataBuf[CSL_USB_DATA_SIZE];
CSL_UsbHostPacketDescriptor hpdtx;
USB_initDma();
USB_initQueueManager(&hpdrx);
....
....
USB_confDmaTx(&hpdrx, CSL_USB_DATA_SIZE, usbDataBuf);
and for the 2nd parameter of confDmaTx there is the explanation: packetsize - Size of the packet to transmit (In Bytes).
But here CSL_USB_DATA_SIZE=256 bytes but usbDataBuf is 512 bytes?!? So how do I know what data is transmitted - is it the first half of usbDataBuf or is it 256 times the lower 8 bits in usbDataBuf, or the higher bits.
In my application I want to transmit 512 byte packets. I've copied some parts of the USB-DMA example code and adapted them for having wMaxPacketSize=512 bytes. I also have something like Uint16 my_usbDataBuf[512]; even if this is 1024 bytes. I've filled the buffer bytewise such that only the first half of my_usbDataBuf is filled with data. But in the end when I execute USB_confDmaTx and analyse USB communication with usblyzer, I realize that only 256 bytes are transmitted!
I guess there is another bug in the C55x-lowpower CSL with respect to this one? Or did I really miss something this time?