Crystal Stability

A project log for Vectr - 3D Gesture Controller and Sequencer

Vectr is an open source 3D sensing controller and sequencer for modular synthesizers or anything you can dream up.

mattMatt 08/08/2014 at 12:270 Comments

I got the boards from manufacturing and had 8 sets to check out. On some of them I noticed some strange behavior, they occasionally would be slow to start up or would stall at start up and not get going. It's not a huge problem, but I'm testing to make sure there are zero problems. These types of problems come from one of four places: power, reset, clock, or firmware. I know that the power situation is good and the reset circuit is straight out of the datasheet and I also know what the beginning of the code should do, so I went looking at the clock. Sure enough, this crystal is a little slow to stabilize. I played with the parallel capacitance values for a while, but that didn't change anything. So, I went to the datasheet for the microcontroller to see if there was anything I was misunderstanding. I came across this feature called Internal/External Switchover, which allows for "Two-Speed Start-up." What it does is start the microcontroller for the internal RC (Resistor/Capacitor) Oscillator while it waits for the primary crystal oscillator to stabilize. This worked the trick, I tested it on a number of units and powered them all up a hundred times to make sure the problem was banished. Phew. Problems arising at this point can either be very expensive or time consuming. I'm glad to find solutions.