Fuses changed but backwards - oops!

Hi,

I'm still getting to grips with fuses and just made a daft mistake - I have successfully changed my fuses in the past with AVRDUDE, this time I thought I would try AVR Studio. As I clearly wasn't paying attention I entered the fuse values in backwards (they are in reverse order in AVR Studio but this is no excuse!) and now I'm locked out of accessing the SMD mounted Atmega 328p (3.3V 8Mhz) - anyone know of a fix without access to a high voltage programmer like AVR Dragon?

The fuses I wanted to set were:

Low: ff
High: da
Extended:05

The fuses I did successfully enter:

Low: 05
High: da
Extended:ff

Plan A: If you plug those values into an online fuse calculator, it shows you are set for low frequency crystal and divide clock by 8. I have no experience with doing this, so take it with a grain of salt. I have read various posts where people talk about modifying the ArduinoISP sketch so it runs slow and then it will allow you to program a chip with the clock set slow. You may be able to remove the crystal (if your board has one) and attaching a wire to XTAL1 and send a slow clock signal to it. Perhaps from an Arduino running a sketch that outputs a frequency on a pin. Maybe you can send a PWM signal out of one of the pins from the board running the ArduinoISP sketch.

Plan B: If you have access to a lot of the pins, you can solder wires onto the few additional pins you need access to for high voltage programming. High voltage programming does require access to 18 pins in addition to power and ground. De-solder circuitry which will interfere, such as reset pull up resistor. High voltage programming is reasonably easy using another working Arduino and a small number of parts. http://www.instructables.com/id/HV-Rescue-Simple/

Hi dmjlambert,

Thanks for your reply - I have quickly tried the following using the clock divisor -B function but with no joy:

avrdude -c usbtiny -p m328p -F -B4 -U lfuse:w:0xfe:m -U hfuse:w:0xda:m -U efuse:w:0xff:m - I will now try an inject a clock signal into the Xtal from another Arduino - fingers crossed.

Does programming in reverse mean the reset pin no longer works as reset as it is now a data pin? If that's the case then I think HVP is the only cure.

You could check out Nick Gammon's High Voltage Programmer
http://www.gammon.com.au/forum/?id=12898

point5:
Hi,

I'm still getting to grips with fuses and just made a daft mistake - I have successfully changed my fuses in the past with AVRDUDE, this time I thought I would try AVR Studio. As I clearly wasn't paying attention I entered the fuse values in backwards (they are in reverse order in AVR Studio but this is no excuse!) and now I'm locked out of accessing the SMD mounted Atmega 328p (3.3V 8Mhz) - anyone know of a fix without access to a high voltage programmer like AVR Dragon?

The fuses I wanted to set were:

Low: ff
High: da
Extended:05

The fuses I did successfully enter:

Low: 05
High: da
Extended:ff

Get one of these: http://mightyohm.com/blog/2010/12/new-product-hv-rescue-shield-2-0/

For $20, it's well worth it to recover fuse mistakes (of which I've made a lot). Recover two bricked AVR chips and it's paid for itself.

BTW, it's a kit, but it takes only about 10 minutes to assemble, and the little SMT stuff is already done... all you have to solder is thru-hole stuff.

I highly recommend it.

Thanks for all your help folks - sounds like I'm going to be learning some new skills with some High Voltage programming - always good to add something new to the bag of tricks - cheers from a very wet and windy UK.