Hello there,
I am trying to program EEPROM fuse bit EESAVE to 1 to disable EEPROM preserve with each chip erase cycle on my Arduino NANO, but seems the device is protected against fuses programming...
Here is Makefile i use:
CHIP_ALIAS = m328p
PROGRAMMER = arduino
BAUD_RATE = '57600'
PORT = '/dev/ttyUSB0'
CHIP = 'atmega328p'
AVR_DUDE = avrdude -c ${PROGRAMMER} -b${BAUD_RATE} -P${PORT} -p${CHIP_ALIAS}
##
# Test disable ESAVE bit by bringing the bit to one
# -V -> bypasses verfications
# -F -> force
##
setFuses:
sudo ${AVR_DUDE} -D -V -F -U hfuse:w:0x08:m
readFuses:
sudo ${AVR_DUDE} -D -V -F -U hfuse:r:-:i
This is the command i use:
make setFuses readFuses
This is the output:
$ make setFuses readFuses
sudo avrdude -c arduino -b'57600' -P'/dev/ttyUSB0' -pm328p -D -V -F -U hfuse:w:0x08:m
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "0x08"
avrdude: writing hfuse (1 bytes):
Writing | | 0% 0.00s ***failed;
Writing | ################################################## | 100% 0.05s
avrdude: 1 bytes of hfuse written
avrdude: safemode: hfuse changed! Was 8, and is now 0
Would you like this fuse to be changed back? [y/n] n
avrdude: safemode: Fuses OK (E:00, H:08, L:00)
avrdude: stk500_recv(): programmer is not responding
avrdude done. Thank you.
sudo avrdude -c arduino -b'57600' -P'/dev/ttyUSB0' -pm328p -D -V -F -U hfuse:r:-:i
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading hfuse memory:
Reading | ################################################## | 100% 0.00s
avrdude: writing output file "<stdout>"
:0100000000FF
:00000001FF
avrdude: safemode: Fuses OK (E:00, H:00, L:00)
avrdude done. Thank you.
So, as you can see, there is this line:
avrdude: stk500_recv(): programmer is not responding
And
avrdude: safemode: Fuses OK (E:00, H:00, L:00)
Showing that no write has been performed on the hfuse byte.
Any ideas ?
Thanks.