MEGA 2560 giving device signature error = 0x000000

I have set fuse bit mega 2560 with a file stk500boot_v2_mega2560.hex present in folder C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\stk500v2 with the command

avrdude –v –v –v –v –p ATMEGA2560 –c usbasp –P usb –e –U lock:w:0x3F:m –U efuse:w:0xFD:m –U hfuse:w:0xD8:m –U lfuse:w:0xFF:m

Now, mega is not responding and giving device signature error = 0x000000.Yikes Invalid device signature like that.

Then I read on internet about solution to recover my mega 2560 and one solution I found is to use 8MHz crystal with 2 22pF cap.

Then device signature is recognized and I got following result.

C:\Users\Jatin Wanjari>avrdude -p m2560 -c usbasp

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude: Device signature = 0x1e9801

avrdude: safemode: Fuses OK

avrdude done. Thank you.

After reading device signature correctly I replaced the 8MHz with 16MHz.

Then I burn the bootloader with another Arduino MEGA 2560 board as ISP through the link....

The bootloader is then burnt into the mega2560. But when I upload the Blink.ino then it is giving stk500v2_getsync() error.

Then I run the command into cmd ......... avrdude -p m2560 -c usbasp
to check but again I'm receiving same device signature error = 0x000000

  1. Why this is happened?
  2. As now it is giving device signature error for both 16Mhz and 8Mhz. What I do next.
  3. Should I use other crystal like 1,2, 4 MHz etc.
    4.Why it is set to external clock on fuse setting for the first time as these are default fuse set for the mega2560 given in board.txt file in the installed folder.