ATMEGA328P-PU Bootloader laden vom Arduino Uno als ISP

Der Arduino Bootloader soll in einen neuen ATMEGA 328P-PU IC auf dem Steckbrett geladen werden.

Dazu wird der Arduino Uno als ISP (In-System-Programmer) verwendet. Dazu sind 4 Schritte notwendig.

1. Den UNO zum ISP Programmer umfunktionieren

Als erstes wird der UNO mit der Programmer Software geladen.
Dazu darf das Steckbrett noch nicht angeschlossen sein.

In der Arduino IDE unter Datei > Beispiele > ArduinoISP wird das ISP Programm geladen.
Die Einstellungen sind Tools > Board > Arduino UNO und die richtige COMx Schnittstelle.
Dann einfach hoch laden.

2. Das Steckbrett vorbereiten

Als nächstes wird das Steckbrett mit dem ATMEGA328P-PU angeschlossen. ( Sollte direkt hinter der 328 das P fehlen, wird das so nicht funktionieren, dann hilft Google weiter.)

ATMEGA328 DIL 500

Die Pinbelegung

Dann wird der 16MHz Quarz auf das Steckbrett gesetzt zwischen Pin9 und Pin10. Die beiden Kondensatoren mit 22nF fallen hier weg, sie wurden nicht benötigt.
Für die Entstörung der Stromversorgung wird noch ein 100nF Keramik Kondensator in die Stromversorgung gesetzt zwischen Pin 7 und Pin 8.

Es werden 6 Leitungen vom Uno zum Steckbrett gezogen.
UNO GND > Pin 8
UNO +5V > Pin 7
UNO 10 > Pin 1 Reset
Uno 11 > Pin 17 MOSI
Uno 12 > Pin 18 MISO
Uno 13 > Pin 19 SCK

Zusätzlich kann noch die LED13 mit Vorwiderstand auf das Steckbrett gesetzt werden mit dieser Verkabelung.
IC Pin 19 > Widerstand 330-1000 Ohm > Diode (langes Bein) / Diode (kurzes Bein) > GND
Damit kann später die Funktion prima überprüft werden.

atmega328 und ISP

Arduino Uno als ISP

3. Den Bootloader auf das Steckbrett laden

Dann wird das Board ausgewählt Tools > Board > Arduino Uno , der richtige Serielle Port eingestellt, unter Tools > Programmer > Arduino as ISP und mit Tools > Bootloader installieren der Bootloader auf das Steckbrett IC übertragen.

4. Das Programm auf das Steckbrett laden

Unter Tools > Programmer > ist Arduino as ISP weiterhin eingetragen. Dann öffne ich das Blink Beispiel unter Datei > Beispiele > Basics > Blink und lade es hoch mit Datei > Upload mit Programmer. Das ist ein wichtiger Unterschied zu der normalen Programmierung. Wenn Sie das einmal vergessen und wie gewohnt den Upload Button aufrufen, geht es nochmal bei Schritt 1 los, denn dann ist das Programm im UNO gelandet.

Jetzt wird die Verbindung UNO 13 getrennt, denn hier werden beide LEDs UNO und Steckbrett parallel geschaltet. Nun blinkt nur noch die LED auf dem Steckbrett. Damit ist das Programm Blink auf dem Steckbrett angekommen und wird richtig ausgeführt. Jetzt wird nur noch die 5V Spannungsversorgung und GND für das Steckbrett benötigt, die anderen Leitungen können entfernt werden.

atmega328 Minimalschaltung

Minimalschaltung

Das bleibt als Minimal-Schaltung mit dem ATMEGA328P-PU übrig.

von Matthias Busse

9 Gedanken zu „ATMEGA328P-PU Bootloader laden vom Arduino Uno als ISP

  1. Pingback: Den Arduino in den Schlaf Modus setzen und wieder aufwecken. | Shelvin – Elektronik ausprobiert und erläutert

  2. Pingback: Vergleich der Stromaufnahme von Arduino Schaltungen, vom Uno bis zum IC im Schlafmodus auf dem Steckbrett | Shelvin – Elektronik ausprobiert und erläutert

  3. Max Katzberg

    Ganz toll ich habe das mit dem bootloader gemacht und kann jetzt
    meine leeren Atmege 328P- PU auch endlich benutzen
    danke an Matthias Busse

    Antworten
  4. Pingback: Den Frequenzzähler mit LCD auf Platine aufgebaut. | Shelvin – Elektronik ausprobiert und erläutert

  5. Frank

    Hallo!
    Danke für die Anleitung!
    Das Bootloader aufspielen hat funktioniert.

    Allerdings konnte ich den mit dem Blink-Sketch bespielten
    ATMEGA328P-PU nicht mehr im Arduino UNO R3 nutzen.
    Es gab Fehlermeldungen (Sync …) beim Aufspielen neuer Sketche.
    Die nur mit Bootloader, also ohne Test-Blink-Sketch bespielten Chips
    laufen ohne Probleme. Der Chip mit Blink-Sketch ließ sich wieder mit dem
    Bootloader bespielen und läuft jetzt auch.

    Viele Grüße
    Frank

    Antworten
    1. Michael_x

      Frank,
      Der Bootloader wird beim Blink-Sketch aufspielen per Programmer wieder kaputt gemacht.
      Das geht aus Matthias‘ Beschreibung nicht so klar hervor.

      Ich würde übrigens als Minimal-Beschaltung auch den Reset-Pin über einen 10k Widerstand mit Vcc verbinden.

      Und „ganz minimal“ kommt man auch ohne Quarz aus: http://www.gammon.com.au/breadboard

      Antworten
  6. Balkonfarmer

    Kann ich mir das Ganze nicht sparen und den Chip im Arduino Uno beschreiben, ihn dann aus dem Sockel ziehen und auf die minimalbeschaltete Platine setzen?

    Antworten
      1. Peter

        Ich habe mit einem ARDUINO UNO Board auf einen ATMEGA328P U und einen ATMEGA328P PU den Bootloader gebrannt (so wie oben beschrieben). Interessant ist, dass die IC´s, auf die der Bootloader gebrannt wurde, sich nur extern, also auf dem Steckbrett mit Sketches programmieren lassen. Steckt man die ATMEGA´s zum programmieren auf das original ARDUINO UNO Board erhält man die Fehlermeldung, „programmer is not responding“. Der Original Chip vom Arduino UNO Board läßt sich dagegen problemlos im ARDUINO UNO Board programmieren. Wenn nun abwechselnd die drei ATMEGA´s Chips auf dem ARDUINO Board gesteckt sind fällt bei einem Hardware Reset auf, dass mit dem Original ATMEGA328P PU Chip, die Onboard LED dreimal kurz aufblinkt, während bei den beiden anderen ATMEGA´s die LED keine Reaktion zeigt. Gibt es also verschiedene Bootloader Programme ? Und nicht nur den ArduinoISP ?

        Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.