Custom Arduino PCB Stutters when USB Disconnected (Schematics Included)

I'm having trouble with a custom PCB I've designed that's essentially a custom Arduino clone (plus I2C EEPROM and a 5V boost circuit) and would really appreciate any input to troubleshoot this (schematic images below). I have a good DMM and digital storage scope but I'm unsure where to even start looking/testing.

[u]The Design[/u] Schematic images here: http://imgur.com/a/wiQuw PCB images here: http://imgur.com/a/bEOLW

The Arduino clone PCB consists of the Atmega328P, 2x 24LC512, and a simple 5V boost circuit. The USB board is a separate PCB and is essentially just the FTDI FT232RL connected to the Arduino PCB with a 4-position connector (GND, RX, TX, DTR). Everything on the board works great including USB serial (tested with heavy throughput @ 38400) with the exception of the issue below.

[u]The Problem[/u] When powering on the Arduino on without a USB cable attached both the RX and TX LEDs both light up (appear to be possibly flickering very rapidly) and the micro runs it's code but appears to stutter for a few milliseconds several times each second. This can be seen in my SPI controlled LEDs (clocked @ 8Mhz) that sort of 'glitch' or hang very briefly at a constant rate of 3-4 times per second.

  • If I plug the USB cable in a PC while observing the stuttering, the code immediately begins to runs smoothly.
  • When I unplug the USB from the PC the Atmega continued to run smoothly a few times (99% sure) but in all recent tests it begins to stutter again.
  • If I disconnect and reconnect power without a USB cable, I get the same symptoms (TX/RX LED on, stuttering)
  • Powering on the Atmega PCB with the USB PCB disconnected from the Atmega PCB, the code runs smoothly
  • Plugging the USB cable into the housing on the PCB but disconnected from the PC has no effect on the stuttering

There's obviously something going on between the FT232RL and the Atmega328P -- but I have no idea since I believe I've followed what are known good schematics/designs. I'll be watching this closely and am happy to post scope screenshots and/or try any ideas. Thanks so much!

I would suspect the power supply. What happens if you bypass your power converter and power the whole thing directly from 5V (e.g. from USB)?

Thanks Udo, I saw your post earlier tonight so I built another PCB that didn't have the on-board 5V boost components populated and powered directly at 5V. I just made a small jumper wire and jumped over that entire section of the PCB.

Unfortunately, it behaves identically removing . I'm now left with a very basic Arduino clone and I feel like it has to come down to the way I've separated these out into 2 boards. Also note that the board isn't powered over USB, it's powered independently (currently on bench power supply, via battery in the final version). I only carried over the 4 signals necessary from the FT232RL to the Atmega328 -- GND, TX, RX, and DTR and not the 6 usually found including 5V. If power is not applied directly to the Atmega328 PCB then it will not be powered when plugged into USB (by design).

Is it possible it's simply a signal I need to pull up/down? ...maybe even just in my software somewhere? I did confirm that the behavior is seemingly random where the device will occasionally operate normally after removing the USB from a PC and occasionally returns to a stuttering behavior. I'm a rookie but that says floating signal somewhere to me, no?

Again, I don't know how to troubleshoot things like this at all so even left field suggestions are welcome. I have quite a few more prototype PCBs I can build.

I did more research and think I've isolated the problem. It's related to the expected functionality in the Arduino Nano if used in a configuration where the micro is powered separately from the FTDI FT232RL. For example, an external regulated 5V to VIN leaving the RT232RL unpowered until it's powered by the USB bus when plugged in. See the 'Power' section here: http://arduino.cc/en/Main/ArduinoBoardNano

That link outlines the flickering TX/RX symptom and I suspect this is exactly what's going on. Can anyone give me an idea what's happening to the Atmega328P though when this happens? Since current is obviously flowing out of the serial pins to the FT232RL causing the RX/TX LEDs to flicker is it possible that it's causing some sort of overload condition in the micro that causes the stuttering symptom?

I'm currently digging through the Atmega328P datasheet to get some idea of how it would behave with this kind of load on those pins but it's over my head so far. Does this help generate some ideas?