# What are some smallest, cheapest microcontrollers with USB built in? [closed]

The cheaper, smaller, and fewer external components needed the better.

AVR would be preferred, but anything with free SDKs is good.

## closed as off-topic by Fizz, PeterJ, Null, jippie, Daniel GrilloNov 8 '15 at 13:17

This question appears to be off-topic. The users who voted to close gave this specific reason:

If this question can be reworded to fit the rules in the help center, please edit the question.

• Would you be looking for USB device mode or host mode? On The Go? – Anindo Ghosh Dec 2 '12 at 7:57
• PIC18F4550 is my preference, nice post here edaboard.com/thread126795.html – jackweirdy Dec 2 '12 at 14:01
• As of February 2018 these devices in the AVR range have integrated USB: ATmega16U2, ATmega16U4, ATmega32U2, ATmega32U4, ATxmega16A4U – Alnitak Feb 25 '18 at 22:31

The best way to find those microcontrollers would be at a site such as digikey. Here is the list of all their microcontrollers.

Use the filters to pick Atmel as a manufacturer.

Then filter to leave their AVR family on the list.

And finally, filter by connectivity. Choose all items on the list that have "USB" or "USB OTG". Hold down CTRL to pick multiple items on the list.

Off the top of my head, one of the simplest would be ATmega88U2. The U2 tells you it's a regular ATmega88 with a USB controller built-in.

• Atmel are now merged with Microchip Technology (and use the latter name) and the number of devices on that Digikey with USB support makes this a far from simple way to match. For AVR simpler to go to microchip.com/design-centers/8-bit/microchip-avr-mcus and use the button to add the column that shows the "number of USB modules". – Alnitak Feb 25 '18 at 22:27

V-USB project provides needed software for bitbanged low-speed USB device and is available under GPLv2 or commercial licenses. As for external hardware, 12 MHz crystal is recommended, but it should work with RC oscillator too. It also needs a voltage divider to set up slow speed and depending on operating voltage of the microcontroller, it may need a couple of zener diodes to limit voltage to D+ and D-.

With it software USB works on microcontrollers as small as ATtiny45 for example. Two other popular microcontrollers for use with the library are ATtiny2313 and ATmega8.

Another library based on V-USB is USBtiny. It's GLP2+ and should be a bit easier to work with. Both can be made to work with libusb drivers on GNU/Linux and Windows.

• This is actually a great solution for anyone who needs USB but has already bought a lot of micros without it. Some of the variants I've seen don't even require an external oscillator. – Jonny B Good Dec 2 '12 at 9:17
• I agree. Depending on what the OP needs, this does seem to work very nicely. – Gustavo Litovsky Dec 2 '12 at 9:32
• It depends what your needs are. The AVR devices VUSB is aimed at don't meet the electrical requirements for USB certification. So if you are making a consumer device and want to use the USB logo, VUSB isn't an option – JockM Feb 18 '15 at 6:04

If you are willing to go the PIC route: the PIC16F1455 has only 14 pins, and can do USB without needing a crystal. It has an internal, calibrated 48MHz oscillator, and does clock recovery from the USB lines to ensure it stays in sync.

The PIC18F14K50 is a nice simple chip with USB built in, free IDE and compiler, good examples and low cost. I sucessfully taught a high school class to build and program it use this nice kit https://www.tindie.com/shops/TAUTIC/pic18f14k50-usb-development-kit/ it is a open source design so you can get the components and build for less. But you will need to get a boot loader for USB programming installed on the PIC, so you will need a programmer if you do not buy a chip that is pre-programmed, like Tautic.com 's product.

Another alternative for you is an EZ430-F2013 or similar. It's not AVR, but rather a TI MSP430. It's small and cheap, with only the USB-key sized device needed. There a few options for programming, and by far the best is TI's CodeComposer Studio v5. It's available for Windows and Linux and has two different ways of using it free, including a code-size-limited (16 kB) option specifically for the MSP430. And CCS's Grace tool made developing for the MSP a joy when I used it.

• u can list this stuff =) – xsari3x Dec 2 '12 at 22:29
• @xsari3x You might say I'm a devotee. It's the best embedded programming IDE I've ever used, bar none. – TransientResponse Dec 3 '12 at 18:42

Take a look at the LUFA project, it's a software stack that supports many AVR microcontrollers (both low-end and high-end), with different capabilities depending on each of them. A plus is that it uses the commercial-friendly MIT license. The compatibility table is a good listing of devices with USB support in the AVR family.

The relatively new ARM Cortex-M0+ based Atmel SAM D also include USB embedded host (D21 family) and USB device capabilities (D11 and D21 families), at very competitive prices.

A lot of information is available at their site:

http://www.atmel.com/products/microcontrollers/arm/sam-d.aspx

Full disclaimer: I am not affiliated to Atmel by any means.

Atmel XMEGA is AVR based, and if you can get past the fact that they are only available in surface mount, they are zero external component for USB and run up to 32MHz.

• Some links to example products would be nice. Also, do they really require no external components? I haven't seen any USB product without a crystal to get a useful clock for the USB bus. – Trygve Laugstøl Dec 6 '12 at 6:35

At90usb162 is good. it has a hardware usb in it and runs at 16Mhz (external crystal ) and it is about 4\$

8-bit processors have few benefits over 32-bit nowadays, compare PIC/AVR and NXP/STM(ARM Cortex) performance and price. In my last project I used LPC1343(NXP) with USB - Virtual COM application. Most manufacturers are now offering free IDEs and example code.

• -1 Show me an ARM in DIP8 that's commonly available and is cheap. – AndrejaKo Dec 3 '12 at 9:52
• The topic was abouth USB, show me DIP8 processors with USB. Then compare AVR/PIC processors with USB versus cortex with USB. – Arturas Aleksandrovas Dec 3 '12 at 15:01
• ATniny45 is DIP8 and can work with software USB. – AndrejaKo Dec 3 '12 at 17:50
• Anything can work with software, LOOK AT THE TOPIC BUILT IN USB. – Arturas Aleksandrovas Dec 3 '12 at 21:08
• That's actually a good argument. Still I'll keep my down-vote because of the tone of the answer. – AndrejaKo Dec 3 '12 at 21:48