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.

How to run USB_DEV_BULK example from StaterWare on TMDXLCDK138 (OMAP-L138 Development Kit (LCDK)) ?

Other Parts Discussed in Thread: OMAPL138, OMAP-L138, SW-USB-WINDRIVERS

Hi,

I'm able to compile and run the Usb_Dev_Bulk from OMAPL138_StarterWare_1_10_03_03 using CCS-v5.1 on TMDXLCDK138 (OMAP-L138 Development Kit (LCDK)).

But my Win XP SP3 does not able to detect the USB device correctly.

The steps of set up are below:

1) Debug the Usb_Dev_Bulk Project on the Device.

2) Windows XP SP3 detect it and name it "Unknown Device" under USB controller.

3) Try to download and install inf file from http://www.ti.com/tool/sw-usb-windrivers but still unable to install the driver.

Please advise what to debug/check/change?

Thank you very much.

 

  • Some guesses. Sometimes Windows will gets stuck with the incorrect driver bound to a device.

    1) Download the driver.
    The link is
    http://www.ti.com/tool/sw-usb-windrivers
    There will be folders of stuff. Keep them all. The key file is here:
    SW-USB-windrivers-6459\windows_drivers\usb_dev_bulk.inf
    It will refer to CoInstaller file in sub-folders.

    2) Check for WinUSB files:
    C:\WINDOWS\system32\winusb.dll
    C:\WINDOWS\system32\driverswinusb.sys
    If you don't see them, I think the install failed.

    3) Unplug the USB OTG port of the LCDK. The UART-USB port can remain connected. from Power up the LCDK and run the usb_dev_bulk via CCSv5.

    4) Plug in the USB OTG PORT. Open the Device Manager. You should see this entry:
    Stellaris Bulk Device
    ->Generic Bulk Device
    If it shows up as "Unknown Device" in Device Manager then you could try uninstalling it. Right click the entry in Device Manager and select "Uninstall". Unplug and plug in the USB OTG cable. Windows should offer to install a driver. Browse to the INF file in the driver folder noted above.

  • Hi Norman,

    I did the step 1). For step 2), my laptop just has winusb.dll and do not has driverswinusb.sys.

    May I know what need to be done to get this driverswinusb.sys file?

    Thank you very much for your idea.

  • Not sure. My PC has accumulated so much software over the years that any one of them might have installed those files. Some websites (via a Google search) would suggest that the WinUSB is inside the CoInstaller files in the driver folder. My guess is that Windows has associated the wrong driver for the USB PID/VID of the USB Dev Bulk device. Suggest trying the uninstall to break that associated and reinstall to hopefully associate the right driver. Another thought. Try a different cable or different USB port on your PC.

  • Hi Norman,

    I think there is typo on your item 2). Should be drivers\winusb.sys, not "driverswinusb.sys"

    Actually my laptop has both C:\WINDOWS\system32\winusb.dll and C:\WINDOWS\system32\drivers\winusb.sys on my Win XP laptop, but it still appear as "unknown device".

    After following all your 4 step, it still appear as "unknown device".

  • Hi,

    The USB-UART driver for LCDK kit (FT232RQ) can be downloaded from the link

    http://www.ftdichip.com/Drivers/VCP.htm

    The above information can be referred from the LCDK userguide

    http://processors.wiki.ti.com/index.php/LCDK_User_Guide#USB_UART_Port_.28J3.29

     

    Regards,

    Iyshwarya

    If this answers your question, please click the Verify Answer button below. If not, please reply back with more information.

  • Yeah that must be a typo. The winusb driver sounds like it did install. It is strange that the laptop would recognize the LCDK enough to install the winusb driver but fail to load the driver.

    This sort of thing is tough to debug. First step would be to see if any part of the enumeration succeeded. If the Device Manager entry for "Unknown Device" has a 0 VID and PID then enumeration failed. But it should have succeeded enough to match the VID/PID in the INF file. Puzzling. Another tool to see enumeraton values is UVCView. Microsoft used to offer UVCView as a separate download. It's now bundled up in the DDK/WDK. Another is "Thesycon USB Descriptor Dumper" at: http://www.thesycon.de/eng/usb_descriptordumper.shtml

    Maybe try a Uninstall/Install with a different cable. Very tough to debug without a USB sniffer like USB Explorer.

    Iyshwarya Gopalakrishnan's post is for dealing with UART-USB port. I assume that isn't the port you are using. The USB DEV BULK example does not print anything out anyways.

  • Hi  Iyshwarya,

    The driver I would like to execute is USB DEV BULK, not the USB-UART driver. Thank you your input. Appreciate it.

     

    Hi Norman,

    With different USB cable, the problem still exist. I will study more after Chinese New Year. Thank you very much and wish you have a good holiday.

  • Have a nice hoilday. If you find out more, please post. Quite a puzzle. The post by Duy-Ky Nguyen88210 in the other thread is definitely something else to look at. Alignment problems can cause enumeration problems. That usually happens with the older TI DSP compiler. The ARM side of things should be okay. That said, I've compiled and run the USB Dev Bulk example on a LCDK C6748 DSP - note no ARM. I'm using CCSv5.1.

    You should probably unverify our posts. Verified threads get less attention in general.

  • Hi Norman,

    With USB TDD tool, the error log is attached.

    Information for device USB\Vendor_1CBE_Product_0003: 
    
    Connection Information:
    ------------------------------
    
    Connection status: Device failed enumeration
    Device actual bus speed: Low 
    Device is hub: No
    Device adress: 0x0000
    Current configuration value: 0x00
    Number of open pipes: 0
    
    Device Descriptor:
    ------------------------------
    
    Value	Valuename
    0x12	bLength
    0x01	bDescriptorType
    0x0110	bcdUSB
    0xFF	bDeviceClass   (Vendor specific)
    0x00	bDeviceSubClass   
    0x00	bDeviceProtocol   
    0x40	bMaxPacketSize0   (64 Bytes)
    0x1CBE	idVendor
    0x0003	idProduct
    0x0100	bcdDevice
    0x01	iManufacturer
    0x02	iProduct
    0x03	iSerialNumber
    0x01	bNumConfigurations
    Hex dump: 
    0x12 0x01 0x10 0x01 0xFF 0x00 0x00 0x40 0xBE 0x1C 
    0x03 0x00 0x00 0x01 0x01 0x02 0x03 0x01 
    
    Configuration descriptor and all subsequent descriptors are not available. Error code: 0x0000048F
    
    
    ------------------------------
    
    Whole Device Descriptor as hex dump: 
    0x12, 0x01, 0x10, 0x01, 0xFF, 0x00, 0x00, 0x40, 0xBE, 0x1C, 
    0x03, 0x00, 0x00, 0x01, 0x01, 0x02, 0x03, 0x01
    
    Connection path for device: 
    Intel(R) 5 Series/3400 Series Chipset Family USB Enhanced Host Controller - 3B34
    Root Hub
    Generic USB Hub
    USB\Vendor_1CBE_Product_0003
    
    Brought to you by TDD v1.70.0, Sep 19 2012, 09:05:26
    

    The gel file I used for this testing is 2727.OMAP-L138_LCDK.gel

    Does the "LibUsb-win32" as recommended by Duy-Ky Nguyen88210 help for this? How to use this driver?

    Thank you.

  • WinUSB and libusb32 are both minimal USB drivers. They provide plain bulk endpoints to transfer data. In Windows, the endpoints would look like special files. The CDC Serial layers add extra functionality that make the bulk endpoint look like a COM port. The CDC, MSC, and HID classes  are nice as they don't usually require driver installation. But they are much more complicated, usually slower and may be a unsuitable model.

    The libusb32 stack was created quite a while ago. I remember using it in linux 2.4 as USB device and USB Host on Windows. It is open source for device and host side. I believe compiled driver binaries are available for Windows. Using libusb32 will usually require installation of the driver file and an INF file. Refer to Duy-Ky Nguyen88210's thread on how to use libusb32. I've never used libusb32 in this situation.

    WinUSB appears to be Microsoft's answer to libusb32. I think it appeared after Windows XP. On Windows newer than XP, the driver should installed as part of the OS. An INF file should be all that is required to associated the device with the WinUSB driver.

    Your USB TDD tool output looks like it got part-way though the enumeration process. The VID(0x1CBE) and PID(0x0003) look good. No idea why enumeration did not proceed further. Check those descriptor values against those in the dev bulk source code. I don't have access to my development system to check at the moment.

    Maybe try some of the other USB DEV examples, like HID or MSC. Maybe try on the DSP rather than the ARM side of the OMAP-L138.

    You really should unverify my other post. Unsolved threads draw more attention.

  • Here's my UDB TDD tool output:

    Information for device Generic Bulk Device (VID=0x1CBE PID=0x0003): 
    
    Connection Information:
    ------------------------------
    
    Connection status: Device connected
    Device actual bus speed: High 
    Device is hub: No
    Device adress: 0x0001
    Current configuration value: 0x01
    Number of open pipes: 2
    
    Device Descriptor:
    ------------------------------
    
    Value	Valuename
    0x12	bLength
    0x01	bDescriptorType
    0x0110	bcdUSB
    0xFF	bDeviceClass   (Vendor specific)
    0x00	bDeviceSubClass   
    0x00	bDeviceProtocol   
    0x40	bMaxPacketSize0   (64 Bytes)
    0x1CBE	idVendor
    0x0003	idProduct
    0x0100	bcdDevice
    0x01	iManufacturer   (Texas Instruments)
    0x02	iProduct   (Generic Bulk Device)
    0x03	iSerialNumber   (12345678)
    0x01	bNumConfigurations
    Hex dump: 
    0x12 0x01 0x10 0x01 0xFF 0x00 0x00 0x40 0xBE 0x1C 
    0x03 0x00 0x00 0x01 0x01 0x02 0x03 0x01 
    
    Device Qualifier Descriptor is not available. Error code: 0x0000001F
    
    Configuration Descriptor:
    ------------------------------
    
    Value	Valuename
    0x09	bLength
    0x02	bDescriptorType
    0x0020	wTotalLength
    0x01	bNumInterfaces
    0x01	bConfigurationValue
    0x05	iConfiguration   (Bulk Data Configuration)
    0xC0	bmAttributes   (Self-powered Device)
    0xFA	MaxPower   (500 mA)
    Hex dump: 
    0x09 0x02 0x20 0x00 0x01 0x01 0x05 0xC0 0xFA 
    
    Interface Descriptor:
    ------------------------------
    
    Value	Valuename
    0x09	bLength
    0x04	bDescriptorType
    0x00	bInterfaceNumber
    0x00	bAlternateSetting
    0x02	bNumEndPoints
    0xFF	bInterfaceClass   (Vendor specific)
    0x00	bInterfaceSubClass   
    0x00	bInterfaceProtocol   
    0x04	iInterface   (Bulk Data Interface)
    Hex dump: 
    0x09 0x04 0x00 0x00 0x02 0xFF 0x00 0x00 0x04 
    
    Endpoint Descriptor:
    ------------------------------
    
    Value	Valuename
    0x07	bLength
    0x05	bDescriptorType
    0x81	bEndpointAddress   (In-Endpoint)
    0x02	bmAttributes
       Transfer Type:           Bulk-Transfer
       Synchronization Type:    None
       Usage Type:              Data
    0x0040	wMaxPacketSize   (64 Bytes) 
    0x00	bIntervall
    Hex dump: 
    0x07 0x05 0x81 0x02 0x40 0x00 0x00 
    
    Endpoint Descriptor:
    ------------------------------
    
    Value	Valuename
    0x07	bLength
    0x05	bDescriptorType
    0x01	bEndpointAddress   (Out-Endpoint)
    0x02	bmAttributes
       Transfer Type:           Bulk-Transfer
       Synchronization Type:    None
       Usage Type:              Data
    0x0040	wMaxPacketSize   (64 Bytes) 
    0x00	bIntervall
    Hex dump: 
    0x07 0x05 0x01 0x02 0x40 0x00 0x00 
    
    Whole Device Descriptor as hex dump: 
    0x12, 0x01, 0x10, 0x01, 0xFF, 0x00, 0x00, 0x40, 0xBE, 0x1C, 
    0x03, 0x00, 0x00, 0x01, 0x01, 0x02, 0x03, 0x01
    
    Whole Configuration Descriptor as hex dump: 
    0x09, 0x02, 0x20, 0x00, 0x01, 0x01, 0x05, 0xC0, 0xFA, 0x09, 
    0x04, 0x00, 0x00, 0x02, 0xFF, 0x00, 0x00, 0x04, 0x07, 0x05, 
    0x81, 0x02, 0x40, 0x00, 0x00, 0x07, 0x05, 0x01, 0x02, 0x40, 
    0x00, 0x00
    
    Connectionpath for device: 
    
    NEC PCI to USB Enhanced Host Controller (B1)
    RootHub
    Generic Bulk Device (VID=0x1CBE PID=0x0003)
    

    It matches yours for the first descriptor. No match after that. I checked the Device Manager for Properties on the device:

    C:\WINDOWS\system32\DRIVERS\WinUSB.sys, Microsoft, 6.1.7600.16385
    C:\WINDOWS\system32\lmusbdll.dll, Texas Instruments, 6459
    C:\WINDOWS\system32\lmusbdll.lib, Unknown, Unknown
    C:\WINDOWS\system32\WdfCoInstaller01009.dll 1.9.7600.16385
    C:\WINDOWS\system32\WinUSBCoInstaller2.dll 6.1.7600.16385

    Device Instance Id = USB\VID_1CBE&PID_003\12345678
    Service = WinUSB
    Device Coinstallers =
     WdfCoInstaller01009.dll,WdfCoInstaller
     WinUSBCoInstaller2.dll
    Firmware Revision = 01.00

    That's all I got.

  • Hi Norman,

    1. I try to debug on DSP processor (usb_dev_bulk_c674x_omapl138_lcdkOMAPL138) but an error below highlighted in yellow happen.

    "Trouble Reading Memory Block at 0xc0096648 on Page 0 of Length 0x4:
    Error 0x00000002/-1137
    Error during: Memory,
    It appears that the target is being held in reset.  This may be
    due to Wait-In-Reset (WIR) configuration set by the EMU 0/1 pin
    settings.  If this is the case, press Cancel and disconnect all
    connected devices to attempt to clear the WIR configuration.

    If this is a multi-core system, the master CPU or ICEPick may
    not be releasing the target from reset.  Please check your
    configuration and/or your GEL files to ensure that nothing
    is blocking the target from being released from reset."

     2. When test on MSC on ARM processor (usb_dev_msc_armv5_omapl138_lcdkOMAPL138 ), the unknow device still happen. The TDD error log is at 

    Information for device USB\Vendor_1CBE_Product_0005: 
    
    Connection Information:
    ------------------------------
    
    Connection status: Device failed enumeration
    Device actual bus speed: Low 
    Device is hub: No
    Device adress: 0x0000
    Current configuration value: 0x00
    Number of open pipes: 0
    
    Device Descriptor:
    ------------------------------
    
    Value	Valuename
    0x12	bLength
    0x01	bDescriptorType
    0x0200	bcdUSB
    0x00	bDeviceClass   
    0x00	bDeviceSubClass   
    0x00	bDeviceProtocol   
    0x40	bMaxPacketSize0   (64 Bytes)
    0x1CBE	idVendor
    0x0005	idProduct
    0x0100	bcdDevice
    0x01	iManufacturer
    0x02	iProduct
    0x03	iSerialNumber
    0x01	bNumConfigurations
    Hex dump: 
    0x12 0x01 0x00 0x02 0x00 0x00 0x00 0x40 0xBE 0x1C 
    0x05 0x00 0x00 0x01 0x01 0x02 0x03 0x01 
    
    Configuration descriptor and all subsequent descriptors are not available. Error code: 0x0000048F
    
    
    ------------------------------
    
    Whole Device Descriptor as hex dump: 
    0x12, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40, 0xBE, 0x1C, 
    0x05, 0x00, 0x00, 0x01, 0x01, 0x02, 0x03, 0x01
    
    Connection path for device: 
    Intel(R) 5 Series/3400 Series Chipset Family USB Enhanced Host Controller - 3B34
    Root Hub
    Generic USB Hub
    USB\Vendor_1CBE_Product_0005
    
    Brought to you by TDD v1.70.0, Sep 19 2012, 09:05:26
    

    The system I use is below:

    1. Eval kit model :TMDXLCDK138 ( OMAP-L138 Development Kit (LCDK) ).

    2. Starterware version :OMAPL138_StarterWare_1_10_03_03

    3. OS : Win XP SP3

    4. CCS Version : 5.1.0.09000

    5. Gel file use for target for both DSP and ARM processor : 3010.OMAP-L138_LCDK.gel

    A. May I what wrong on my set up?

    B. May I know your set up which is success connect to USB for USB_Dev_Bulk project? What processor be use (ARM or DSP)? What is your gel file?

    Thany you very much for your idea and suggestion aprreciate it a lot.

  • My setup is a bit different than yours. I have the DSP only part, C6748. The board should be the same. Different chip. Different StarterWare version.

    TMDXLCDKC6748 Rev. A6
    C6748_StarterWare_1_20_03_03
    XDS100v1
    CCS5.2.1.00018_win32
    WinXP SP3
    All USB cables high-speed rated and plug into PC directly. No external hubs.

    Forgot that on the OMAP-L138, the ARM boots first. DSP debugging will be different. I am guessing, you will probably have to startup a CCS ARM session first, then a separate CCS DSP session. The ARM session would be idle. The DSP session will use the DSP project. Never done it though. Take with a grain of salt.

    Project path:
    C6748_StarterWare_1_20_03_03\build\c674x\cgt_ccs\c6748\lcdkC6748\usb_dev_bulk

    CCS automatically chose a GEL script when I created the Target Configuration
     ccsv5\ccs_base\emulation\boards\lcdkc6748\gel\C6748_LCDK.gel
    the above is the same as this one
     C6748_StarterWare_1_20_03_03\tools\gel\C6748_LCDK.gel

    The MSC example will use built-in Windows drivers. No installation should be required. So...I would think that driver installation is not the problem. I know you've tried a different cable. Maybe try a another cable. Perhaps a shorter cable. Preferably labelled as high speed. If you have an external hub, try without direct without the hub.

  • Hi Norman,

    With retry the MSC example with High speed USB2.0 cable, now it can work but with the error below. May I know "USB Mass Storage" is refer to what? USB pendrive at Laptop or other?

    What is the correct set up to detect and read the "USB Mass Storage"? Thank you. 

    USB Mass Storage Host program
    Type 'help' for help.

    NODEV> help

    Available commands
    ------------------
    help : Display list of commands
    h    : alias for help
    ?    : alias for help
    ls   : Display list of files
    chdir: Change directory
    cd   : alias for chdir
    pwd  : Show current working directory
    cat  : Show contents of a text file
    NODEV> ls
    Command returned error code FR_NOT_READY
    NODEV> ls
    Command returned error code FR_NOT_READY
    NODEV>

  • Sorry, I haven't tried any of the USB Host Examples. Just the USB Dev Examples.

    As far as I know, the USB Host MSC Examples puts the board into the Host role and allows you to plug in a USB Flash Drive. You will need a different cable, male mini-B to female A. Not sure if you need a special cable that affects the ID pin.

    The USB Dev MSC Example will show up as an unformatted drive to the Host PC. Windows should offer to format it right away.

  • Hi TI Engineers,

    Could you advise how to troubleshoot the "USB Dev Bulk" example which PC detect eval kit as "Unknown Device"?

    Thank you very much. Thank you Norman Wong for a lot of answers and suggestions. Appreciate it. 

  • To attract more attention, you should unverify this thread. Go back to the posts that have a green check mark and "Verified Answer" text. Click on the "Reject Answer" button. The post should lose the green colour in the header.  At the top of this thread, there is a green "This question is answered". Remove all verified posts until the thread does not have the green "This question is answered" text.

  • Hi Norman Wong and TI Engineers,

    I think I almost found the problem.

    From LCDK eval kit schematic in attached print screen ( ), USB0_ID pin of OMAPL138 IC always connected to USB_ID pin of USB OTG connector. From Table 35-3. USB Terminal Functions of OMAP-L138 DSP+ARM Processor Technical Reference Manual, for OTG mode or device only mode of operation,do NOT connect the USB0_ID pin, that is, leave the pin floating.

    Could you confirm that for USB0_ID pin of OMAPL138 must let it float?

    Thank you.

     

  • On my LCDK-C6748 board, JP1 is open. I came out of the box that way. As such, the cable determines the role. The cable that I using has that pin floating. I would guess that floating means the device role.

    I think JP1 should be shorted only if you want host role and your cable doesn't ground the pin for you. Handy since very few female A to male minB cables do that.

  • Hi Norman Wong,

    After check in detail at my PC, I do not have :

    C:\WINDOWS\system32\lmusbdll.dll, Texas Instruments, 6459
    C:\WINDOWS\system32\lmusbdll.lib, Unknown, Unknown
    C:\WINDOWS\system32\WinUSBCoInstaller2.dll 6.1.7600.16385


    The different files at my PC are below:

    C:\WINDOWS\system32\DRIVERS\WinUSB.sys, 6.0.6000.16386, Microsoft Corporation

    C:\WINDOWS\system32\WinUsbCoinstaller.dll, 6.0.5841.16388

     

    1. How to get these missing files and correct version?

    2. Do you know how to install winusb for Windows XP and Windows 7? Where to get the drivers?

    Please advise. Thank you.

     

     

  • As far as I know, all the driver files are in the SW-USB-windrivers-6459 folder from TI. These files should be copied over and registered as part of the install.

    On WinXP, just plugging in the USB cable results in Windows asking for the driver directory. After than it matches up the PID/VID automatically and installs all those driver files.

    On Win7, it seems that Windows just gives up and you have to install the driver manually. Here's my steps:

    - Open Device Manager and uninstall any failed devices.
    - Device is NOT plugged in.
    - Start -> type "run" in search box, starts Run dialog
    - Enter "hdwwiz" in Run text box
    - Add Hardware dialog starts
    - Click "Next". Let it search. It should find nothing new.
    - Click "Yes, I have already.." and "Next"
    - Click "Install the hardware that I manually.." and "Next"
    - Select "Show All Devices" and "Next"
    - Click "Have Disk". Starts browse window. Navigate to driver directory.
    - A list of TI devices should show up.
    - Select "Generic Bulk Device" and click through until finished.
    - Plug in device. Driver should load automatically. Check in Device Manager.

    Perhaps you might have to do the same on WinXP through "Control Panel" -> "Add New Hardware". Much the same steps as Win7.

  • Hi Norman,

    Thank you for your help so much.

    With setup the tool chain and using cygwin GCC to compile the starterware, now it is detect as Generic Bulk Device.

    The USB data log is in attached Bulk_ok.txt

    Information for device Generic Bulk Device (VID=0x1CBE PID=0x0003): 
    
    Connection Information:
    ------------------------------
    
    Connection status: Device connected
    Device actual bus speed: High 
    Device is hub: No
    Device adress: 0x0008
    Current configuration value: 0x01
    Number of open pipes: 2
    
    Device Descriptor:
    ------------------------------
    
    Value	Valuename
    0x12	bLength
    0x01	bDescriptorType
    0x0110	bcdUSB
    0xFF	bDeviceClass   (Vendor specific)
    0x00	bDeviceSubClass   
    0x00	bDeviceProtocol   
    0x40	bMaxPacketSize0   (64 Bytes)
    0x1CBE	idVendor
    0x0003	idProduct
    0x0100	bcdDevice
    0x01	iManufacturer   (Texas Instruments)
    0x02	iProduct   (Generic Bulk Device)
    0x03	iSerialNumber   (12345678)
    0x01	bNumConfigurations
    Hex dump: 
    0x12 0x01 0x10 0x01 0xFF 0x00 0x00 0x40 0xBE 0x1C 
    0x03 0x00 0x00 0x01 0x01 0x02 0x03 0x01 
    
    Device Qualifier Descriptor is not available. Error code: 0x0000001F
    
    Configuration Descriptor:
    ------------------------------
    
    Value	Valuename
    0x09	bLength
    0x02	bDescriptorType
    0x0020	wTotalLength
    0x01	bNumInterfaces
    0x01	bConfigurationValue
    0x05	iConfiguration   (Bulk Data Configuration)
    0xC0	bmAttributes   (Self-powered Device)
    0xFA	MaxPower   (500 mA)
    Hex dump: 
    0x09 0x02 0x20 0x00 0x01 0x01 0x05 0xC0 0xFA 
    
    Interface Descriptor:
    ------------------------------
    
    Value	Valuename
    0x09	bLength
    0x04	bDescriptorType
    0x00	bInterfaceNumber
    0x00	bAlternateSetting
    0x02	bNumEndPoints
    0xFF	bInterfaceClass   (Vendor specific)
    0x00	bInterfaceSubClass   
    0x00	bInterfaceProtocol   
    
    .

    LCD Screen also appear as “Host connected”.

    This shown that USB connection is ok.

    Please advise how to transfer data between Host and Generic Bulk Device. What software needed? Where to download it?

    Thank you very much.

  • Once usb_dev_bulk is running on the device, there is an application called usb_bulk_example.exe for the host. The application sends a user entered string to the device and the device returns the string with case changed. Some background here:

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

    A compiled usb_bulk_example application is included in the SW-USB-WIN package. The above page has link to SW-USB-WIN that is dead. I think this is current link.

    http://www.ti.com/tool/sw-usb-win

    The source code for usb_bulk_example.exe is not included in any of StarterWare releases that I have looked at. Hopefully that has changed. Otherwise you'll have to go back to StellarisWare base:

    http://www.ti.com/tool/sw-lm3s

    It covers every Stellaris device and is quite large. Here's any interesting background on how WinUSB and lmusb fits together:

    http://e2e.ti.com/support/microcontrollers/stellaris_arm/f/471/t/200845.aspx

    You should read though the thread by Duy-Ky Nguyen88210. I think he's had some bandwidth problems with the example.

  • Hi Norman,

    After install program from http://www.ti.com/tool/sw-usb-win, the data transfer of USB Bulk is working fine with verification of this software.

     When key in 6 byte data in data entry, the 6 byte is written into device and later the 6 byte was read from device.

    The counter at LCD for Write and Read back also correct.

     This meant that USB bulk is able to connect to host PC and transfer in and out data file correctly.

    Thank you very much.

  • Hi I am trying to run this example (dev_bulk) on an OMAP-L138 LCDK under Windows 7 64 bit.  I tried to run it on the DSP side but I can't seem to get it to work on just that size.  I tried removing the SD which the ARM boots from.  

    I installed the FTDI CDM drivers but only the FTDI com3: driver came up not the bulk end point in the device manager.  I also tried the libusb stuff and it installed OK but I still get the error below..  I am running CCS5 w/XDS100v2.  I get this error when I run the usb_bulk_example.exe:

    Unable to initialize the Stellaris Bulk USB Device.
    Error code is 1167 (The device is not connected.)

    Of course the bulk end point doesn't show in Device manager anyway!

    I have tried the OTG and device USB ports.  My cables are brand new.  Ideas?

    Thanks,

    Phil

  • Not sure if I can help. Some clarification. Are you running the example on the ARM or DSP side? Have you connected both mini-B ports on the LCDK? One is for the UART via FTDI USB. The other is the USB OTG port.

  • Hi Norman,

    I first attempted to run it on the DSP side.  I am now trying to build the usb_dev_bulk for the Arm side, but I have to get all the prerequisites built so I haven't tried that yet.  I have plugged into both ports.  When I plug into the OTG port nothing happens.  When I plug into the UART port the FTDI driver loads and shows up in the device manager.  When I run the bulk app, it doesn't see the device.

    Thanks,

    Phil

  • he OMAP-L138 is an ARM boot first device. To use the DSP, you have to stop the ARM from placing the DSP in reset. I think you have to start a debug session with the ARM before starting one with the DSP. The ARM does not have to run any code. It just has to be idle.

    All the StarterWare USB examples drive the USB OTG port. The examples do print out debug messages on the serial port which eventually come out the FTDI port. So you should connect both. Nothing at all in the "Device Manager"? Not even one of those exclamation marked entries? Nothing on the serial port?

  • Hi Norman,

    OK so I rebuild everything for Arm.  However when I try to debug it I get this.  I tried bumping up the shared memory segment by 4x but it still has this problem.  

    ARM9_0: Output: Target Connected.
    ARM9_0: Output: ---------------------------------------------
    ARM9_0: Output: Memory Map Cleared.
    ARM9_0: Output: ---------------------------------------------
    ARM9_0: Output: Memory Map Setup Complete.
    ARM9_0: Output: ---------------------------------------------
    ARM9_0: GEL: Error while executing OnTargetConnect(): Page fault occurred reading 0x01C10800 at (*((unsigned int *) ((0x01C10000+0x800)+(4*LPSC_num)))&0x1F) [OMAP-L138_LCDK.gel:868] at PSC0_LPSC_enable(0, 0) [OMAP-L138_LCDK.gel:509] at PSC_All_On() [OMAP-L138_LCDK.gel:244] at OnTargetConnect() .
    ARM9_0: Loader: One or more sections of your program falls into a memory region that is not writable. These regions will not actually be written to the target. Check your linker configuration and/or memory map.

  • Have you set the boot mode to emulation? The DIP switch should be all '0'. It might be that the processor has run some code that sets up the MMU for privileged ranges.