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.

Make sure you check out my projects:

USB Serial Communication using the Microchip MCP2200 - Interfacing microcontrollers with a computer using this cheap chip.

Interfacing a PCM1725 to a PIC16F690 - Adding audio to a project by interfacing a PCM1725 DAC to a PIC16F690.

Using the Avago ADNS-2610 Sensor - Programming an optical sensor from an optical mouse.

USB Communications using the PIC18F4550 - Programming a microcontroller to communicate with a computer via the USB port

Interfacing to Microcontrollers to SD Cards - Accessing files stored on SD Cards in FAT16 format via the SPI module in a microcontroller

Building Electronic Drums - How to construct electronic drums using piezo sensors

Circuit Archive - If you are looking for other sample circuits for various uses and components, this is the place for you.

Component List - If you are looking for suppliers for different project components, I've compiled some good ones here.

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