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.

What are my USB code options on OMAP-L138?

Guru 15580 points
Other Parts Discussed in Thread: OMAP-L138, OMAPL138, AM1808

I am beginning to look into my options for using the USB port on my OMAP-L138 custom board. I would like to turn it into a USB-peripheral that talks to a PC (USB host). I am currently running DSP/BIOS on the DSP and no OS on the ARM. I have a mini-USB connector on the board connected to the OMAP-L138 USB 2.0 port.

1. What are my choices for code/driver support from TI for the OMAP-L138?

2. My DSP may be too busy to service the USB traffic. Can I use the ARM?

3. What will I need on the PC to communicate with my device? Is there a special driver required for the PC?

Any feedback would be appreciated. 

  • Mike

    If you are not using an OS on the ARM side and cannot make use of the Linux drivers as part of the PSP, I think it would be best for you to explore Sitaraware/Startware offerings on USB software from ARM side

    http://www.ti.com/tool/sitaraware

    Regards

    Mukul

  • Mukul,

    Thanks for the tip. I'll take a look.

     

  • You're opening a huge can of worms, pulling the thread on a cheap sweater, ...

    Embedded systems are usually HID, MSC or CDC-ACM devices. Most Windows have drivers for these built-in.

    HID - Human Interface Device
    - Looks like a mouse, keyboard, etc.
    - Uses a report model where reports are send and from the device on a regular basis. Useful for command and response.
    - Fairly simple to implement on Device side.
    - Somewhat difficult to use on Windows side. Requires WinDDK programming.
    - Somewhat difficult to use on Device side. Not quite a send and receive model. Must work-around USB model.
    - Supported by BIOSUSB.
    - Supported by Linux.

    MSC - Mass Storage Class
    - Looks like hard drive.
    - Difficult to implement on Device side.
    - Difficult to send specific commands to device. Device must poll for special files.
    - Device must be file system type aware, ie know FAT16.
    - Sharing of the file system between Device and Host can be problematic.
    - Supported by BIOSUSB.
    - Supported by Linux.

    CDC-ACM - Communications Device Class
    - Looks like a serial port.
    - Difficult to implement on the Device side.
    - Simple to use on Windows side. Just open up a COM port. Same on the Device side.
    - Not supported by BIOSUSB.
    - Supported by Linux.

    I believe that the Stellaris HW is way too different from the OMAP-L138 to make an easy port. That said, there are posts on this forum that would suggest that that TI will release a port to SYS/BIOS soonish in response to the poor response to BIOUSB.

    Using both the ARM and DSP requires some sort of IPC. TI offers DSPLink, CMEMK, C6?, etc. All of which require the ARM to be running Linux.

     

  • Mike

    Norman's assessment on complexities around USB support/constrains/challenges on DSP side are well placed. Norman is a known valuable community member and contributor to our device forums and his feedback and support is very much appreciated.

    Norman

    I did want to highlight that the Sitaraware and Starterware are actual software offerings similar to Stellarisware, that are ported and supported on AM18xx and OMAPL138, so from a customer perspective there is no port required from Stellarisware. It was actually done specifically for customers requesting non OS based examples and code. It is plausible that the USB classes supported by this software might not meet everyone's requirement, but it is a good start. Specifically for ARM users looking for no-OS software base.

    Additionally for OMAPL138 users the Starterware does come with an lite IPC also. Details and download here

     

    ·         http://software-dl.ti.com/dsps/dsps_public_sw/c6000/web/omapl138_starterware/latest/index_FDS.html

     

    If you have additional feedback on this, please do let us know.

    Regards

    Mukul

  • Mukul,

    Thanks for the feedback. Yes, Norman has been helpful to me also. Based on what I have read in other posts, past USB solutions have had some issues. I am anxious to dig deeper into the new Sitaraware. I think for any TI-provided (USB) solution to become successful (i.e. widely adopted) it will need to be:

    1. Robust (i.e. the code is thoroughly tested before release)

    2. Extensive (the code covers a broad range of device classes, not just one or two)

    3. Thoroughly documented in well written, "instructional" text with many, many examples.

    4. Well supported, with timely, competent forum support form more than one knowledgeable source.

    5. Have on-line training materials (video tutorials) so that more junior engineers can begin picking it up.

    Just my 2 cents, having learned everything I know about TI & DSPs in the last 12 months.

    One question that has come up is that of the of the mention of a "Mentor Graphics USB controller" in the Sitaraware User Guide. I'm not exactly sure what this is, but the Sitarware seems to be written to support it. Are the requirements different for the USB controller in the OMAP-L138?

    Thanks again for you valuable insights.

     

     

  • Thanks for the feedback. 1/3/4 are definitely the intent always for any offering. #2 , we hope we have covered most of the commonly needed use-cases. For #5 you will see more of that in coming months for this software offering, right now these are "soft release" but many of our upcoming TI Tech Days will have speakers talking about this offering.

     

    MikeH said:

    One question that has come up is that of the of the mention of a "Mentor Graphics USB controller" in the Sitaraware User Guide. I'm not exactly sure what this is, but the Sitarware seems to be written to support it. Are the requirements different for the USB controller in the OMAP-L138?

    Mike

    If you look at the USB2.0 documentation on OMAPL138 and AM1808 you will see references to Mentor too, this is because the USB controller IP on these devices comes from Mentor Graphics. So it is one and the same thing.

     

    Regards

    Mukul

  • Hi Mukul.

    Oops...confused Stellaris with Sitara. This is thread that was confusing me:

    http://e2e.ti.com/support/embedded/f/355/t/131154.aspx

    In that thread, it is implied the Stellaris USB stack is being ported to 6748(ie. Mentor Graphics controller). The target OS is not clear. Maybe Sitara was intended. How does Sitaraware interact with the DSP? Is the DSP running BIOS or No OS? I am finding the Linux -DSPLink-BIOS5 to be a bit unwieldy. Hoping for something simpler and lighter.

    Norm

  • Norman Wong said:
    In that thread, it is implied the Stellaris USB stack is being ported to 6748(ie. Mentor Graphics controller). The target OS is not clear. Maybe Sitara was intended

    Sitararware is targeted for devices in the Sitara family, and the first release is available for AM1808 now. This package is intended for no-OS type development , as listed in the Sitaraware wiki

    http://processors.wiki.ti.com/index.php?title=SitaraWare

    Starterware is for OMAPL138 family and very simply stating it Starteware = Sitaraware (for ARM side) + IPClite + DSP side drivers (similar to Sitaraware ARM side drivers) , and this package will allow C6748 users to use DSP side drivers as is, and OMAPL138 users look at this as a combined package.

    More from the developers on liteipc

    The ipclite module is indeed an interprocessor communication module to enable ARM + DSP applications on OMAPL138.  There is a simple polling-based example in the StarterWare release.  Just look in the following location:

     

    examples\evmOMAPL138\ipc_polling

    Please also note that as I mentioned that these are soft release, the real release with proper announcements etc are targetted for Oct-Nov time frame.

     

     

  • Mukul,

    If you look at the USB2.0 documentation on OMAPL138 and AM1808 you will see references to Mentor too, 

    I have checked  the SPRUGM7D (OMAP-L138 Applications Processor System Reference Guide), SPRUFM9H (USB Controller User Guide), and the SPRUH77 (OMAP-L138 C6-Integra DSP+ARM Processor Technical Reference Manual) for "Mentor Graphics" and do not find it referenced. I also found this ("AM1808 has an integrated Mentor Graphics USB controller with an external PHY") in the SitaraWare User Guide.

    Can you again confirm that the StarterWare code is compatible with OMAP-L138?

    Since the StarterWare package does not contain a User Guide, can I use the USB User Guide found in the SitaraWare package for the StarterWare USB code?

     

  • Mike,

    Yes, the StarterWare package that Mukul linked to is compatible with OMAP-L138.  Also, the SitaraWare wiki documentation is also applicable to StarterWare on OMAP-L138.  We will be updating the online documentation over coming weeks to be more clear.  Also, we are looking to expand the USB library to support additional classes and modes.  We should be able to provide more information on these updates by the end of this month.

  • Joe,

    Joe Coombs said:
    Yes, the StarterWare package that Mukul linked to is compatible with OMAP-L138

    Thanks for that confirmation. 

    Joe Coombs said:
    Also, we are looking to expand the USB library to support additional classes and modes. 

    This is exciting stuff.

    Joe Coombs said:
    We should be able to provide more information on these updates by the end of this month.

    Looking forward to it.

    Thanks again for the update.