Jump to content
Rhys

Energia Tiva USB support

Recommended Posts

I know Energia does not currently support USB host/device on the Tiva chips due to TI's ridiculous licensing on the library code.  I was wondering if anyone would be interested in collaborating on writing a USB stack for the Tiva chips for Energia.  I was actually thinking of porting LUFA over to the Tiva, as it might be easier than starting from scratch.  The idea being to do an end-run around TI's stupid Clickwrap license on all the useful parts of TivaWare beyond barebones support of the chips hardware.

 

While I don't mind developing USB device code in CCS, USB support in Energia would make the Launchpad boards far more attractive to the average Arduino hacker as a less expensive and more feature reach platform.  The new Tiva Connected Launchpad can physically do just about anything an Arduino Due can (and then some) at half the price, but the development environment just isn't up to snuff compared to Arduino.  I would like to help remedy that if anyone else is interested in helping.

Share this post


Link to post
Share on other sites

@Rhys  It might not be a bad idea to cross post this over at 43oh since it seems more folks follow that board than this one.  I am not a good enough coder to help but I think it is a great idea.

Share this post


Link to post
Share on other sites

@@bluehash - I'm good on hardware at the moment.  I have a TM4C123 sitting on my desk, and a TM4C1294 that should be here in a day or two. 

 

@@dubnet - I'm not sure if I'm up to the task or not.  I'm still relatively new to writing code myself....  I have written a few USB device firmware sets using the TivaWare USB library though, including some modifications to the USB library code itself.

 

@@pabigot - I will look into that, it's definitely an idea that may save starting completely from the usb hardware driver in the driverlib (which is under a BSD license).

Share this post


Link to post
Share on other sites

I should clarify: the CMSIS Peripheral Driver Interface which includes the USB interface in was added in CMSIS 4.0, which was only released a month ago. There's no implementation of it from TI or (AFAICT) anybody else; it's just the specification for an API which, if you implement to it, means you'd be able to re-use code that depends on it on any other Cortex-M device that also implements it. (Maybe; I'm a long way from looking at USB support on these things.)

Share this post


Link to post
Share on other sites

I think one BIG issue is USB devices have a Vendor ID as well as Product ID, so there are some proprietary things going on regardless of the code source license, and those tend to be tied to hardware exclusivity, from what I can tell. TI provides for people to use their lib and a block of VID/PID combos. And even though TI does permit certain VID/PID combinations, there's no guarantee that any one of us won't inadvertently duplicate things and cause potential conflicts should something get out into the wild. I.e. say I get the Hercules ECU out with USB boot-loader and such with some VID/PID combo and provide a driver and then RobG releases a DMX LED controller and uses the same VID/PID... and someone happens to want to use both?

 

My opinion is that the only logical thing TI, or any vendor providing product for maker / hobby use for that matter, can do is restrict the license.

 

I'm probably babbling so I'll shut up now.

Share this post


Link to post
Share on other sites

VID/PID isn't really an issue.  A properly implemented USB library would require the end user to configure a VID/PID combo in their code at time of use.  That could be TI's, V-USB's, or your companie's, or whatever one you want to use.

 

Implementing a CMSIS driver library might be a little beyond my skill level.  That's more of a silicon vendor sort of thing.  TI already has a low level USB hardware library in the driverlib that has a BSD license, I don't really want to reinvent the wheel.  I just want to get a stack for the rest of it setup for Energia so the USB can be used there.

Share this post


Link to post
Share on other sites

Have you tried asking Texas Instruments about the licensing on those libraries?  They have been gradually opening the license on various of the files.

Perhaps they might open those if asked?

 

 

Thoughts on a couple of other library models/resources

 

libOpenCM3 

http://libopencm3.org/wiki/Main_Page

 

USB support is one of the areas that are planned to be covered.  They even list USB device as being one of the (few) sections that is written for the TM4C.

 

USBHost on Arduino

http://arduino.cc/en/Reference/USBHost

 

USB Host Shield

http://www.circuitsathome.com/arduino_usb_host_shield_projects

Share this post


Link to post
Share on other sites

I know Energia does not currently support USB host/device on the Tiva chips due to TI's ridiculous licensing on the library code.  I was wondering if anyone would be interested in collaborating on writing a USB stack for the Tiva chips for Energia.  I was actually thinking of porting LUFA over to the Tiva, as it might be easier than starting from scratch.  The idea being to do an end-run around TI's stupid Clickwrap license on all the useful parts of TivaWare beyond barebones support of the chips hardware.

 

While I don't mind developing USB device code in CCS, USB support in Energia would make the Launchpad boards far more attractive to the average Arduino hacker as a less expensive and more feature reach platform.  The new Tiva Connected Launchpad can physically do just about anything an Arduino Due can (and then some) at half the price, but the development environment just isn't up to snuff compared to Arduino.  I would like to help remedy that if anyone else is interested in helping.

Hello friend were you able to find some solution? I need to support Energia a USB device, so can you help me out?

Share this post


Link to post
Share on other sites

Nada, no response on the e2e forum from TI regarding the licensing :(  I've just started to dig into various open source USB stacks.  They all will require significant work to make usable with Energia, and will likely take me months to sift through and start to come up with a workable solution.  I have a full time job and a family, I don't have a lot of time to work on it and it's going to be slow going.  That's why I was hoping to find a few collaborators willing to help with the project.

Share this post


Link to post
Share on other sites

I have brought this up within TI and the good thing is that all whom I talked to are open to converting the stack to the TI modified BSD license just as DriverLib. Give it a bit more time as these things can be a bit tedious legal wise. Once it is BSD I can definitely use some help from the USB experts here to mold this into an Energia library. 

 

With that said, I would definitely welcome an open source alternative!

 

Robert

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...