Arduino als ISP, der den Arduino programmiert, nicht den angeschlossenen ATmega328P

Ich versuche einen ATmega328P mit einem Arduino Uno R3 zu programmieren. Wenn ich in der Arduino IDE (Version 1.0.5) auf 'Upload to Programmer' klicke, programmiert der Arduino sich selbst und nicht den Chip. Seltsamer noch, die ArduinoISP-Skizze läuft weiterhin auf dem Arduino sowie das Programm, das auf den Chip hätte gebrannt werden sollen. Hier sind die Schritte, die ich unternehme:

ArduinoISP-Sketch ist geöffnet

  1. Extras > Boards > Arduino UNO
  2. Extras > Programmierer > AVRISP mkII
  3. Datei > Hochladen

Upload erfolgreich abgeschlossen

  1. Datei > Beispiele > 01.Grundlagen > Blinken
  2. Extras > Boards > Arduino Nano mit ATmega328
  3. Extras > Programmierer > Arduino als ISP
  4. Datei > Hochladen mit Programmierer

Keine AVRDUDE-Fehler, Upload scheint erfolgreich abgeschlossen zu sein

Nachdem ich diese Schritte ausgeführt habe, schlägt die ArduinoISP-Herzschlag-LED immer noch, aber die Pin-13-L-LED blinkt ebenfalls ein und aus, genau wie in der Blink-Skizze. Dies bleibt auch dann bestehen, wenn der Arduino manuell zurückgesetzt wird; Es ist, als ob der Arduino 2 Skizzen gleichzeitig laufen hat. Die an Pin 13 des ATmega328P angeschlossene LED blinkt nicht.

Hier meine Verkabelung:

Verdrahtung

HINWEIS: Es gibt auch einen 10-uF-Elektrolytkondensator, den Uno zwischen RESET (+) und GND (-), der im obigen Diagramm übersehen wurde.

Kann mir jemand helfen, diesen ATmega328P zu programmieren? Ich habe 2 verschiedene Chips ausprobiert und beide hatten das gleiche Problem.

Antworten (2)

Wenn Ihr Ziel-AVR ein Atmega328P ist, warum verwenden Sie "Tools > Boards > Arduino Nano w/ ATmega328" und nicht "Tools > Boards > Arduino UNO"? Wenn Sie die ArduinoISP-Skizze hochgeladen und auf dem UNO ausgeführt und "Arduino as ISP" als Programmierer ausgewählt haben, sollte alles funktionieren.

Ein Arduino R3 sollte den 10uF-Kondensator an seinem RESET-Pin nicht benötigen, aber es schadet nicht, aber denken Sie daran, wenn Sie den Kondensator an Ort und Stelle lassen, können Sie nicht auf das UNO hochladen. Ich schlage vor, dass Sie mit einem neuen Upload des ArduinoISP-Sketch auf das UNO beginnen, den Kondensator anbringen, um das Zurücksetzen des UNO zu verhindern, und dann einfach das Blink-Sketch auf das Ziel hochladen, indem Sie "Upload using Programmer" mit "Arduino as ISP" auswählen. Stellen Sie jedoch sicher, dass der COM-Port der COM-Port für Ihr UNO ist!

Ich weiß, dass Sie dies getan haben, aber es ist wichtig, den Board-Typ "Arduino UNO" zu verwenden. Oh, übrigens, es ist eine gute Idee, einen 10K-Widerstand an VCC an den RESET-Pin des Ziel-AVR anzuschließen.

Ich habe auch angefangen, AVR zu programmieren.

Soweit ich aus meinen Recherchen erfahren habe, benötigen Sie einen Bootloader, der auf diese Chips gebrannt ist, und Sie benötigen eine Hardware, um dies zu tun.

Wenn Sie das bereits getan haben, müssen Sie das Arduino UNO so programmieren, dass es als ISP fungiert. Gehen Sie dazu zu Arduino IDE >> Datei >> Beispiele >> Arduino ISP und brennen Sie diesen Code in ARDUINO!

Wenn Sie danach das "Makefile" und die ".c"-Datei in einen Ordner legen, müssen Sie die Eingabeaufforderung öffnen und sie in den Chip flashen.

Dies ist keine aussagekräftige Antwort, da Sie dieselben Schritte beschreiben, die der Poster bereits in seiner Frage aufgeführt hat.
Bitte lesen Sie den ersten Teil der Frage und die Antwort noch einmal sorgfältig durch.
Wenn Sie die Antwort nicht verstehen, haben Sie nicht das Recht, abzustimmen.
Der erste Teil dieser Antwort ist falsch. Auf dem ISP-Ziel ist kein Bootloader erforderlich.
Ja ich bin mir sicher...
Die Chips wurden mit einem vorinstallierten Optiboot-Bootloader gekauft.
@OrangeFlash81 Vielen Dank für die Informationen. Wenn ich Ihnen nicht helfen konnte, tut es mir leid. Ich bin wie du ein Anfänger. Vielleicht hätte ich einen Kommentar schreiben sollen, keine Antwort. Aber Sie versuchen, Ihren Code auf den Arduino hochzuladen. In dieser Aufgabe wird Sketch nur zum Programmieren von Arduino verwendet, nicht für den anderen Chip. Nachdem Sie es in ISP umgewandelt haben, müssen Sie eine IDE wie WinAvr haben, um Ihren Code in C zu schreiben, ein Makefile zu erstellen und diese über die serielle Schnittstelle über Arduino auf den Chip hochzuladen.