This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Need improved CSL USB software

I have tested the CSL_usbintc_example from the C55xxCSL and find it lacking.  It does not recognize when the cable is removed or plugged in, it does not seem to respond to all the interrupt types.  The example is only meant to run the test and then quit.  I

It runs when I use the CSL project on its own.  But when I add it to my other project, it fails to respond even with the descriptor file.

s there a more complete usb initialization and usb_isr available from ti or elsewhere?

A B

 

 

  • Hi there,

    CSL_usbintc_example  is just a example program to show you how the interrupt mode is suppose to work. It does not handle all the USB bus events. If you want to see more complete USB examples check out csl_usb_msc_dma_example or csl_usb_msc_poll_example. They are showing how to use CSL to build a USB MSC device on SD card. You will need to put a SD or SDHC card in SD slot on EVM to be able to run the examples.

    Best regards,

    Ming

  • Ming,

    I have tested the csl_usbintc_example project with the C5505usbwin package that Brad sent me.  Our board was recognized by the ti driver and worked okay with the dm350_diag.exe gui except there was no documentation on how to use it (do you have instructions for the dm350_diag?).  The command structure shown in the example.c program is not what you get.

    We then integrated the example program into our project and cannot get it to be recognized by the ti driver.  I inserted some printf statements for diagnostics and found that it does not get the correct data from the endpoint 0 command used to ask for the vendor id and pid.  The interrupts worked and the driver attempts 3 times to connect, but fails.

    I figure that it has to be a build properties or some other environment condition.  I checked these and compared our project properties to the example properties.  About the only difference is the DSP bios and that the example was originally compiled in an older version of the CCSv4 (I am using version 4.1.1).

    It receives an endpoint 0 interrupt and command for the description buffer.  It reads the data, but the pRequest and wValue are wrong and I do not know where it is coming from.  Each word in the buffer is the same number, and repeats the same every time it tries to connect.

    Got any ideas.

    Thanks

    Allan

  • Hi Allan,

    The dm350_diag.exe is only a simple host program using the USB endpoint communication. The csl_usbintc_example is only a simple test for USB device application. It only opens the EP0(IN/OUT) for control EP1 (IN, port 0x01) for host to read data from device and EP2 (OUT, port 0x82) for host to write data to the device. Any other EPs will not working. The FIFO size is 64 byte, so do not wirte data bigger than 64 byte. all the numbers input for the dm350_diag.exe is in hex, so for the data size, use 40 instead of 64. The test sequence will be:

    1. write 64 bytes to port 0x01

    2. read 64 bytes from port 0x82

    repeat step 1-2

    The EP0 will be used by the USB enumeration.

    We found an error in the Code Generation Tool (CGT) version 4.3.3 -- 4.3.5. They will not work for the USB and MMCSD examples properly. I believe the CCS 4.1.1 is using CGT 4.3.5. You can find out your CGT version by

    CCS4.x --> Help --> Software Updates --> Manage Configuration

    You may need to download the CGT 4.3.6 (using software updates under help to do so).

    Look for the version for C5500 Code Generation Tool version.

    Best regards,

    Ming