Bootloader ATMEGA328P-PU brennen geht nicht

Hallo zusammen,

ich verzweifle gerade und bin mit meinem Latein am Ende.

Ich habe mir vor 3 Wochen einen ATMEGA328P-PU bei Reichelt bestellt und diesen mittels der Anleitung "http://arduino.cc/en/Tutorial/ArduinoISP" gebrannt. Als Boards habe ich ein original Arduino Uno und ein SainSmart UNO R3 benutzt. Auf dem SainSmart Board war der zu brennende 328P-PU aufgesteckt. Das ganze hat auf Anhieb geklappt.

In der Vorfreude keine 20-25 Euro mehr für ein komplettes Arduino Board ausgeben zu müssen, habe ich mir 3 weitere 328P-PU bei Reichelt bestellt. Als diese bei mir eintrafen, habe ich sofort versucht diese - mit meiner vorgenannten Methode - mit einem Bootloader zu versehen. Leider ohne Erfolg, keiner der 3 neuen 328P-PU wollte den Bootloader annehmen. Ich erhielt bei meinen Versuchen überwiegend die Fehlermeldung "avrdude: Yikes! Invalid device signature.".

Nach etlichen Stunden Suche im Internet habe ich u.a. eine Lösung gefunden, die in der avrdude-Config-Datei die Signatur des 328P ändert. Leider hat auch dieser Lösungsansatz nicht funktioniert. Völlig entnervt habe ich weiter gesucht und den folgenden Beitrag von Erik Bartmann gefunden: "cc2.tv-Fan-Club | ATM18/AVR, Arduino + Sonstiges | Wie brenne ich einen Arduino-Bootloader?". In diesem Beitrag wird beschrieben, wie man einen Bootloader mittels eines Diamex AVR-Programmers auf einen ATMEL 328 brennen kann. In der Hoffnung auf Besserung habe ich dann 25 Euro in die Hand genommen und diesen Programmer direkt bei Diamex bestellt.

Nach Erhalt des Programmers habe ich natürlich sofort ausprobiert, ob sich meine 3 neuen ATMEL 328P-PU mit dem Bootloader bestücken lassen. Leider auch hier wieder ohne Erfolg, ich bekam bei allen 3 Prozessoren wieder die gleiche Fehlermeldung. Das war vor ein paar Tagen.

Ich habe das Problem völlig frustriert und an mir zweifelnd vertagt und mich heute mal wieder drangesetzt. Und siehe da, der erste 328P-PU konnte problemlos mit dem Diamex Programmer gebrannt werden. Auch der nächste 328P-PU ließ sich problemlos brennen. Nur der Dritte 328P-PU lässt sich nicht mit dem neuen Bootloader brennen. Ich bekomme auch hier wieder die Fehlermeldung "avrdude: Yikes! Invalid device signature.".

Ich habe alles mir möglich versucht: Signatur des 328P in der avrdude-Config-Datei geändert, den Rechner (Windows 7 64-Bit) neu gestartet, die Treiber des Diamex neu installiert, den USB-Port des Diamex gewechselt, mehrere Arduino Programmierumgebungen ausprobiert. Leider ohne Erfolg.

Ich habe so den Eindruck, dass das brennen eines Bootloaders auf den 328P-PU vom Zufall oder/und dem Wetter abhängt.

Hat von Euch jemand ähnliche Erfahrung mit der Thematik und kann mir helfen. Ich bin jedenfalls total gefrustet.

Viele Grüße
Frank_

Meine Erfahrung auf dem Gebiet ist, dass das erfolgreiche Brennen sehr stark von einer stabilen Stromversorgung abhängt. Wie hattest Du denn den Arduino mit Strom versorgt, als Du die Brennversuche gestartet hast? Über USB? Hast Du's mal mit einem vernünftigen 9V-Netzteil versucht?

Mit dem Brennen des Bootloaders hatte ich bisher keine Probleme, nutze aber überwiegend den ISP, um den Sketch direkt (also ohne Bootloader) zu übertragen.
Hast du mail mit dem AVR-Studio versucht, die Signatur des Mikrocontrollers auszulesen, wenn die Fehlermeldung "avrdude: Yikes! Invalid device signature." kommt? Wäre auf jeden Fall ganz interessant.

pylon:
Wie hattest Du denn den Arduino mit Strom versorgt, als Du die Brennversuche gestartet hast? Über USB? Hast Du's mal mit einem vernünftigen 9V-Netzteil versucht?

Mit meinem Diamex nutze ich die Spannung vom ISP, bisher problemlos. Der MKII hat diese Option nicht, das Ziel mit Spannuzng zu versorgen. da nehme ich in der Regel 5V vom USB.

die Fehlermeldung "avrdude: Yikes! Invalid device signature.".

Die Fehlermeldung hatte ich auch, das kam bei mir, weil ich das falsche Board eingestellt hatte (Uno anstatt Leonardo). Ich habe dazu die Arduino-IDE (Mac OSX) zum brennen des Bootloaders verwendet.

Wenn man versucht mit AVRDude mit einem falschen Board einen bestimmten Bootloader zu brennen, kommt wohl die Fehlermeldung. Kann aber auch falsch sein... denn ich habe 0 Ahnung davon :slight_smile:

Hilft Dir zwar aktuell nicht weiter aber als Info für zukünftige Einkäufe.
Hier ist der 328P nicht nur billiger wie bei Reichelt, er hat auch schon den UNO Bootloader drauf: ATmega328P Arduino Uno - guloshop

DreiMalNull:
Die Fehlermeldung hatte ich auch, das kam bei mir, weil ich das falsche Board eingestellt hatte (Uno anstatt Leonardo).

Das ist soweit auch ganz logisch. Der Uno hat einen Atmega328, der Leonardo einen Atmega32U4 - unterschiedliche Mikrocontroller haben unterschiedliche Signaturen.

Zur Vollständigkeit:
Den ATmega328 gibt es in 2 Versionen:
Die normale Version: ATmega328-XX und die Picopower Version ATmega328P-XX. Diese beiden Versionen haben eine verschiedene Signatur.
Die Buchstabenkombination XX am Ende spezfiziert das Gehäuse und die Metalloberfläche der Beinchen.

Wenn Frank_ an einem Tag Probleme mit dem brennen hatte und Tags darauf ging es teilweise, ist es kein Problem mit der Signatur. Ich tippe da auf Wackelkontakte.

@Frank_
Wie brennst Du die ATmegas? auf einem Breadboard oder hast Du einen Sockel oder ZIF-Sockel?

Grüße Uwe

Vielen Dank für Eure zahlreichen Rückmeldungen. Das geht immer so schnell in diesem Forum. SPITZE !!!

@pylon: Die Stromversorgung kommt über den Diamex-Programmer (und damit über USB). Das Arduino Uno Board, auf dem der zu brennende 328P sitzt wird also über den Diamex-Programmer mit Strom versorgt.

@DreiMalNull: Ich habe immer das Uno Board eingestellt. Das ist auch das Board auf dem der zu brennende 328P sitzt. Wenn ich ein anderes Board angebe, kommt eine andere Fehlermeldung: "avrdude: Expected signature for ATmega .... is ...".

@sth77: AVR-Studio habe ich noch nicht installiert, werde das aber noch tun und mich mit dem Ergebnis wieder melden.

@MaFu: Der Hinweis auf den günstigeren 328P inkl. Bootlader ist klasse, wenn man größere Mengen bestellt, da ja noch die Versandkosten drauf kommen. Ich hatte auch noch andere Sachen bei Reichelt bestellt und deswegen die 328P gleich mitgeordert. Aber Du hast natürlich recht, für die 25 Euro des Programmers hätte ich einige 328P inkl. Bootloader bestellen können. Wenn ich vorher gewusst hätte, was noch für Probleme auf mich zu kommen, hätte ich den Programmer sicher nicht bestellt.

Zwischenzeitlich habe ich noch weitere Hinweise im englischsprachigen Teil des Forums gefunden: "http://arduino.cc/forum/index.php/topic,144249.0.html". Hier wird u.a. beschrieben wie man einen Bootloader ohne avrdude schreiben kann. Leider erhalte ich Fehlermeldungen ("verification errors" nach dem schreiben des Bootloaders), die darauf hindeuten, dass der 328P einen Defekt hat. Vielleicht versuche ich auch einen defekten Prozessor mit einem Bootloader zu versehen. Ich denke nach dem Versuch die Signatur des Mikrocontrollers auszulesen, werde ich mal einen Umtausch bei Reichelt versuchen, obwohl ich nicht damit rechne einen neuen Prozessor zu bekommen.

Gruß
Frank_

@pylon: Die Stromversorgung kommt über den Diamex-Programmer (und damit über USB). Das Arduino Uno Board, auf dem der zu brennende 328P sitzt wird also über den Diamex-Programmer mit Strom versorgt.

Hast Du schon versucht, die Boards zu tauschen? Also den Proz auf den Original-Arduino UNO stecken und den Sainsmart oder besser den ICSP-Programmer als Brenn-Controller zu verwenden? Die Power-Komponenten beim Original könnten etwas hochwertiger sein. Auch wenn alles andere nicht klappte, mit einem Programmer auf ein Original UNO-Board (dort kam der neue Prozi in die Fassung) war immer möglich bei mir. Dann mit der IDE, richtigen Programmer und richtiges Board angewählt und "Burn Bootloader".

Ansonsten hätte ich mal einen 100nF parallel zu einem 100µF Kondensator direkt auf dem Board, auf welchem der zu brennende Proz eingesteckt ist, zwischen GND und 5V eingesetzt.

uwefed:
@Frank_
Wie brennst Du die ATmegas? auf einem Breadboard oder hast Du einen Sockel oder ZIF-Sockel?

Grüße Uwe

Hallo Uwe,

ich habe die 328P auf folgende Art und Weise gebrannt (zu 1. und 2. s. auch den ersten Post):

1.) Zwei Arduino Uno Boards wie hier beschrieben: http://arduino.cc/en/Tutorial/ArduinoISP

2.) Ein Diamex Programmer und ein Arduino Uno Board wie hier beschrieben: cc2.tv-Fan-Club | ATM18/AVR, Arduino + Sonstiges | Wie brenne ich einen Arduino-Bootloader?"

3.) Ein Arduino Uno Board und ein 328P-PU auf Breadboard mit minimaler Schaltung wie hier beschrieben: Gammon Forum : Electronics : Microprocessors : How to make an Arduino-compatible minimal board

Die 3.) Variante habe ich eben erst hier (http://arduino.cc/forum/index.php/topic,144249.0.html) gefunden und ausprobiert. Leider mit den besagten Fehlermeldungen (verification errors).

Viele Grüße
Frank_

Frank_:
Wenn ich vorher gewusst hätte, was noch für Probleme auf mich zu kommen, hätte ich den Programmer sicher nicht bestellt.

Wenn man sich mit der Materie etwas intensiver beschäftigt, ist so ein Programmer aber schon brauchbar. Spätestens wenn man für kleinere Projekte auf die niedlichen Attinys ausweicht...

pylon:
Hast Du schon versucht, die Boards zu tauschen? Also den Proz auf den Original-Arduino UNO stecken und den Sainsmart oder besser den ICSP-Programmer als Brenn-Controller zu verwenden? Die Power-Komponenten beim Original könnten etwas hochwertiger sein. Auch wenn alles andere nicht klappte, mit einem Programmer auf ein Original UNO-Board (dort kam der neue Prozi in die Fassung) war immer möglich bei mir. Dann mit der IDE, richtigen Programmer und richtiges Board angewählt und "Burn Bootloader".

Hallo pylon,

Ja, ich habe beide Boards ausprobiert, leider ohne Erfolg.

Ich vermute aber aufgrund der Ergebnisse aus "http://arduino.cc/forum/index.php/topic,144249.0.html", dass der 328P-PU wohl defekt ist.

Viele Grüße
Frank_

Nachdem erst keiner der 3 Processoren funktionierte, dann aber (warum auch immer) 2 doch, würd ich mal die Softwareseite und den Programmer ausschliessen.
Daß ein IC mal funktioniert, und dann mal wieder nicht, kann ich auch nicht glauben (Laß mich aber gern eines Besseren belehren :wink:
Am wahrscheinlichsten finde ich einen Wackelkontakt (wie Uwe) oder der dritte IC gibt sich einfach nicht mit dem Strom vom Programmer zufrieden.
Bei meinem Diamex-Programmer hab ich den IC immer noch separat mit Strom versorgt.

Gruß
Reinhard

Hast Du die Anschlüsse im Sockel überprüft? Wenn man neue Chips in die Sockel presst, kann es schnell passieren, dass ein Bein daneben geht und keinen Kontakt bekommt. Dann wird der Bootloader-Upload schiefgehen. Hast Du das geprüft (Multimeter)?

sth77:
Hast du mail mit dem AVR-Studio versucht, die Signatur des Mikrocontrollers auszulesen, wenn die Fehlermeldung "avrdude: Yikes! Invalid device signature." kommt? Wäre auf jeden Fall ganz interessant.

So, ich habe das AtmelStudio 6 mal installiert. Das hat ziemlich lange gedauert (>800 MB und das ganze Microsoft Zeugs).

Beim Start habe ich unter Tools meinen STK500 hinzugefügt, konnte aber keinen 328P in der Liste finden. Die allwissende Müllhalde (Google) gab mir dann einen Artikel zurück, mit dem ich den 328P Eintrag hinzufügen konnte: Pololu - 3.b.1. Adding Devices to Atmel Studio 6

Leider scheint der Prozessor defekt zu sein. Ich erhalte jedenfalls beim Auslesen der Device Signature die Fehlermeldung "Reading device ID........Failed!" (Code 0xFFFF0F). Im Output-Fenster wird mir folgendes angezeigt:

18:55:02: [ERROR] Unexpected signature 0x001eff2a (expected 0x001e950f)., ModuleName: TCF (TCF command: Device:startSession failed.)

Ich vermute, dass der Prozessor tatsächlich defekt ist. Ich kenne mich aber mit dem AtmelStudio (früher wohl AVRStudio) nicht aus und die Fehlermeldung sagt mir eigentlich das gleiche, was ich schon von AVRdude gemeldet bekommen habe.

Ich komme leider nicht an den Prozessor heran, kann also auch keine Änderungen vornehmen wie etwa Bits setzen oder den Chip löschen.

@pylon: Der Chip sitzt fest im Sockel und keines der Beine ist verbogen.

Viele Grüße
Frank_

Es gibt noch die HV-Programmierung mit der ein zerschossener ATmega in den jungfreulichen Zustand versetzt werden kann. Da Du aber von einem neuen ATmega gestartet bist, glaube ich kaum, daß das etwas bringen könnte.
Zu Neugierde befriedigen:

Grüße Uwe

Ich habe Reichelt das Problem geschildert und war angenehm überrascht. Sie senden mir einen neuen ATMEL 328P-PU zu. Das finde ich sehr kulant.

@uwefed: Die Möglichkeit mit dem HV-Programmer werde ich demnächst ausprobieren. Ich habe leider momentan nicht alle Bauteile da, werde diese aber bei meiner nächsten Bestellung berücksichtigen.

Ich möchte mich hier nochmals für die tolle Unterstützung und die vielen Ideen bei Euch bedanken.

Viele Grüße
Frank_