Forum: Mikrocontroller und Digitale Elektronik avrdude: Device signature = 0x000000


von Christian (Gast)


Lesenswert?

Hallo Leute,

ich steh hier irgendwie total am Schlauch: Habe 10 Prototypen Platinen 
vor mir, mittlerweile sieben davon bestückt aber ich kann nur eine mit 
Code bespielen.

Alle haben einen Atmega328P-AU, 16MHz Quarz und ich programmiere mit 
einem AVR ISP MKII. Bei sechs von den Boards bekomm ich
1
avrdude: AVR device initialized and ready to accept instructions
2
3
Reading | ################################################## | 100% 0.01s
4
5
avrdude: Device signature = 0x000000
6
avrdude: Yikes!  Invalid device signature.
7
         Double check connections and try again, or use -F to override
8
         this check.
9
10
11
avrdude done.  Thank you.

zurück, alle Boards sind aber selbstverständlich identisch. Woran kann 
denn das liegen? Ich komm nicht dahinter....

Vielen Dank!

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Christian schrieb:
> Woran kann
> denn das liegen?

Lötfehler?

ISP-Takt zu hoch?  Fang mal mit avrdude ... -B10 an (100 kHz ISP-Takt),
um auf der sicheren Seite zu sein.

von Christian (Gast)


Lesenswert?

WOW! Zu großartig, um wahr zu sein!! Zwei Tage umsonst mit Fehlersuche 
verscchwendet... Ich hätte doch schon früher hier fragen sollen....

Echt 1000 Dank dafür!!!

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Was war's denn nun, der ISP-Takt?

von Christian (Gast)


Lesenswert?

Na, ich denke :) Jedenfalls kann ich mit der -B10 Option programmieren, 
wie mir lustig ist. Dauert ein kleines bisschen länger, aber immer noch 
besser als 7 Platinen in die Tonne zu treten.

Liegt das am Ende am Quarz?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Christian schrieb:
> Liegt das am Ende am Quarz?

Nö, den hast du zu diesem Zeitpunkt ja noch gar nicht aktiviert.

Normal sollten im Auslieferungszustand (wenn er mit dem internen
RC-Oszillator auf ~ 1 MHz läuft) auch -B5 erfolgreich sein.  Wenn
allerdings die Leitungsführung noch Reflektionen mit einbringt,
dann hilft es, den Takt weiter herab zu setzen.

Wenn das mit -B5 sauber funktioniert, dann kannst du aber auch als
allererstes deinen 16-MHz-Quarz in Betrieb nehmen und den clock
prescaler von 8 ausschalten.  Je nach Szenario, wäre das für den
full-swing crystal oscillator mit worst-case-Annahmen

avrdude ... -U lfuse:w:0xf7:m

oder für den low-power oscillator mit fast rising power

avrdude ... -U lfuse:w:0xef:m

Danach solltest du deutlich schneller arbeiten können, bspw. mit
-B0.5 für 2 MHz.  4 MHz zu benutzen, ist sehr "auf Kante", wenn
der Quarz nur geringfügig unter 16 MHz liegt und/oder das AVRISPmkII
geringfügig über 4 MHz, dann geht das irgendwann schief.

von Christian (Gast)


Lesenswert?

Jörg Wunsch schrieb:
> avrdude ... -U lfuse:w:0xef:m

Oh wow, das erklärt jetzt komplett alles. Deswegen war ich nämlich am 
Anfang bei zwei Platinen erfolgreich, ein erstes Programm aufzuspielen. 
Ich hatte der Einfachheit halber einfach im Ordner meines letzten 
Projektes den dortigen hex-File mitsamt konfigurierter avrdude 
Kommandozeile genommen. Und der beinhaltet genau die Fuse, die ich 
zitiert habe.
Danach habe ich erstmal von der Arduino IDE aus gearbeitet, ab dann 
konnt ich nix mehr programmieren. Höchstinteressant.

Wo kann ich mehr über Reflektionen in Leiterbahnen lesen?

1000 Dank noch einmal, die Prototypen sind jetzt fertig :D

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Christian schrieb:
> Wo kann ich mehr über Reflektionen in Leiterbahnen lesen?

Im HF-Forum. :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.