I'm in the early stages of designing a development board around Cypress Semiconductor's PSoC 3 and 5 range of chips. Much like the Arduino, I'd like the programming experience to be very easy, and that means being able to program it and interface with it without having to buy a separate programming cable.

I've tentatively settled on a solution similar to the Arduino's: embed a less powerful MCU with built in USB support on the board, and have that MCU act as a USB interface to the main processor. Unlike the Arduino, though, I'd like the communication MCU to act as a programmer via the SWD (Serial Wire Debug) interface.

With that in mind, I need an MCU that meets the following requirements:

  • Two U(S)ARTs, one capable of being used for SWD, one as a regular UART for user defined communication with the main MCU.
  • Native full-speed USB interface.
  • Cheap in small-medium quantities (~100).
  • Ideally, no external crystal required for USB operation.
  • Ideally, available in a hand-solderable package. Definitely not BGA, preferably not QFN.

Big bonuses would be if it's an architecture with a well supported OSS toolchain or shallow learning curve. Even better (but less likely) would be if there was already example code for implementing an SWD or JTAG programmer on that platform.

My current candidates are the ATMega8U2, which meets most of the requirements, but isn't as cheap as I'd like and requires an external crystal, and the C8051T623, which is cheap and meets the requirements, but seems to have limited toolchain support and isn't an architecture I'm familiar with. (Edit: It also seems to be non-stock now, which more or less rules it out.)

Can anyone recommend an MCU that meets these requirements?


closed as off-topic by PeterJ, Ricardo, Daniel Grillo, Matt Young, Nick Alexeev Jan 29 '15 at 20:39

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.

  • \$\begingroup\$ Down/close voter - I'd appreciate if you can describe why you think this is offtopic. \$\endgroup\$ – Nick Johnson Nov 15 '12 at 14:44
  • 2
    \$\begingroup\$ Wasn't me, but I'd guess that it's because this is more of a shopping question than an electronics design question. The title also has little to do with the actual question. \$\endgroup\$ – Jim Paris Nov 15 '12 at 15:51
  • 3
    \$\begingroup\$ @JimParis My understanding was that 'shopping' questions are more about finding parts for purchasing; what I've got is a question about what parts fit my design constraints. Cost is only one of the factors I'm concerned about. Good point about the title, since it relates to my desired use, not the actual choice of component. \$\endgroup\$ – Nick Johnson Nov 15 '12 at 16:20

NXP has some USB Full Speed ARM Cortex(M0 and M3) based microcontrollers which start in the ~$1.70 range for low quantity. They do not require an external oscillator for USB and have a dedicated PLL for USB use. For example, the LPC11U12FBD48.(price from AVNET)
I would personally avoid using 8-bit microcontrollers these days unless you are going to use very little memory or code space in your application. Cortex M0 based microcontrollers often can now best 8-bit controllers when it comes to power efficiency, too.

  • 1
    \$\begingroup\$ The sole purpose of this controller is to act as a JTAG/SWD programmer and USB<->UART bridge, so an 8 bit micro is perfectly satisfactory. I'll check out NXP's range though, thanks. \$\endgroup\$ – Nick Johnson Nov 15 '12 at 19:29
  • \$\begingroup\$ It does seem a little bit silly to be using a 32bit MCU as a programming frontend to an 8bit MCU, though. \$\endgroup\$ – Nick Johnson Nov 16 '12 at 7:38

Microchip has some nice 8-bit microcontrollers with USB capabilities and internal oscillator.

The cheapest one would be PIC16F1455:

Cheap in small-medium quantities (~100).

The PIC16F1455 is available from Digikey at $1.30 in quantities of 100.

Native high-speed USB interface.

Universal Serial Bus 2.0 Module with clock recovery from USB host. Supports low-speed (1.5 Mbit/s) & full-speed (12 Mbit/s).

Ideally, no external crystal required for USB operation

Internal 48 MHz Oscillator

Ideally, available in a hand-solderable package. Definitely not BGA, preferably not QFN

Available in PDIP package.

Two U(S)ARTs, one capable of being used for SWD, one as a regular UART for user defined communication with the main MCU

Has only one USART module, but also has an SPI/I2C module.


  • \$\begingroup\$ Thanks, this looks great! I've never been a great fan of PICs because of the processor architecture, but it's hard to argue with that set of features and price. \$\endgroup\$ – Nick Johnson Nov 15 '12 at 17:31
  • \$\begingroup\$ @NickJohnson When you program it in C, its architecture matters less.. \$\endgroup\$ – m.Alin Nov 15 '12 at 17:40
  • \$\begingroup\$ Quite true; it was the impact of the architecture on availability of third-party toolchains like GCC that put me off. That's more or less academic in this application, though. \$\endgroup\$ – Nick Johnson Nov 15 '12 at 17:41
  • 1
    \$\begingroup\$ "High speed" != USB 2.0. As far as I'm aware, no PIC supports high speed USB. \$\endgroup\$ – Jim Paris Nov 15 '12 at 18:21
  • 1
    \$\begingroup\$ Yes, quite right, what I meant to say was full speed, not 2.0. \$\endgroup\$ – Nick Johnson Nov 15 '12 at 19:24

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