Re: Selection of a USB microcontroller
- From: "John Speth" <johnspeth@xxxxxxxxx>
- Date: Thu, 26 Apr 2007 10:33:16 -0700
I am in the process of selecting a general purpose microcontroller for
several new developments.
There are several uCs with USB, but how to select the best one?
I guess some of you already have some hands-on experiences.
....
Any recommendations are highly appreciated.
While I'm no expert in USB stuff, I have made my fair share of mistakes. My
next USB outing will certainly capitalize on what I learned from my
mistakes. Here's what I found out:
The host side driver will be your biggest headache, by far. You'll need to
consider it carefully. It's usually best to choose a built-in device class
supplied by your host computer so you don't have to write, test, and pay for
compliance testing. My efforts have only supported Windows computers but
I'll bet a whole bunch of problems will surface if you choose others (like
Mac or Linux).
The downsides to my suggestion are:
1. Supporting a class driver might mean extra programming on the device side
to support the entire class whether you need the full functionality or not.
2. You might have trouble getting a good fit for you needs vs. what the
class driver will support.
3. Specifically, if you choose the COM port emulation (usbser.sys), you'll
be dogged with always wondering what the COM port is when you plug it in. I
hate that problem. Love to know if there's a solution.
The upsides is you could get lucky or even pin your decision to use a
specific chip if the chip maker will give you device code to do what you
need (for example, Cypress PSOC and USB-UART). Lots of examples and good
vendor support are key unless you're the adventurous type. Be wary of
vendors that will supply the drivers. They're not always high quality.
Alternative to built-in device classes, you can go the opposite route and
design your endpoint interfaces to suit your needs. It's much simpler from
the device side but you'll need a driver. I've had my eye on the generic
Thesycon driver. Not sure if you need to WHQL test it or not. Certainly,
if you write your own driver, it takes a good bit of programming ability,
tool investment, and testing requirements.
I'd like to hear other's opinion on the matter. It's all tradeoff (as
usual) and how one implements is probably driven by one's talents and
resources (as usual, too).
JJs
.
- Follow-Ups:
- Re: Selection of a USB microcontroller
- From: ammonton
- Re: Selection of a USB microcontroller
- From: Ulf Samuelsson
- Re: Selection of a USB microcontroller
- References:
- Selection of a USB microcontroller
- From: FD
- Selection of a USB microcontroller
- Prev by Date: Re: Crystal solution for full Automotive temp range
- Next by Date: Re: Controller for Custom LCD Glass
- Previous by thread: Re: Selection of a USB microcontroller
- Next by thread: Re: Selection of a USB microcontroller
- Index(es):
Relevant Pages
|