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?