Screwed the clock settings?

Go To Last Post
2 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I have an ET-BASE AVR (ATMega128) board from Futurelec which I decided to program the fuses as:

SUT1:0 - 11
CKSEL3:0 1111
CKOPT - 1

After doing this, it will no longer communicate. I misread the datasheet, and after looking again, it says that the frequency range for this setup should be 3.0-8.0MHz.

It has a 16MHz onboard crystal oscillator. Any ideas how I might be able to recover this? I've tried parallel programming with an STK500 but not had any luck.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Psychlow wrote:
Any ideas how I might be able to recover this?
There are many posts on this forum about rescuing an AVR having the wrong fuse settings. The general idea is that because of the faulty settings, the main clock isn't running. Consequently, the only way to recover is to forcibly inject a clock signal from an external source.

To do this, you first need to have an external clock source. Since you seem to have an STK500, that would be a good candidate. Other possible sources are a signal generator, a simple oscillator circuit, perhaps a 555 timer, or even another AVR on a breadboard which has the CLKOUT capability. Typically, signal that ranges from 0 to Vcc and cycles about 100KHz to 1MHz or so should do the trick. Use a jumper wire to connect the ground of your ET-AVR to the ground of the clock source. Use another jumper wire to connect the clock source to the Xtal1 pin of the disabled AVR (verify that Xtal1 is the input pin - it is on all of the AVRs that I've looked at).

After this is all set, configure your ISP so that the ISP clock is no more than 1/4 of the injected clock frequency. You're not going to do much programming so setting it really low won't have all that much effect. I would suggest resetting the fuses to enable the internal oscillator. Then, you can disconnect the external clock and try again.

Depending on what type of jumper wires you have available, you may not be able to clip onto the Xtal1 pin. I've had this problem before and I've worked around it by hooking the jumper wire to a dissecting needle (or something similar) and using that as a probe, hand-held to the Xtal1 pin while resetting the fuses.

Don Kinzer
ZBasic Microcontrollers
http://www.zbasic.net