Jump to content
jpnorair

STM32L0 USB Interface

Recommended Posts

Just a note: I'm building an open source project that utilizes STM32L0 as USB-UART gateway.  This chip has some interesting attributes, and it can create a low-cost, small geometry USB interface that is also programmable.  I'm building the CDC-ACM to UART version first, then an Android version that does the necessary authentication, and then finally a USB-Ethernet version so you can telnet to it (ssh is too much overhead).

 

The idle current will be in the area of 2uA, so it's a good USB bridge for any low power project you may have, unlike most off the shelf bridge chips which are nowhere near this.

 

Share this post


Link to post
Share on other sites

That sounds pretty awesome, really.

Having a USB UART gateway that consumes that little power could be very useful to a project I'm working on.

What kind of physical size do you think? Do you have a rough cost estimate?

Share this post


Link to post
Share on other sites

That sounds pretty awesome, really.

Having a USB UART gateway that consumes that little power could be very useful to a project I'm working on.

What kind of physical size do you think? Do you have a rough cost estimate?

Small.  I'll have a prototype soon.  It will be able to fit inside a USB cable, I think.

 

 

Could your project also do FIFO a la FT245RL?

Possibly.  In any case, the project is to be open source, so you can add features however you want.

 

 

I had not planned on making this into a Teensy competitor, but perhaps there is reason to do so.  I could one-up Teensy by offering multithreaded Wiring (i.e. multiple sketches running simultaneously) with automatic low-power usage in the background -- the RTOS underpinnings are already there.  This would require a couple months of my time, and therefore would necessitate a successful kickstarter.  What do you think?

Share this post


Link to post
Share on other sites

Sounds like a neat project and thanks for the info! Finally ST has made their low cost usb micro available. However, in general, if your looking for cheap USB MCUs, Freescale kinda wins with its KL24 and KL25 series kinetis M0+ MCUs. Not a big fan of freescale in general but they are cheaper, more feature rich, and already have a lot of libs written for them. Another feature that they got thats pretty unique is a built in internal LDO.

If your not already super deep in your project i'd recommend checking them out.

Share this post


Link to post
Share on other sites

Thanks, everyone, for the encouragement.  Look for a kickstarter in the next couple of weeks.  The project is thus dubbed, "Pluto."  The base goal will be pretty low, for the hardware and basic firmware, and then I will do a series of stretch goals for additional firmware and software features.  I'm thinking maybe $18/unit in order to pay for all the firmware time.  COGS will be tiny, certainly under $4 in low/moderate volumes.

 

Sounds like a neat project and thanks for the info! Finally ST has made their low cost usb micro available. However, in general, if your looking for cheap USB MCUs, Freescale kinda wins with its KL24 and KL25 series kinetis M0+ MCUs. Not a big fan of freescale in general but they are cheaper, more feature rich, and already have a lot of libs written for them. Another feature that they got thats pretty unique is a built in internal LDO.

If your not already super deep in your project i'd recommend checking them out.

 

Freescale makes nice parts, but:

1. Kinetis M0+ is more comparable to STM32F0, which is also really cheap

2. Both STM32F0 and L0 can do USB without a crystal.  This takes the cost down below the Freescale solution.

3. I have already a ton of libraries for STM32L1, of my own design.

 

Part of the goal of this project is also micro-power.  Nobody has anything that can run on USB-Suspend current.  This could do it.  The other main goal is to allow detachable USB devices with backup batteries.  STM32L062K8 might be the perfect part for this.  You should check the STM32L062K8 datasheet -- IMO it's in a class by itself.

Share this post


Link to post
Share on other sites
Both STM32F0 and L0 can do USB without a crystal.

Oh ya don't say? Well the KL24 can print money, grant 3 wishes, and is utterly indestructible!

 

That is actually pretty neat though that it can do it without a crystal. However, a cheap crystal ~20 cents in qty 100. It can be tricky to find LDO+caps under that ^_^

. So your saying its the first MCU that might actually be USB2.0 compliant? :biggrin: . I'm curious how its LPMs compare to the MSP430s. Might have to pick one up.

Share this post


Link to post
Share on other sites

TI makes some no-caps-needed LDOs, they're something like a buck each for singles though and don't drop a ton in price till you're buying a lot, if I recall correctly.

I've been meaning to get a couple to see how they do.

Share this post


Link to post
Share on other sites

I'm not sure I have any need for one of these, but will definitely be following your Kickstarter with interest. I'll probably back it anyway and wonder what to do with it later.

Share this post


Link to post
Share on other sites

Proto PCBs are sent to OSHpark.

 

Pluto is basically a Teensy 2.0 with Cortex M0+.  I tried to keep the I/O as similar to the Teensy as possible, although it is not quite identical.  I also added some new things:

  • A load-switch that allows a coin cell (or whatever) to operate as the power source, automatically, when it is not plugged-in.
  • A raw Vdd port for attaching a super cap.  
  • Pink LED.  Go pink.

 

Charon is a tiny USB-dongle type thing.  It is extremely small, the USB plug is the biggest part of the assembly.  There is a 10 x 12.7mm header on one end that exposes SWD and a com-bus.  SPI, UART, or I2C can be used (but only one I/F at any one time).  The firmware will do autodetection, and there's an extra pin for forcing the bus to reset.

 

Both will use virtually identical firmware, which is what will provide the ultra-low-power features in addition to the multi-sketch (multi-thread) features.  When sketches call delay() or any other sort of blocking call, the underlying kernel will transparently do the multitasking and most opportunistic low power sleeping (This stuff I already have done).

 

The default firmware also can do autodetection of control data (binary, packetized) vs. TTY data.  Control data can be sent according to a spec, but the client software "otter" is the best tool for working with it.  The "otter" interface is a bit like the Bus Pirate interface.  All firmware and software is and will be open source.

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...