Using the Microchip MCP2200 for USB Serial Communication



So here is a new twist on the old USB solution. I previously wrote about creating a USB device using the Microchip 18F4550. This is a very flexible device that can be used to create any type of USB device. The problem that I have with USB communication is writing the software on the host side to handle the device. Thus, most of the features of this chip are lost on me. A few years back, when I "graduated" from using led's to show me what was going on inside the microcontroller, I started using the USART funcationality to send byte data to a computer. I bought a $30 USB Serial Port from Radio Shack, connected the PIC to it and away I went. I was pretty impressed with myself for a while, but eventually I felt like I was taking the easy way out by allowing the Serial Port to USB converter to do all of the work. That's what led me to exploring the 18F4550. I'm no wizard with programming, so I've never attempted to implement the HID class drivers or create my own drivers - I'm perfectly fine with working within the CDC class and employing a virtual serial port. When I found out about the MCP2200 produced by Microchip, I realized that I had been wasting my time (and money) using the 18F4550 as a virtual serial port. The MCP2200 is a single chip serial to USB converter that costs around $2 in single quantities, vs. $10 for the 18F4550. It requires minimal components and is very easy to setup thanks to the software provided by Microchip. Following is how I use the MCP2200 to bring my projects to the USB age.

I purchased all of the components I used from Mouser. The components used are:

-Microchip MCP2200 - 579-MCP2200-I/SO
-USB Type B Connector - 649-61729-1011BLF
-Murata 12Mhz resonator - 81-CSTCE12M0G55-R0
-470nf capacitor
-100nf capacitor

Here is the circuit schematic:

MCP2200 Schematic

And here are a couple of pictures of the actual design.

MCP2200 Circuit

MCP2200 Circuit

I first glued the MCP2200 to the USB connector, then glued the resonator to the MCP2200 using super glue. All the connections were made using the bare copper wires from the inside of a stranded wire. You can plug this in as-is and find the device in Device Manager. You will, of course, need leads coming from the MCP2200 to attach it to a microcontroller, which I suppose is next for me. I'll probably glue a header to my USB connector so that I can attach it to a breadboard. I'm thinking that I should use one with at least 11 pins so that I can have access to the TX, RX, Ground, and 8 data pins. More pictures to come once I do that.

Now that we've got it put together, we need to set the driver up on the computer. Next - Driver Installation

One thing to note is that USB serial port emulators may have issues if you are not running Service Pack 3. I ran into this problem, where the MCP2200 initializes and establishes a port but will not transmit or receive data. Microsoft issued Hotfix 918365, which corrects this problem. However, if you are running the English version of XP, this hotfix is not available because it's been incorporated into Service Pack 3. Thus, you just have to run Windows Update to get Service Pack 3 and the problem is solved.

Check out my
PIC 18F4550 USB tutorial, ADNS-2610 optical mouse sensor circuit, and Electronic Drum projects.

Also, if you are looking for suppliers for different project components, click here.

Any questions or comments - contact me at pwclark1977@hotmail.com