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 Host support on BeagleBone

I'd like to use a BeagleBone to do some data acquisition from a sensor over USB.  The StarterWare wiki page on USB:

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

says that host mode isn't supported on BeagleBone but is on the EVM.  Does anyone know if support for host mode on a BeagleBone is in the works?  Can anyone suggest a starting point for making host mode work on a BeagleBone or what the issue is with supporting host mode on a BeagleBone?

Thanks, Gil Crouse

  • Gil,

         We are in the process of adding host mode (msc) support for Beaglebone. In Beaglebone the host mode is supported in USB instance 1. But the current stack supports USB0 only. We are updating the stack to work with USB1 also. This will be part of the next release (end of feb).

    Regards

    Baskaran

  • Which is the advantage to use StarterWare instead of Linux in your case?

    Max

  • StarterWare is a no-OS code.  Development can be faster than using high level OS like linux. please refer StarterWare for more information.

    Regards

    Baskaran

  • Max,

    For our application we just need to run one program all the time.  We have data coming in via serial, spi, and usb.  We need to aggregate it, process it, log it to sdcard, and stream it out via serial.  We'd been using a microcontroller so the StarterWare approach seemed a natural fit and it appears that StarterWare supports all of the interfaces we need.  The BeagleBone/AM335x just gives us a lot more processing power vs the 8bit microcontroller.  Boot time is also an issue. 

    Regards, Gil

  • Baskaran,

    Thanks for the good news!  I'll look forward to the next release.

    Gil

  • Is the USB msc host mode sample code available in the latest version of StarterWare?

    If not, when will it be available?

  • MWagner,

                We made last release on April 2nd, but unfortunately couldnt include host mode support for beaglebone as we faced some issues. We are working on that and probably will have them fixed in 1 or 2 weeks.

                 But it will be part of next release only which will be in 3 week of June. Please let me know what is the timeline you are looking for.

    Regards

    Baskaran

  • We are designing our own AM335x based circuit board and would like to leverage the StarterWare USB host and device msc drivers to use on our board.

    These USB drivers are available for the AM335x EVM, but not for BeagleBone.

    What is the difference between these two target boards that the host driver is only available for EVM?

    Is there something we should be aware of concerning these drivers  in the design of our circuit board?

  • MWagner,

    In 02.00.00.05 release,

    USB Stack had some limitations

    -          USB stack is ported from StellarisWare which had support for USB instance 0 only.

    -          Host OR Device mode may be exercised using USB-instance 0 only.

     

    In beaglebone USB0 is connected to Mini-B connector(which can be used as device only). But in EVM the USB0 port is connected to Micor-A/B connector(which can be used as host or device). This is why you see only device examples for beaglebone and device & host examples for EVM.

     

    In 02.00.00.06 release,

                The USB stack is updated to support multi instance (usb0 or usb1 or both). But since we couldn’t completely validate the beaglebone host examples, we have not added them in the release. We will include them in the next release (approx 3rd week of June).

     

    There are no limitation on USB0/USB1 from SoC (Am335x) perspective, to use as device or host. Hope this clarifies your doubts.

    Regards

    Sirish

  • I have an application that needs to use a host and a device port of the AM335x simultaneously.

    One port would use USB0 and the other would use USB1.

    Is this possible if I were to use the USB msc host and device StarterWare 02.00.00.06 example drivers?

  • Yes, MWagner.

    Please refer to example application ‘...\AM335X_StarterWare_02_00_00_06\examples\evmAM335x’\usb_device_host_msc’. The example demonstrates putting 'Host MSC on USB1' and 'Device MSC on USB0' to use.

    Please refer to the documentation for usage, limitations and known issues.

    http://processors.wiki.ti.com/index.php/StarterWare_USB#Multi-instance_Support_Information

    http://processors.wiki.ti.com/index.php/StarterWare_02.00.00.06_Release_Notes

    Regards

    Sirish

  • Baskaran,

    Is it possible to get the usb_device_host_msc sample code for the BeagleBone before the official release in late June?

    Has this code been verified yet for operation on BeagleBone?

  • Hi Wagner,

    We are in the middle of other changes, we will get back when we have this application in proper shape.

    Regards

    Sirish

  • I based my application code on the usb_device_host_msc example code for the AM335x EVM.

    My application is currently running on the EVM board.

    However, our hardware engineers are creating a product board that is based on the BeagleBone hardware design.

    So I would like to port my application code to the BeagleBone board in advance of our product board availability.

    What are the differences between the usb_device_host_msc example code for the EVM and BeagleBone boards?

    Are there only changes to the initialization code? Or are there changes higher up in the USB stack?

  • Hi Wagner,

    Below are the changes you need to build the EVM example 'usb_device_host_msc' for BeagleBone:

    1) replace '#include "evmAM335x.h"' with '#include beaglebone.h' in usb_device_host_msc.c

    2) Create 'makefile' for the example as 'build\armv7a\gcc\am335x\beaglebone\usb_device_host_msc\makefile' and update the 'makefile' path to refer to right directory.

    The above two changes should enable you build and get started.

    Regards

    Sirish