I'd like to use a BeagleBone to do some data acquisition from a sensor over USB. The StarterWare wiki page on 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
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).
Which is the advantage to use StarterWare instead of Linux in your case?
StarterWare is a no-OS code. Development can be faster than using high level OS like linux. please refer StarterWare for more information.
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.
Thanks for the good news! I'll look forward to the next release.
Is the USB msc host mode sample code available in the latest version of StarterWare?
If not, when will it be available?
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.
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?
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.
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?
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.
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?
We are in the middle of other changes, we will get back when we have this application in proper shape.
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?
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.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.