I have been programming an ATMega644PA with avr-gcc and avrdude on linux for a little while with no problems. Well until I decided to change some fuses. I had been using the option for avrdude -p ATMEGA644P for programming the chip even though the chip is ATMega644PA.
After reading the data sheet (and reading the fuses on the chip) I did the following
avrdude -v -c avrispmkII -p ATMEGA644P -P usb -U lfuse:w:0x63:m
The chip would no longer communicate. I realized after that the problem may have been that I set the bits for external clock rather than crystal oscillator but even with using an ATTiny to generate a 1MHz signal to the proper pin on my Mega644, I still get nothing.
Any ideas as to why the chip is unresponsive? Could it be that using avrdude's definition for the P version of the chip rather than the PA version is the cause?
And finally, What can I do to rescue my chip? Ive heard that it may be possible with High voltage programming or JTAG. Would I be able to do that with an STK500?