I was playing around with setting the "system clock prescalar" (CLKPR).
I'm now in a situation where I can see that the clock is 244.9KHz, using my logic analyser and the "Clock output on PORTB0" fuse. (I am also using the /8 fuse.)
My code is still running on the ATMEGA, even after powering off/on.
AVRdude will no longer let me write to it, either to the flash or the to the fuses.
$ avrdude -p atmega328p -c avrispmkII -P usb -U flash:w:main.hex -F
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_program_enable(): bad AVRISPmkII connection status: Unknown status 0x00
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x88ab81
avrdude: Expected signature for ATmega328P is 1E 95 0F
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude done. Thank you.
Is there a failure mode where setting the AVR's clock too slow can make it unprogrammable?
The device's signature seems to have changed, it now randomly takes values which include:
- 0x888b02
- 0x88ab81
- 0x886bf8
- 0x888b02
I have already tried powering-off the ATMEGA and the AVR ISP MK-II.
Is there any way to fix this chip?