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.

StarterWare USB questions

Other Parts Discussed in Thread: OMAPL138, OMAP-L138

Hi,

I am using StarterWare to design a usb Bulk device driver with OMAPL138 LCDK. I looked though http://processors.wiki.ti.com/index.php/StarterWare_USB and Stellaris USB library(spmu020o). I have some questions.

1. what is the difference between StarterWare and stellaris? Which library should I select?

2. I assume that an application needs to configure the speed and clock. But from examples of Generic Bulk Device Class,I can't find how to setup these parameters.

3. What is the advantage and disadvantage of USB buffer? For function USBDBulkPacketRead(void *pvInstance, unsigned char* pcData, unsigned long ulLength, tBoolean bLast), what kind of the buffer *pcData is? Does it have to be an USB buffer?

Any suggestion is appreciated.

Jian

 

  • Hi Jian,

    Thanks for the post.

    Jian: said:

    1. what is the difference between StarterWare and Stellaris? Which library should I select?

    Starterware:

    StarterWare is a free software development package that provides no-OS platform support for ARM and DSP TI processors. StarterWare includes Device Abstraction Layer (DAL) libraries and example applications that demonstrate the capabilities of the peripherals on the TI processors. StarterWare also provides pre-built binaries for quick evaluation on the target.

    Starterware USB Stack:

    The StarterWare USB stack is an OS-independent USB solution that is migrated from the StellarisWare.

    Refer below link for Comparison to StellarisWare USB:

    http://processors.wiki.ti.com/index.php/StarterWare_USB#Comparison_to_StellarisWare_USB

    Download and use the StarterWare package Version 01.10.04.01 for OMAP-L138 from below wiki link.

    http://processors.wiki.ti.com/index.php/StarterWare

    Jian: said:

    2. I assume that an application needs to configure the speed and clock. But from examples of Generic Bulk Device Class,I can't find how to setup these parameters.

    Are you looking for CPU Speed and clock cofigurations?

    This will be done on gel files. Those gel files will initialize the CPU speed and clock during target connect.

    Jian: said:

    3. What is the advantage and disadvantage of USB buffer? For function USBDBulkPacketRead(void *pvInstance, unsigned char* pcData, unsigned long ulLength, tBoolean bLast), what kind of the buffer *pcData is? Does it have to be an USB buffer?

    The USB buffer is a Ring buffer. The pointer pcData is pointing to that. The usb_bulk_dev (Bulk device) uses the ring buffer implementation available in stack. Please refer the usb_dev_msc(mass storage class) which does not use the ring buffer. The complete source is available with StarterWare package, so you can customize the stack/design as per requirement.

  • Hi Rajasekaran,

    Thank you very much for your reply. I appreciate it.

    For question 2, the clock I mentioned is reference clock for USB internal PLL. For instance, usb reference clock can be sourced from AUXCLK of system PLL. I want to know how to configure the usb reference clock using StarterWare.

    Best,

    Jian 

  • Hi Jian,

    Thanks for the post.

    Please refer the function USBDCDInit() in usbdenum.c for USB controller clock configuration. 

    if(g_eUSBMode == USB_MODE_DEVICE)
        {
            //
            // Enable Clocking to the USB controller.
            //
    	
    		USBModuleClkEnable(ulIndex, USB0_BASE);
    
    		USBReset(USB_0_OTGBASE);
    		//
            // Turn on USB Phy clock.
            //
            UsbPhyOn();
        }
  • Hi Rajasekaran,

    Thank you very much for the reply. I appreciate it.

    Best,

    Jian