I recently designed a circuit around the ATMEGA328P-AU (TQFP package) and was having trouble communicating with it. I salvaged an old Arduino UNO and loaded it with the ArduinoISP sketch. Hooked up the 328P through a breadboard and went to burn the bootloader and got the error message: avrdude: Device signature = 0x000000
Looking under the scope it seems as the MISO voltage doesn't even reach 1 V.
I've tried the aforementioned UNO as my ISP and also a MEGA. I've tried multiple chips in TQFP package. I even pulled the DIP 328P off of the UNO and got the same results.
I've scoured the internet for any remedies to no avail. Any help would be greatly appreciated.
Hmmm. It's been a while since I did that, but it seems to me, a lot of components are missing... have you read the tutorial on making and programming a stand alone AtMega on this site?
On the MEGA2560:
Pin 50: MOSI
Pin 51: MISO
Pin 52: SCK
Edit: I'm just now reading that the MEGA needs a 10 µF electrolytic cap across the reset and ground pins. I don't have one on hand so I'll have to try this at a later date. That being said, I'm not sure if this affects the MISO voltage.
Even through countless double and triple checks, I still manage to make mistakes.
Correction: On the MEGA2560:
Pin 50: MISO
Pin 51: MOSI
Pin 52: SCK
I double checked my wiring to make absolutely sure I have it wired up correctly and yet I'm still receiving the same error, and same low voltage from MISO.
I believe I have figured out the issue. Bear with me.
With the 328P on the breadboard, it required an 8 MHz crystal to function. The issue was that I was using 10 nF caps instead of 22 pF caps like the tutorial recommended. So crystal with no caps worked fine
Going back to my main circuit board, long story short (pun intended) there was supposed to be a 10 kΩ pull-up resistor on the reset line. Turns out it was only 5.3 Ω. So the ISP couldn't drop the reset voltage.