1

I am trying to read the fuse values for the Arduino Uno, but keep getting the following results returned back to me:

enter code hereavrdude: Version 6.0.1, compiled on Dec 16 2013 at 17:26:24
 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
 Copyright (c) 2007-2009 Joerg Wunsch
 System wide configuration file is "/usr/local/CrossPack-AVR-20131216/etc/avrdude.conf"
 User configuration file is "/Users/hd334/.avrduderc"
 User configuration file does not exist or is not a regular file, skipping
 Using Port : /dev/cu.usbmodem1421
 Using Programmer : arduino
 Overriding Baud Rate : 115200
 AVR Part : ATmega328P
 Chip Erase delay : 9000 us
 PAGEL : PD7
 BS2 : PC2
 RESET disposition : dedicated
 RETRY pulse : SCK
 serial program mode : yes
 parallel program mode : yes
 Timeout : 200
 StabDelay : 100
 CmdexeDelay : 25
 SyncLoops : 32
 ByteDelay : 0
 PollIndex : 3
 PollValue : 0x53
 Memory Detail :
 Block Poll Page Polled
 Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
 ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
 eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
 flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
 lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
 hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
 efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
 lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
 calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
 Programmer Type : Arduino
 Description : Arduino
 Hardware Version: 3
 Firmware Version: 4.4
 Vtarget : 0.3 V
 Varef : 0.3 V
 Oscillator : 28.800 kHz
 SCK period : 3.3 us
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f
avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: safemode: Fuses OK (H:00, E:00, L:00)
avrdude done. Thank you.

I have tried using avrisp as the programmer too, but this reports an invalid device signature. If I override the device signature check with -F I get the same results as above.

I am using an Uno as the ISP to another uno and have connected the two together as detailed in https://www.arduino.cc/en/Tutorial/ArduinoISP

I have boot loaded the Arduino Atmega328P boot loader and from the fuse settings given in the boards.txt file expect to see: lfuse reads 0xff hfuse reads 0xde efuse reads 0x05

Another question is with the low fuse set to 0xff the CKDIV8 is programmed so won't the clock be set to 2MHz?

Please help

asked Nov 13, 2016 at 9:23
3
  • CKDIV should be 0 to enable the divide by 8. Since it's set to 1 the clock frequency will be 16MHz (when using a 16MHz crystal, that is). Commented Nov 13, 2016 at 9:46
  • Did you do step 5 (Note for the Arduino Uno: you'll need to add a 10 uF capacitor between reset and ground.)? Commented Nov 13, 2016 at 9:48
  • I connected a 10uF cap between rst on the board to be programmed and the GND on the ISP board Commented Nov 13, 2016 at 9:50

2 Answers 2

1

Concerning your questions about clock division settings: have a look at this pretty tool, it gives you a avrdude query for setting fuses (take care!). The CKDIV8 bit of the low fuse is set by default, so an AT328p will run at 1MHz, clearing this bit will result in 8 MHz.

When flashing you should never override any checks as this may damage/lock your chip.

I see that avrdudes states the supply voltage to be 0.3 volts which is far to low for communication. Any received bits would be low level and therefore any information read will be 0. ISPs usually provide a supply voltage which often can be selected by switches on the programmer. If you are sure your programmer is allright, check your circuit in general.

Btw, which ISP-model do you use? Is your mcu assembled on a custom pcb (setup?)? If yes, do you have an arduino(like) board to verify this behaviour?

answered Nov 21, 2018 at 18:06
0

I'm using a stk500 (USB <> ISP programmer) to read atmega328p fuses. I use this cmd:

C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe -CC:"\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -v -patmega328p -cstk500 -PCOM9 -e -Ulfuse:r:-:i -Uhfuse:r:-:i -Uefuse:r:-:i 

Sometime ago I had some issues with device signatures because I missed the "p" in atmega328p definition.

As a tip, you can check the Arduino verbose to help you with more information:

FILE>> PREFERENCES

SHOW VERBOSE OUTPUT DURING: [x] COMPILATION [x] UPLOAD

answered Sep 26, 2017 at 13:37

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.