AVR Programming problem

I recently soldered a ATMega328P in a TQFP package onto a PCB I designed. The conncetions seem to be fine and there are no bridges. I have used 100nF decoupling caps on the power pins. The RESET pin is connected to +5V through a 10k resistor. I use the USBasp for programming. However, the AVR does not respond to the programmer and avrdude issues the following error:

avrdude.exe -c usbasp -p m328p

avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
avrdude.exe: error: programm enable: target doesn't answer. 1
avrdude.exe: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

avrdude.exe done.  Thank you.


What could be the problem here?. The picture of the connection as well as the board layout is attached.

Also, I have the same IC in a DIP28 package, and that one seems to work fine.

EDIT: After some tinkering around, I found that the MISO pin was connected to GND. The DMM showed a resistance of 1.1Ohms. But I see no possible way in which they can be shorted. Can you suggest some possible reasons and solutions.?

• The reset pin needs a diode to VCC (see AVR042) – uhours Aug 29 '17 at 7:15
• @uhours That is recommmended for ESD protection but is not absolutely required. It should work fine without it too. – hacker804 Aug 29 '17 at 7:17
• I'm not saying it won't work, but I've fried chips by not having having it. It's definitely something to have in future designs. – uhours Aug 29 '17 at 7:23