Fuse Bits Set to External Clock

Being the silly guy that I am, I accidentally set the Fuse Bits - CLKSEL of my ATMega32 to 0000 (which is External Clock) instead of 1111 (External Crystal).

Is there a simple way to fix this?

Thanks in advance.

If you’re using Olimex programmers you’re screwed, especially if it’s a SMD type processor.

To fix it you’ll need to purchase a STK500 programmer (such as the Atmel STK500 starter kit programmer or the Atmel ISP programmer), which has a connector compatible with the STK200 Olimex uses, but it can also do high-voltage programming. AFAIK the STK500 programmers will work even if the fuse bits are incorrectly set.

If that doesn’t work and you have a DIL type AVR processor you can use HVPP (high voltage parallel programming) on a STK500 Starter Kit Programmer but you’ll need to get the processor out of it’s socket and put it in the programmer. Note: with an optional Atmel adapter you can also insert SMD type processor into the programmer but that would mean removing the SMD processor from the PCB.

Wouldn’t the simplest, cheapest way to fix this be to temporarily attach a crystal to the external clock pins of the uC, long enough to reprogram the relevant fuses?

Old post, I know.

Actually, the cheapest way would be to make your own external square wave source or tap into some other oscillating circuit. A crystal will not work because the crystal/capacitors work in conjunction with an internal oscillator circuit in the chip itself.

Other than that, parallel programming is the only way.