I need one that supports the DCD and RI inputs.. it seems to have it. It also has a on board 3.3v reg output so I could use that to drive the little uC and it has the access pin for the
5 volts from the port.
I find that at times it's best to buy ready made modules for some common off the wall usage's, since this has to work in windows. I'll be writing the host software but I want this to be a common interface, incase we decide to spread it on other platforms.
You may already know the following, but here is some generic USB-to- serial advice...
Under Windows, this will get assigned to about COM5 or above. Depending on the provided drivers and possibly what version of Windows you have, sometimes the COMx number will bump up by one every time you insert and remove the device; during development you might manage to run Windows out of COMx port names. This isn't usually a problem for end users, because they don't plug and unplug as much as you will, but it might catch some of them.
The chip probably has a fixed USB vendor and device ID, so it will always show up as something like "SiLabs CP2102 Serial Converter" to Windows. If you want it to show up as a "Jamie Niftytron", you need to be able to reprogram these IDs; some chips support this and some don't. The whole spiel is to get a USB vendor ID from the USB people, program that ID into the chip, and then ship a file to tell Windows that vendor
0x4321 is "Jamie" and device 0x1234 is "Niftytron". Note that if you program your Windows application to assume that the first COMx port that identifies as a SiLabs CP2102 is your gadget, then your first customer will have six other SiLabs CP2102 USB-to-serial converters plugged in to their PC. :)
One trap to watch out for: the USB-to-serial chip and your microcontroller have to agree on the serial parameters (bit rate, parity, stop bits, etc.) When people started retrofitting USB-to-serial chips onto existing devices, sometimes they forgot this, and their software would tell the microcontroller to switch to 9600 8N1 while the USB-to-serial chip was still on 2400 7O2. The end-user fix was to power cycle, sometimes involving dissasembly to disconnect a battery.
I agree. You probably don't want to write OS-level drivers (for any OS) if you don't have to. It depends on the end use, but right now you'd plausibly have to support four different versions of Windows (XP, Vista,
7, 8), at least a couple of different Linux kernel versions (2.6.x and something newer, probably 3.x.x), and at least a couple of different versions of OS X (probably 10.7 and 10.8).
For a while, if you wanted it to run on Linux, the standard advice was to use the Prolific PL2303 chip. The driver for this has been in the kernel for a while and works well. There may be good drivers for other chips now; I haven't looked lately.
The chip vendor will often say they support Linux, but the binary driver they provide will always be for an outdated kernel version that nobody runs. If the chip vendor provides source for a driver (uncommon), it will also only build against an old kernel, and be hard for end-users to install. If the driver ships with the kernel from kernel.org, and is present on recent versions of well-known distributions (Fedora, Debian, Gentoo, SuSE, etc), then it will probably work OK.
I don't know what the situation on OS X is like. Probably you have to trade a $1 chip for a $5 one that comes in a sleek white case, and pay Apple to get your software on iTunes, or something. :)
This happens if the USB device does not have a serial number programmed. Windows does not know if this is a new device or the same one, so it plays it safe and assumes it's a new one.
Getting rid of these stale com ports is easy. Just make Windows show nonpresent devices
and then delete them form Device Manager.
I have tried both FTDI's FT232R and SiLabs' CP2102 with a plain Ubuntu, installed off the CD. Both worked without any user intervention at all.
One thing to note about the Prolific chip: There are counterfeit chips on the market. They will not work with Prolific's official drivers if you have Windows 7 or later. There are hacked drivers available, but they don't work well. In Linux, the fake chips seem to work fine.