Electronic – Software only USB implementation for ARM-M0/M0+

firmwaresoftwareusbusb device

Since I'm worried about the future of AVR, I've been looking into software USB for ARM cortex-M0/M0+ that is similar to V-USB. All I've found is a port of LUFA, which is for MCUs with internal USB hardware.

Now I know there are Cortex-M0/M0+ controllers that do have USB hardware, although I'm looking at using the smallest lowest pin-count I possibly can which usually don't have USB hardware. I know some of these tiny controllers will have USB hardware but they are typically in a WLCSP package which have small spacing between the pads which I cannot work with. This is why I'm looking for a software implementation.

Is there a software only implementation of USB for ARM-M0/M0+?

note: by software, I mean firmware but it seems code-only implementations of hardware peripherals are usually referred to by software.

note 2: Please don't suggest any specific products. The question isn't about an inability to find small controllers with USB, its about the lack of a software implementation of USB for ARM much like V-USB.

Best Answer

Here's a new M0+ implementation comparable to V-USB https://github.com/xobs/grainuum

Interesting 33c3 video explaining as well: https://youtu.be/GFY_A3jcI28

Still pretty fresh and prob not as stable as V-USB but sounds promising. Curious how vital the 2 stage pipeline of the M0+ really is as would be nice to implement this on M0.

Doesn't sound like he's so tight that he can't afford one more cycle with the 3 stage pipeline. I think the biggest issue will be M0's lack of single cycle I/O ports which is an optional feature of the M0+. But he makes it sound like the pipeline is the real benefit of M0+.