Events

23.05.2022: Tiefpassfilter

:

Elektronik | Funk | Software

Der Technik-Blog

  • Social Media

    Werbung:


    Neue Artikel


    Events

    Der Technik-Blog

    ATMega328 Bootloader Flash - AVRISP mk2 Programmer

    ATMega328 AVRISP Bootloader

    Alex @ AEQ-WEB

    Zu diesem Artikel gibt es auch ein Video auf Youtube: ATMega328 Mikrocontroller - AVRISP mk2 Bootloader brennen mit Amtel Studio

    In diesem Beitrag zeigen wir, wie auf einem ATmega328 der Bootloader über einen Programmer ohne Arduino gebrannt wird. Für den Aufbau haben wir alle Bauteile in Verwendung, die unbedingt für den Betrieb vom Mikrocontroller ohne ein Board benötigt werden. Neben einer stabilen Stromversorgung für das Flashen wird auch ein 16 MHz Quarz und 2x22pF Kondensatoren benötigt. Wenn der physikalische Aufbau fertig ist, werden wir den Optiboot Bootloader, der auch am Arduino Board verwendet wird, auf den Controller brennen.

    Amtel ATMega 328

    Der Mega328 von Amtel ist genau derselbe Controller, der auch im herkömmlichen Arduino Uno Board verwendet wird. Daher kann er auch mit dem Arduino IDE programmiert werden und unterstützt den vollen Funktionsumfang. Auch die Schnittstellen für andere Komponenten oder Shields sind vollständig kompatibel. Der Mikrocontroller kann aber auch mit dem Amtel Studio programmiert werden. Für Anfänger ist es aber am Anfang doch etwas komplizierter als mit dem Arduino IDE. Damit der Controller eigenständig läuft, ist ein Taktgeber erforderlich. Der Oszillator besteht aus einem Schwingquarz und zwei 22 pF Kondensatoren. Wichtig ist, dass sich diese drei Bauteile sehr nahe am Mikrocontroller befinden und möglichst kurze Leitungen haben. Der Oszillator gibt den Takt für den Controller vor, der z. B. für den Zeitzähler benötigt wird. Der Controller hat auch einen internen Oszillator, der auch für einfache Projekte verwendet werden könnte. Der ATMega328 hat folgende technische Eckdaten:


    Speicher 32 KB
    RAM 2KB
    Spannung 5 V
    Anz. Pins 28
    Pins (vereinfacht) 14 Digital I/O, 5 Analog IN

    Werbung:

    Der AVRISP Programmer

    Um den Mikrocontroller zu programmieren, wird ein Programmer benötigt. Dieser kann den Bootloader auf den Controller brennen bzw. flashen und in späterer folge auch die Software auf den Controller laden. Dazu werden in summe sechs Leitungen an den Controller angeschlossen. Programmer gibt es am Markt sehr viele. Den Kauf von den wirklich günstigen Programmern raten wir den Anfängern definitiv ab, da hier oft die Einrichtung für das Amtel Studio sehr kompliziert ist, Treiber nicht funktionieren oder die Firmware von diesen Programmern oft veraltet ist. Der originale Programmer von Atmel kostet ca. 30 bis 40 Euro, jedoch ist es diese einmalige Investition definitiv wert. Die Leitungen werden wie folgt angeschlossen und haben folgende Aufgaben:

    PIN 1: MISO
    Der erste PIN am Programmer ist der MISO-PIN. MISO steht für Master In/Slave Out und empfängt die Daten vom Mikrocontroller.

    PIN2: +5V
    Die 5V sind für die Stromversorgung notwendig, also ist das der Pluspol. Achtung: Diese 5 Volt sind nicht die Spannungsversorgung vom Mikrocontroller!

    PIN3: SCK
    Der SCK (Clock) gibt den Takt an. Der Takt wird immer vom Master bestimmt. Der Mikrocontroller weiß, dass er der Slave ist.

    PIN4: MOSI
    Der MOSI (Master Out/Slave In) verhält sich gleich wie der MISO, allerdings ist die Senderichtung hier vom Master zum Slave.

    PIN5: RESET
    Der Reset funktioniert wie ein herkömmlicher Reset-Knopf. Wird die Masse (GND) mit dem Reset verbunden wird der Controller zurückgesetzt und startet das Programm neu.

    PIN6: GND
    Der GND-PIN ist die Masse. Also der Minus-Pol.

    Amtel Studio & Bootloader

    Das Amtel Studio ist unsere Entwicklungsumgebung. Mit dieser Software wird dann der Mikrocontroller programmiert oder wie in diesem Fall der Bootloader gebrannt. Wenn Amtel Studio installiert ist, kann der AVRISP Programmer angeschlossen werden. Wenn die grundsätzliche Verdrahtung zwischen ATMega328 und dem Programmer stimmt, muss die LED permanent grün leuchtet. Leuchtet die LED rot, liegt der höchstwahrscheinlich an der Verdrahtung zwischen den Controller und dem Programmer. Wichtig ist auch, dass die externe 5 Volt Stromversorgung vom Mikrocontroller aktiv ist. Wenn bis hier hin alles funktioniert, dann kann man im Amtel Studio unter Extras -> Device Programming das Tool zum Flashen aufrufen. In diesem Fenster wird dann der Programmer ausgewählt (AVRISP mk2) und das Device (ATMega328P). Durch einen klick auf "Apply" werden die Einstellungen gespeichert, und wenn es keine Fehlermeldung gibt, wurde die Verbindung vom PC zum Programmer bereits hergestellt. Falls eine Meldung kommt, dass der Programmer ein Update benötigt, so kann das jetzt durchgeführt werden. Wenn man jetzt auf den Read-Button klickt, sollte das Tool eine Device Signatur anzeigen und die Spannung auf ca. 5 Volt sein. Wenn das alles funktioniert hat, dann wurde alles korrekt angeschlossen und der Bootloader kann installiert werden.

    Bootloader

    Unter "Memories" muss jetzt der Pfad zur Bootloader-Datei angegeben werden. Der Optiboot Bootloader befindet sich bereits am Computer, wenn der Arduino IDE einmal installiert wurde. Ansonsten kann das HEX-File von Github heruntergeladen werden. Das benötigte File heißt "optiboot_atmega328.hex". Anschließend wird auf "Program" geklickt und das Tool fängt an, den Bootloader zu brennen.

    Werbung:

    Sicherungsregister ändern

    Im Flash-Tool muss nach dem Brennen vom Optiboot Bootloader noch ein Register geändert werden. Klickt man auf "Fuses", so findet man im Fuse-Register drei Parameter, die auf folgenden wert geändert werden müssen:
    EXTENDED: 0x05
    HIGH: 0XDE
    LOW: 0xFF
    Fuses sind Sicherheitseinstellungen, die später nicht mehr geändert werden können. In der Dokumentation eines Mikrocontrollers sind die verschiedenen Fuse-Bits beschreiben. Abschließend klickt man noch einmal auf "Program" und der Bootloader ist fertig auf den Controller gebrannt.

    Wenn der Bootloader installiert ist, ist es möglich, den Mikrocontroller zu programmieren. Das geht dann über das Amtel Studio, oder beispielsweise auch mit dem Arduino IDE. Alle weiteren Beispiele bei uns basieren immer nach den Aufbau dieser Schaltung, wo der ATMega328 mit einem externen Oszillator betrieben wird und über ISP programmiert wird.

    Werbung:


    122X122

    Über den Autor

    Alex, der Gründer von AEQ-WEB. Seit über 10 Jahren beschäftigt er sich mit Computern und elektronischen Bauteilen aller Art. Neben den Hardware-Projekten entwickelt er auch Webseiten, Apps und Software für Computer.

    Top Artikel in dieser Kategorie:

    Amtel Studio ATMega328 LED Blink Example in C++

    ATMega328 LED Blink Beispiel

    • DE/EN

    In diesem Artikel zeigen wir, wie eine LED mit dem ATMega328 gesteuert wird. Programmiert wird alles in C++ mit Amtel Studio

    Weiterlesen
    ATMega328 Microcontroller

    ATMega328 I/O & Ports

    Dieser Artikel bietet eine Übersicht über alle I/O Pins sowie die drei Ports vom ATMega328 und wie diese mit der Programmiersprache C angesteuert werden

    Weiterlesen

    Social Media

    Werbung:


    Neue Artikel


    Events