The cheaper, smaller, and fewer external components needed the better.
AVR would be preferred, but anything with free SDKs is good.
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It only takes a minute to sign up.
Sign up to join this communityThe cheaper, smaller, and fewer external components needed the better.
AVR would be preferred, but anything with free SDKs is good.
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.
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.
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.
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.
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.