Go Down

Topic: Use Arduino Mega 2560 as ISP (Bootloading ATMEGA328P-PU) (Read 6 times) previous topic - next topic

Nick Gammon


The atmega328 in on a breadboard with 16 mhz crystal and 2x 22pF capacitor on pin 9 and 10.


I don't know for sure. You should probably connect pin 20 (AVCC) to +5V. You should have a 0.1 uF capacitor between VCC and GND, and AVCC and Gnd. You should probably have a 10K resistor between RESET (pin 1) and +5V.

Lentrave



The atmega328 in on a breadboard with 16 mhz crystal and 2x 22pF capacitor on pin 9 and 10.


I don't know for sure. You should probably connect pin 20 (AVCC) to +5V. You should have a 0.1 uF capacitor between VCC and GND, and AVCC and Gnd. You should probably have a 10K resistor between RESET (pin 1) and +5V.


Same problem with AVCC, 0.1 uF cap and 10K resistor

Nick Gammon


Lentrave


Post a photo please.




Uploaded with ImageShack.us

you don't see the 2 crystal cap because is under the crystal.

Nick Gammon

I can't see anything wrong. You are clearly communicating with the Mega2560 because of all the stuff that is coming back from avrdude.

However a device signature of 0x000000 seems to suggest that the Atmega328 is not responding. You could try measuring voltages (eg. on 5V) to confirm it is powered up. Other than that, it's hard to know what to suggest next.

Oh, wait. Have you connected the Gnd and +5V from one side of the breadboard to the other? I can't see it in the photo, but maybe you did outside it.

Lentrave


I can't see anything wrong. You are clearly communicating with the Mega2560 because of all the stuff that is coming back from avrdude.

However a device signature of 0x000000 seems to suggest that the Atmega328 is not responding. You could try measuring voltages (eg. on 5V) to confirm it is powered up. Other than that, it's hard to know what to suggest next.

Oh, wait. Have you connected the Gnd and +5V from one side of the breadboard to the other? I can't see it in the photo, but maybe you did outside it.


Yes its under the arduino board ... I will try to Check voltage
Tanks


Nick Gammon

Well I don't know for sure what to try next. I got it working so in principle it should work. In your shoes I would be starting to swap things around. Do you have a Uno or similar you can hook the wires up to, to see if it works there? Or another programmer like a USBtinyISP? Or another chip?

Lentrave


Well I don't know for sure what to try next. I got it working so in principle it should work. In your shoes I would be starting to swap things around. Do you have a Uno or similar you can hook the wires up to, to see if it works there? Or another programmer like a USBtinyISP? Or another chip?


I have other atmega328 ... i tray swap it but no success
i swap crystal and cap
i swap the breadboard
i only have an arduino mega 2560 ... i have plan to make an arduino on breadboard and upload sketch with FTDI Basic from sparkfun but without the bootloader i can do nothing... maybe i will buy another atmega238 with the bootloader preloaded to upload bootloader to my other atmega328 (ArduinoISP)... or just a UNO

RodneyD

I have the exact same issue. I only have the Mega2560 to use as ISP. I have setup the test board using Nick's diagrams, sugestions and ver2 bootloader just like "Lentrave did". I get the exact same results as Lentrave. However I did have 10 mega328p chips with no bootloader on them. None "and I did try them all" worked.
Has there been any new break through's to try???
Thanks in advance.

Nick Gammon

Show a photo? Unless you got a batch of 10 bad chips you are doing something wrong.

RodneyD

Hello Nick thanks for responding.
I finally figured it out!! "imagine a newbie like me lol
The sketch from arduino 1.0.5 Examples/ArduinoISP tells you the correct pins in the comments but does not #define them in the program. The sketch is as if you were using the UNO and not the mega2560.  When boot loading the stand alone ATmeag328p-pu from the mega2560 the lines for defining the mega's pins need to be defined here.

#include "pins_arduino.h"
define RESET  SS          // I removed this line
#define RESET 53        //added this line for mega2560 reset
#define MOSI 51         //added this line for mega2560 input
#define MISO 50       // added this line for mega2560 output
#define SCK 52            // added this line for mega2560 clock

#define LED_HB    9
#define LED_ERR   8
#define LED_PMODE 7
#define PROG_FLICKER true

#define HWVER 2
#define SWMAJ 1
#define SWMIN 18

I followed all your post for boot loading the ATmega328p "thank you for those!!" but this was the only thing keeping me from actually loading the chip. Once I changed and added those lines "BOOM" I was able to load all 10 chips no problem.

schef

I did get it to work.
The chip is 328p.
I connected 22uF between megas 2560 and gnd.
This is the command:

Code: [Select]
sudo avrdude -c avrisp -p atmega328p -P /dev/ttyACM0 -U flash:w:/tmp/build8745867845927178213.tmp/Blink.cpp.hex -b 19200 -v -v -v -v

The blink was created from standard example blink -> verify and using verbose option in Preferences located.


Go Up