38
\$\begingroup\$

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

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

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

10 Answers 10

23
\$\begingroup\$

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.

\$\endgroup\$
1
  • 4
    \$\begingroup\$ 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". \$\endgroup\$
    – Alnitak
    Feb 25, 2018 at 22:27
14
\$\begingroup\$

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.

\$\endgroup\$
3
  • 1
    \$\begingroup\$ 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. \$\endgroup\$ Dec 2, 2012 at 9:17
  • \$\begingroup\$ I agree. Depending on what the OP needs, this does seem to work very nicely. \$\endgroup\$ Dec 2, 2012 at 9:32
  • 1
    \$\begingroup\$ 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 \$\endgroup\$
    – JockM
    Feb 18, 2015 at 6:04
13
\$\begingroup\$

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.

\$\endgroup\$
9
\$\begingroup\$

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.

\$\endgroup\$
7
\$\begingroup\$

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.

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

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.

\$\endgroup\$
2
\$\begingroup\$

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.

\$\endgroup\$
1
\$\begingroup\$

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.

\$\endgroup\$
1
  • 1
    \$\begingroup\$ 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. \$\endgroup\$ Dec 6, 2012 at 6:35
1
\$\begingroup\$

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

\$\endgroup\$
0
\$\begingroup\$

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.

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.