the GP7/TxLED and GP6/ RxLED I/O pins. The blink pulse
width of the TX and RX LEDs is configurable. In fact, you
can configure the TX and RX LEDs to toggle on each
message which allows your application to count incoming
and outgoing messages by simply counting the LED toggles.
While we’re on the subject of alternate GPIO pins,
GP0 doubles as the USB suspend status pin. When the
USB link goes into suspend mode, the MCP2200’s USB
suspend status pin can be used as a signal to put the
entire device into low power mode. We briefly touched
on the use of the MCP2200’s USBCFG pin which is the
alter ego of GPIO pin GP1. GPIO pins GP2 through GP5
are single-minded GPIO pins with no ulterior motives.
Years ago, I wrote an interrupt-driven UART
receive/transmit routine that buffered incoming and outgoing
bytes. I still use that code today. The idea was to not miss
an incoming byte due to a more important process that
happened to be taking up the CPU’s time at that moment.
On the transmit side, the CPU could post a byte to be
transmitted into the buffer and return to business as usual
without having to immediately worry about walking the
byte through the entire transmission process. In that we
can’t code the MCP2200 and RS-232 I/O data buffering is
important in high throughput applications, the MCP2200
engineers built a 128-byte buffer into its innards. The
MCP2200’s UART buffer is equally divided into 64 bytes
for transmit and 64 bytes for receive operations. With the
assistance of the UART buffer, the MCP2200 can support
baud rates between 300 and 1 Mbps on its TX and RX pins.
In the golden days of the BBS masters, one had to be
familiar with modems and modem control lines. Back then,
it was a must to know that the DTR (Data Terminal Ready)
signal had to trigger a DSR (Data Set Ready) signal from
the modem before anything else could happen. If you
were the “master” of a popular BBS, the RI (Ring Indicate)
signal was a constant modem companion. RTS (Request
To Send) and CTS (Clear To Send) are still in use today as
hardware flow control signals for embedded devices. With
that, the MCP2200’s I/O subsystem and hardware flow
control logic are equipped to handle situations where
RTS/CTS hardware flow control is employed.
AN MCP2200 HARDWARE DESIGN
■ PHOTO 1. Here’s a fully assembled MCP2200 USB-to-UART converter reporting for duty. All of the GPIO pins
and the TX and RX pins are terminated at a header pad.
There’s even a five volt header pad that makes the five
volts supplied via VUSB available to external circuitry.
The MCP2200 USB-to-UART converter design outlined
in Schematic 1 could easily be adapted to a breadboard.
However, the SMT components lend themselves to being
mounted on a specialized printed circuit board (PCB) like
the one you see on the drawing board in Screenshot 1.
There’s not much I can tell you about assembling the
MCP2200 USB-to-UART converter that you don’t already
know. As with any electronic project, keep your mind
glued to the details to avoid releasing the magic smoke.
There are no component polarity gotchas in this design as
all of the capacitors are nonpolarized ceramic types. You
do need to be careful when mounting the MCP2200 as
you must pay attention to the correct orientation of pin 1
of the MCP2200. If your LEDs fail to blink, check to make
sure that the cathodes of the LEDs are on the bar sides of
the LED pads. The LED cathode bars are just to the right
of the RX and TX silkscreen legends.
The MCP2200 USB-to-UART converter headers are
on 0.1 inch centers and will mate with any standard
breadboard or solderless breadboard similarly pitched. A
fully assembled
MCP2200 USB-to-UART converter
with header pins is
■ PHOTO 2. If
you’ve been keeping
up with Design
Cycle and SERVO
Magazine, you’re
already familiar with
this piece of golden
perfboard. I’ve
removed the SP3232
RS-232 converter IC
and replaced it with
our MCP2200
USB-to-UART
converter design.
60
July 2010