I'm trying to get a minimal breadboard setup with a 1284P. The MCU is a raw MCU that I bought from Digikey and presumably there is no bootloader (but I don't really need one because I use ISP to program). I have what I think is the minimal circuit:
XTAL1 & XTAL2 => 22pf connected to 16mhz Crystal => GND
VCC & AVCC => 5V with a .1uf decoupling cap
GND => GND
RESET => pulled up with 10k to 5V
MISO, MOSI, SCK RESET, GND & 5V connected to an AVR Dragon programmer
The problem I'm seeing is that when I run AVRDUDE to read the device signature the results are wrong and different every time. I'm running AVRDUDE with "avrdude -Cavrdude.conf -V -patmega1284p -cdragon_isp -Pusb".
I get the output below but the device signature is a different value every time I run it.
Any ideas what could be wrong with my setup? Could the problem be a bad crystal?
avrdude: Version 6.3-20171130
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "/home/wesw/dev/arduino-1.8.6/hardware/tools/avr/etc/avrdude.conf"
User configuration file is "/home/wesw/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : usb
Using Programmer : dragon_isp
avrdude: usbdev_open(): Found AVRDRAGON, serno: 00A200055459
JTAG ICE mkII sign-on message:
Communications protocol version: 1
M_MCU:
boot-loader FW version: 255
firmware version: 7.39
hardware version: 1
S_MCU:
boot-loader FW version: 255
firmware version: 7.39
hardware version: 7
Serial number: 00:a2:00:05:54:59
Device ID: AVRDRAGON
AVR Part : ATmega1284P
Chip Erase delay : 55000 us
PAGEL : PD7
BS2 : PA0
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 10 128 0 no 4096 8 0 9000 9000 0xff 0xff
flash 65 10 256 0 yes 131072 256 512 4500 4500 0xff 0xff
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
Programmer Type : DRAGON_ISP
Description : Atmel AVR Dragon in ISP mode
Vtarget : 4.9 V
SCK period : 0.50 us
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.15s
avrdude: Device signature = 0x000000 (retrying)
Reading | ################################################## | 100% 0.15s
avrdude: Device signature = 0x0f001f
avrdude: Expected signature for ATmega1284P is 1E 97 05
Double check chip, or use -F to override this check.
avrdude done. Thank you.