Bootloader für ATMega328p-AU (SMD) brennen

Hallo zusammen,
wie der Titel schon sagt habe ich mich mal daran gewagt einen Arduino auf Basis eines ATMega328P-AU SMD-Chips zu basteln. Fürs Erste habe ich den Chip auf ein Breakout-Board gelöten. Nun wollte ich mit dem Arduino Board als ISP-Programmer den Bootloader für den Arduino UNO aufspielen aber es kommt immer der Fehler:

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

Bevor ich mir die Verkabelung jetzt zum hundertsten Mal anschaue und noch einen 2. Chip für ein Breakout-Board opfer wüsste ich gerne ob jemand Erfahrungen mit dem Brennen von SMD-Chips hat. Eigentlich sollte die Bauform ja keinen Unterschied machen oder gibt es da Unterschiede in der "device signature" (was ist das eigentlich?)? Bei der Verkabelung sollte es ja reichen einen VCC und GND Pin des Chips zu kontaktieren?

Vielen Dank und viele Grüße
Simon

Bevor ich mir die Verkabelung jetzt zum hundertsten Mal anschaue und noch einen 2. Chip für ein Breakout-Board opfer wüsste ich gerne ob jemand Erfahrungen mit dem Brennen von SMD-Chips hat. Eigentlich sollte die Bauform ja keinen Unterschied machen oder gibt es da Unterschiede in der "device signature" (was ist das eigentlich?)? Bei der Verkabelung sollte es ja reichen einen VCC und GND Pin des Chips zu kontaktieren?

Ob SMD oder THT is für den Bootloader egal (es gibt the UNO ja auch in beiden Varianten). Die Verkabelung ist aber relevant. Hast Du alle notwendigen Komponenten installiert? Häufig wird die Stromversorgung vergessen (Kondensatoren, Decoupling), dann funktioniert der Flashvorgang nicht. Ist die Taktung auch gleich wie beim Board das Du wählst (welches wählst Du überhaupt?). Die GND und Vcc Pins sind intern verbunden, aber mindestens bei den GND Pins solltest Du alle verlöten, obwohl ich auch ohne noch nie Probleme hatte.

Es wäre ratsam, dass Du die Schaltung, die Du verwendest (mit allen Verbindungen), hier postest, damit wir sie überprüfen können.

Hey pylon,
danke für deine Antwort. Ich verwende die Schaltung auf der Seite http://arduino.cc/en/Tutorial/ArduinoISP unten rechts. Hat bei der DIL-Version immer wunderbar funktioniert auch ohne 10µF Kondensator zwischen Reset und Ground. Ich hab verschiedene Boards und verschiedenen Quarze mit 4 MHz, 8 Mhz und 16 MHz ausprobiert (Arduino Uno, Arduino Pro 8MHz). Es kann ja auch sein, dass ich den Chip beim Löten einfach gekillt habe. Ich wollte aber vorher einfach sichergehen, dass ich nicht irgend nen dummen Fehler gemacht habe.

Gruß, Simon

Der 10µF-Kondensator ist bei der Versorgung mit dem UNO nicht so wichtig (das UNO-Board hat normalerweise ausreichend Stützkondensatoren), aber der 100nF-Keramik-Kondensator möglichst nahe am Chip (decoupling, weiss leider nicht, wie das auf Deutsch heisst) müsste noch hin.

Es kann ja auch sein, dass ich den Chip beim Löten einfach gekillt habe.

Gekillt ist unwahrscheinlich (braucht viel nach meiner Erfahrung), aber dass ein Bein nicht sauber gelötet ist, passiert schnell. Wenn Du von Hand gelötet hast, würde ich jedes Bein einzeln kontrollieren. Zumindest aber die Stromversorgung und die 4 Pins des ICSP-Programmers (RST, SCKL, MISO, MOSI).

Simon12:
Es kann ja auch sein, dass ich den Chip beim Löten einfach gekillt habe. Ich wollte aber vorher einfach sichergehen, dass ich nicht irgend nen dummen Fehler gemacht habe.

Als einfachen Test kannst Du bei jeder Schaltung immer den Test der Stromaufnahme machen.
Ganz simpel mit einem Multimeter mal ausmessen, wieviel mA Strom die Schaltung zieht.

Ein nackter Atmega328 an 5V @16 MHz sollte meines Erachtens nach irgendwas bei ca. 17 mA ziehen.

Wieviel mA zieht Deine Schaltung?

Bei der Verkabelung sollte es ja reichen einen VCC und GND Pin des Chips zu kontaktieren?

6 Leitungen sollten's schon sein (s. pylons letzten Kommentar)

pylon:
der 100nF-Keramik-Kondensator möglichst nahe am Chip (decoupling, weiss leider nicht, wie das auf Deutsch heisst)

www.rn-wissen.de/index.php/Abblockkondensator

Hallo,
danke für die Antworten! Läuft leider immer noch nicht! Stromaufnahme startet bei ca. 11 mA und sinkt dann auf ca. 5 mA ab. Kann man wirklich sagen, dass der Chip noch intakt ist nur weil er Strom zieht? Wird mir wohl nichts anderes übrig bleiben als noch n Chip zu opfern um das auf nem andern Board abschließend zu klären :-/ Ich löten wieder mit nem normalen Lötkolben nachdem ich mir zuletzt mit der Heißluftlötstation ein paar ICs gegrillt habe. Um die Verkabelung abschließend zu klären:
Pin 3 -> GND
Pin4 -> VCC
Parallel dazu einen 100nF Kondensator
Pin 7 -> Quarz
Pin8 -> Quarz
An jedem Pin ein 22 pF Kondensator gegen GND
Pin 15 -> DP 11 am Arduino UNO
Pin 16 -> DP 12 am Arduino UNO
Pin 17 -> DP 13 am Arduino UNO
Pin 29 -> DP 10 am Arduino mit 10kOhm gegen VCC
(TQFP-Version)

Gruß, Simon

Simon12:
Stromaufnahme startet bei ca. 11 mA und sinkt dann auf ca. 5 mA ab. Kann man wirklich sagen, dass der Chip noch intakt ist nur weil er Strom zieht?

Nein, dass eine Schaltung die ungefähr passende Stromaufnahme hat, ist kein Beweis dafür, dass die Schaltung so funktioniert wie sie soll. Das ist allenfalls ein Indiz dafür, dass es sein KÖNNTE, dass die Schaltung funktionsfähig ist.

Umgekehrt wird ein Schuh daraus: Wenn eine Schaltung entweder null oder viel zu wenig oder viel zu viel Strom zieht, dann ist die Schaltung garantiert defekt.

Mit Deinen 5 mA bist Du wohl im richtigen Bereich. Der fabrikfrische Controller taktet ja noch nicht mit dem externen Quarz, sondern mit der Werkseinstellung auf 8 MHz internem Takt. Und mit 8 MHz intern @5 Volt kommt das mit 5 mA wohl einigermaßen genau hin. Also vom Stromverbrauch her würde ich sagen: Der Controller KÖNNTE einwandfrei funktionieren.

Was ist mit den anfänglichen 11mA, wie lange mißt Du 11 mA und wann fällt es auf 5 mA ab? Könnte das von Deinem Meßgerät herrühren?

Die Verkabelung mit Deinem UNO zum Aufspielen des Bootloaders sieht mir soweit OK aus.

Hast Du bei Verwendung eines Arduino als ISP auch darauf geachtet, dass Du am Arduino die Autoreset-Funktion deaktivieren müßtest, bevor Du die Funktion "Bootloader installieren" verwenden kannst? Also erst den "Arduino as ISP" Sketch aufspielen, dann einen 10 µF Kondensator zwischen Reset und GND einfügen (verhindert Auto-Reset) und dann den "Bootloader installieren"?