Go Down

Topic: Help with device signature 0x000000 (Read 664 times) previous topic - next topic

wkramer

Hello all;

I am trying to create a prototype GPS tracker on a custom PCB, and I'm using an ATMEGA328P-AU as the main processor. However, I am having trouble burning a bootloader onto it via an ISP header; I keep getting the following error message:

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


I am using an Uno as an ArduinoISP programmer, connected as directed here. The target circuit runs at 3.3v with an 8MHz crystal oscillator, so I only have the mandatory pull-up resistor for the RESET pin, the crystal oscillator, and the 22pF capacitors installed alongside the microcontroller. Inside the Arduino application I have the target board set as Arduino Pro or Pro Mini > ATMEGA328P (3.3V, 8MHz).

Here's what I've done so far for troubleshooting:
  • Checked all connections between the ISP header and microcontroller
  • Checked the crystal oscillator using an oscilloscope; it did not oscillate
  • Reduced the upload baud rate for both the Uno and my circuit
  • Swapped out the microcontroller for an identical one; the issue persisted

Does it appear that both of my microcontrollers are nonfunctional, or is there something else I can do to make them work?

Thanks, Will.

pert

Try connecting a 10 uF capacitor between the reset and ground pins on the Uno you're using as an Arduino as ISP.

wkramer

Try connecting a 10 uF capacitor between the reset and ground pins on the Uno you're using as an Arduino as ISP.
No luck there, still getting the same error

dmjlambert

Let's see a nice clear picture in good lighting of the board and how you're connecting it.   And the schematic of the custom board.   Here is a link for how to upload and display pictures in your post.
https://forum.arduino.cc/index.php?topic=519037.0

wkramer

Let's see a nice clear picture in good lighting of the board and how you're connecting it.   And the schematic of the custom board.
Here you go.





Sorry about the two orange wires, they're all I had on hand.

dmjlambert

#5
Jun 20, 2019, 06:32 am Last Edit: Jun 20, 2019, 06:34 am by dmjlambert
That looks good, I don't see any obvious problems.  Is the crystal on the underside of the board?  What kind of crystal is it?

I don't think you need to Reduce "the upload baud rate for both the Uno and my circuit", although I'm not clear on what that means.   

It's probably normal that the crystal does not oscillate at this point, because a new MCU should be set by default with fuses that use the internal oscillator.   Fuses for external crystal will get set upon successful bootloading.   

I do agree with pert and 10 uF capacitor between the reset and ground on the programmer UNO is needed, but I don't see it in the photos.   

Something I have done before that was a mistake is plugging onto the ICSP header pins upside down because pin 1 was not clear to me.   Check that you're not doing that.   And since this is a new board, check with an ohm meter that each pin on the ICSP header is going to the pin you think it should on the MCU, and also verify none of the pins are shorted together.  Check that your MCU is oriented correctly on the board so pin 1 is connected to pin 1 of the traces, and not 90 or 180 degrees off.   

Your design is missing 0.1uF decoupling capacitors connecting as close to the MCU as possible, between the VCC and GND pins.  I'm not sure that would cause this symptom, but they are important.   

One final idea is, transfer the wires off that ICSP header all in one group to another Arduino's ICSP header and try bootloading it, and see what you get.   That would verify your programmer is working to program a known good board.   If you want to reduce possibility of wiring problems you can make a programming cable like this:  https://www.instructables.com/id/Arduino-ICSP-Programming-Cable/

Go Up