Microcontroller Ceramic Resonator Instability

Jun 25, 2006 6 Replies

Hello,



I've made a very simple microcontroller circuit with a PIC (40 pin with a chip socket), some LEDs, and a 20MHz ceramic resonator on perfboard. The whole thing works for the most part, flashing the LEDs in the test configuration like it should. Sometimes, however, when I touch the board (even just the edges), the LEDs stop flashing or slow down. Sometimes they flicker a bit. I'm wondering what are the possible causes of this that I should be aware of (particularly for future designs). Could it be poor solder connections, damage to the resonator from the heat of soldering, poor connections from the chip socket, or something else?



Thanks, transistor


Check those 40 pins for a floating input. This is usually what reacts to 'handwaving'.

I'd also try replacing the resonator.

Luhan

Some resonators and oscillator circuits require a parallel resistor (about

1M), and capacitors to ground (47 pF or smaller), for stability. Check the specifications carefully. Also, it is possible that the board may need additional cleaning, especially for ionic (conducting) contamination that is best removed by soap and water rinses followed by drying with hot air.

I have also had IC sockets which show no connection from the IC pin to the corresponding pad on the PC board. I think this was caused by corrosion of the contact surfaces of the socket. I had to pry off the plastic housing and solder all the IC pins.

Paul

Are you sure you've got the PIC fuses set appropriately for your setup? If you have it set for the wrong type of crystal/resonator, the drive strength might be too low.

Ben Jackson http://www.ben.com/

I've never had a prblem with a resonator but i've never ran one that fast. Most PIC problems come down to power supply, reset circuit, floating pins and software in that order.

Yep - leaving low voltage program enabled on a floating pic pin kept me scratching for 1/2 day (not that thats unusual). Gave erratic operation as you describe.

Better still: LVP Enabled in compiler, PORT_B_WEAK_PULLUPS enabled too.

Result: One dead PIC that doesn't do a thing, not even light a "Hello World" LED. Until you start probing round with a DVM, get to a certain pin, and off we go ... the DVM pulls the pin low (against the pullup) and the chip exits LVP mode and starts up.

It's on my list of "Things not to do when using a PIC" ...

--------------------------------------+------------------------------------ Mike Brown: mjb[at]pootle.demon.co.uk | http://www.pootle.demon.co.uk/

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required