Monday, April 18, 2011

UARTs

As it turned out, the issue I had in my last post was power related.  The ground path for the charge pump capacitors on the transceiver I was using was too long.  I corrected this and my skew issues went away, interestingly.  With this came clean data at 115.2 Kbps--the maximum I could do over traditional serial.

I took that opportunity to start playing with flash memory, but I'll talk more about that later.  The real thing I want to get on the record is that I later used a USB UART transceiver instead of an RS-232 one.  I've been playing with it for a while now, and it seems to have an issue where the connection will seize until power is cycled on the transceiver IC itself.  Resetting via the reset pin doesn't fix it.

From what I can tell, it's a glitch in the MCP2200 UART IC when blink mode is enabled for the RX/TX LED output pins.  If the pins are disabled or set to toggle instead, this doesn't happen.  The real curious part that makes troubleshooting it difficult is that the problem only manifests at high bitrates.  It's likely to work with blink mode enabled at 1200 bps or even 9600 bps.

No comments:

Post a Comment