BootLoader

http://sites.prenninger.com/arduino-uno-r3/bootloader

http://www.linksammlung.info/

http://www.schaltungen.at/

                                                                                             Wels, am 2016-11-20

BITTE nützen Sie doch rechts OBEN das Suchfeld  [                                                              ] [ Diese Site durchsuchen]

DIN A3 oder DIN A4 quer ausdrucken
**********************************************************************************
DIN A4  ausdrucken
*******************************************************

      Bootloader auf ATmega328P-PU

             Was ist ein Bootloader?

ATMEL AVRs sind tolle kleine uC-ICs, aber sie sind ein bisschen schwierig zu programmieren.
ATMEL AVRs (z.B. ARDUINO UNO R3  ATmega328) benötigen einen speziellen Programmierer und einige ausgefallene .hex Dateien, und daher sind sie nicht sehr einsteigerfreundlich.
ARDUINO UNO R3  ATmega328 hat eine Hex-Datei auf dem AVR Chips, die Sie  über die serielle Schnittstelle programmieren können, was bedeutet, alles was Sie zur Programmierung Ihrer ARDUINO UNO brauchen ist ein USB-Kabel A auf B.

Der Bootloader ist im Grunde eine Hex-Datei, die auf den ARDUINO uC bereits installiert ist.
Prg. ist sehr ähnlich dem BIOS, ähnlich wie auf einem PC.



Siehe auch Bootloader auf
http://sites.prenninger.com/arduino-uno-r3/arduino-entdecken-1

am Ende der Seite.

SparkFun


Installieren eines Arduino Bootloaders

Überblick
Haben Sie eine gemauerte Arduino, die nicht akzeptieren Code mehr?
Oder vielleicht haben Sie Ihre eigene Firmware geschrieben und möchten sie auf Ihren Arduino hochladen?
Oder vielleicht möchten Sie einfach nur mehr über die inneren Funktionen von Arduino, AVR und Mikrocontroller im Allgemeinen lernen. Nun, Sie haben Glück!

Dieses Tutorial wird Ihnen zeigen, was ein Bootloader ist, warum Sie müssen installieren / neu installieren, und gehen über den Prozess, dies zu tun.
Vorgeschlagenes Lesen

Sie können diese Tutorials ausprobieren, bevor Sie den Bootloader-Pfad fortsetzen.
Integrierte Schaltkreise
PCB Grundlagen
Was ist ein Arduino
Installieren der Arduino IDE
Serielle Peripherie-Schnittstelle (SPI)

Was ist ein Bootloader?
Atmel AVRs sind große kleine ICs, aber sie können ein bisschen schwierig zu programmieren. Sie benötigen einen speziellen Programmierer und einige fancy. Hex-Dateien, und seine nicht sehr Anfänger freundlich.
Der Arduino hat diese Fragen weitgehend beseitigt. Sie haben eine. Hex-Datei auf ihre AVR-Chips, mit denen Sie die Karte über die serielle Schnittstelle
serial port programmieren können, was bedeutet, alles, was Sie brauchen, um Ihr Arduino programmieren ist ein USB-Kabel.
Der Bootloader ist grundsätzlich eine .hex-Datei, die beim Einschalten des Boards läuft. Es ist dem
BIOS, das auf Ihrem PC läuft, sehr ähnlich. Es macht zwei Dinge.
Zuerst schaut es sich um, um zu sehen, ob der Computer versucht, es zu programmieren. Wenn es ist, packt es das Programm vom Computer und lädt es in den IC-Speicher (an einem bestimmten Ort, um den Bootloader nicht zu überschreiben).
Deshalb, wenn Sie versuchen, Code hochzuladen, setzt die Arduino IDE den Chip zurück. Dies schaltet die IC aus und wieder ein, damit der Bootloader wieder in Betrieb gehen kann.
Wenn der Computer nicht versucht, Code hochzuladen, teilt er dem Chip mit, den bereits gespeicherten Code auszuführen.
Sobald es lokalisiert und läuft Ihr Programm, die Arduino kontinuierlich Schleifen durch das Programm und tut dies, solange das Board hat Macht.

Warum einen Bootloader installieren
Wenn Sie Ihren eigenen Arduino bauen oder den IC ersetzen müssen, müssen Sie den Bootloader installieren.
Sie können auch einen schlechten Bootloader (obwohl dies sehr selten ist) und müssen den Bootloader neu installieren.
Es gibt auch Fälle, in denen Sie Ihr Brett in einer seltsamen Einstellung und Neuinstallation des Bootloaders gesetzt haben und es zurück zu den Fabrikeinstellungen ist die einfachste Weise, es zu regeln.
Wir haben Boards gesehen, wo die Leute den seriellen Port deaktiviert haben, was bedeutet, dass es keine Möglichkeit gibt, Code auf das Board hochzuladen, während es andere Möglichkeiten gibt, diese zu beheben, ist die Neuinstallation des Bootloaders wahrscheinlich der schnellste und einfachste.
Wie ich schon sagte, mit einem schlechten Bootloader ist eigentlich sehr sehr selten.
 
Wenn Sie ein neues Board, das nicht akzeptiert Code 99,9% der Zeit ist nicht der Bootloader, aber für die 1% der Zeit es ist, wird diese Anleitung helfen Ihnen, dieses Problem zu beheben.

Programmiergerät auswählen
Wir werden über 2 verschiedene Arten von Programmierern sprechen, mit denen Sie Bootloader installieren oder neu installieren können.

Option 1: Dedizierte Programmierer
Für einen schnellen Programmierer empfehlen wir den Blick in den
AVR Pocket Programmer (nur Windows).





Or, you can use the official Atmel AVR MKII programmer.



Der AVR Pocket Programmer oder die meisten billigeren Optionen funktionieren gut für die meisten Anwendungen, aber sie können Probleme mit einigen Boards, speziell diejenigen mit viel Speicher wie die ATMega2560-basierten Boards.
Option 2: Verwenden des Arduino als Programmierer

Die andere Option ergreift ein Arduino Uno (oder Duemilanove).
Wenn Sie in die Arduino IDE gehen sehen Sie eine Beispielskizze namens 'Arduino als ISP.' Wenn Sie diesen Code auf Ihren Arduino hochladen, wird er grundsätzlich als AVR-Programmierer fungieren.
Dies ist nicht wirklich für die Herstellung von Brettern oder Platten mit viel Gedächtnis empfohlen, aber in einer Prise funktioniert es ziemlich gut.
Auch ab diesem Schreiben der Code funktioniert nur auf ATmega328 Boards.
Vielleicht eines Tages wird es auf die Leonardo oder Due, aber noch nicht funktionieren.

Anschließen des Programmer
In-Circuit Serielle Programmierung (ICSP)

Es ist sehr ungewöhnlich, ICs zu programmieren, bevor sie auf eine Platine gelötet werden.
Stattdessen haben die meisten Mikrocontroller einen sogenannten In-System Programming (
ISP) Header. Insbesondere haben einige IC-Hersteller, wie Atmel und Microchip, ein spezielles ISP-Verfahren zur Programmierung ihrer ICs.
Dies wird als In-Circuit-Serial-Programmierung
(ICSP) bezeichnet. Die meisten Arduino- und Arduino-kompatiblen Karten verfügen über einen 2x3-Pin-ICSP-Header.
Einige können sogar mehr als eine haben, abhängig davon, wie viele ICs auf der Platine leben. Es bricht drei der SPI-Pins
SPI (MISO, MOSI, SCK) und Strom, Masse und Reset aus.


Dieses sind die Stifte, die Sie Ihren Programmierer an anschließen müssen, um die Firmware auf Ihrem Brett wieder aufzuladen.






Hier haben wir den Arduino Uno R3. Es hat zwei ICSP-Header: einen für den ATmega16U2 und einen für den ATmega328. Um den Bootloader auf diesem Board wieder aufzuladen, würden Sie nur den ICSP-Header für den ATmega328 verwenden.
Auf einigen kleineren Boards sehen Sie diesen Stecker möglicherweise nicht, aber die Stifte sollten an anderer Stelle ausgebrochen werden.
Ob Sie einen SMD-IC oder einen DIP-IC
SMD IC or a DIP IC  verwenden, sollten die ISP-Pins in einer Form zugänglich sein. Einige Platinen haben möglicherweise nur Testpunkte für den ISP-Header.
Wenn dies der Fall ist, möchten Sie vielleicht erwägen, einen ISP Pogo Adapter
ISP Pogo Adapter.
Dieses Kit ermöglicht es Ihnen, vorübergehend eine gute Verbindung mit Test-Test-Punkte, um Ihre IC neu programmieren.





SP Pogo Adapter Kit komplett montiert. Sie können alle Programmierer, die wir im vorherigen Abschnitt erwähnt haben, an dieses Board anschließen.
Wenn Sie Schwierigkeiten haben, die ICSP-Pins auf Ihrem speziellen Arduino-Board zu finden, können Sie diese Website
this website für detaillierte Pinbelegungen der meisten Arduino-bezogenen ICs und dann einige konsultieren.
Sobald Sie die sechs ICSP-Pins auf Ihrem Board gefunden haben, ist es Zeit, Ihren Programmierer an das Board anzuschließen.
Sie können ein Programmierkabel
programming cable verwenden, um die beiden anzuschließen, oder, wenn Sie kein Kabel haben, können Sie nur einige männlich-zu-weibliche Brückenleiter male-to-female jumper wires verwenden.
Wenn Sie einen Programmierer wie den MKII oder den Pocket Programmer verwenden, sollte Ihr Setup so aussehen:







Klicken für größeres Bild.

Oder wenn Sie das Arduino als Programmierer verwenden, sollte es wie folgt aussehen:



Working Arduino Connected to Computer                          Board to be Programmed
Arduino arbeitet mit der                                                  zu programmierenden Platine



Klicken für größeres Bild.

Hier ist eine Tabelle zu klären, welche Verbindungen gehen, wo.



Hochladen von Code - Easy Way

Die einfache Möglichkeit zum Hochladen des Bootloaders besteht darin, die Arduino IDE zu verwenden.
Öffnen Sie Ihre IDE Wählen Sie die Karte, die Sie programmieren möchten.
Dann wählen Sie den Programmierer aus (wenn Sie den Arduino als ISP verwenden, müssen Sie auch den COM-Port auswählen, den der Arduino als ISP angeschlossen hat).
Dann wählen Sie BurnBootloader. Dadurch wird die gewählte Karte übernommen und der zugehörige Bootloader in der board.txt-Datei nachgeschlagen.
Dann findet er den Bootloader im Bootloader-Ordner und installiert ihn. Dies funktioniert nur, wenn die Karte korrekt in der IDE installiert ist und Sie den richtigen Bootloader haben.

Wenn Sie aus irgendeinem Grund einen Bootloader verwenden möchten, der nicht in der Arduino IDE installiert ist, besuchen Sie den Nestbereich.
Allerdings ist es wahrscheinlich einfacher, nur installieren Sie den Bootloader von der Arduino IDE.
Für diejenigen, die neugierig auf Einstellungen wie Sicherungs-Bits, haben keine Angst. Arduino kümmert sich um all die chaotischen Details für Sie, wenn Sie Bootloader durch sie verbrennen.



Hochladen von Code - Hard Way

Der harte Weg ist für diejenigen, die die Befehlszeile verwenden möchten.
Dieses Verfahren kann mehr bevorzugt sein, wenn Sie ändern und neu zu kompilieren und wollen nicht die IDE zu halten haben, zu aktualisieren, aber ansonsten ist es ziemlich unnötig.
Wieder müssen Sie den Programmierer zu bekommen, und haken alles auf. In diesem Beispiel verwenden wir avrdude unter Windows.

Es gibt zwei Schritte für diesen Prozess. Der erste Schritt besteht darin, die Sicherungsbits einzustellen.
Fusebits sind der Teil des AVR-Chip, der Dinge wie festzustellen, ob Sie einen externen Kristall oder ob Sie braun aus Erkennung verwenden.
Die unten stehenden Befehle sind für das Arduino Uno einen ATMega328 verwenden, werden sie wahrscheinlich wie die Duemilanove auf einige andere ähnliche Platten arbeiten, aber stellen Sie sicher, dass Sie wissen, was Sie, bevor Sie mit Fusebits spielen tun
 
(HINWEIS: diese Sicherungsbits funktionieren nicht auf einer 3,3V / 8MHz-Platine).
Alle erforderlichen Sicherungs Bits sind in der boards.txt Datei für verschiedene Boards aufgeführt, aber wieder, wenn Sie eine Datei boards.txt dann installiert haben nur der einfache Weg benutzen.



Arduino as ISP: avrdude -P comport -b 19200 -c avrisp -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xD6:m -U lfuse:w:0xFF:m

AVR Pocket Programmer: avrdude -b 19200 -c usbtiny -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xD6:m -U lfuse:w:0xFF:m

The second step is actually uploading the program.

Arduino as ISP: avrdude -P comport -b 19200 -c avrisp -p m328p -v -e -U flash:w:hexfilename.hex -U lock:w:0x0F:m AVR Pocket Programmer: avrdude -b19200 -c usbtiny -p m328p -v -e -U flash:w:hexfilename.hex -U lock:w:0x0F:m

Ein letztes Bit von info. Wie bereits erwähnt, ist ein Bootloader im Wesentlichen eine .hex-Datei.
So können Sie diese Methode verwenden, um Ihre ICs hochzuladen und zu codieren.

Resources and Going Further

Für weitere Informationen über AVRs, Bootloader und blinkt Firmware auf andere Boards, schauen Sie sich diese anderen großen Tutorials.

Sie können auch unsere Tiny AVR Programmer Hookup Guide erfahren Sie mehr über das Hochladen von Code auf AVR-Chips ohne Verwendung der Arduino IDE..



Quelle:
https://learn.sparkfun.com/tutorials/installing-an-arduino-bootloader








*********************************************************
 ARDUINO  Bootloader auf ATmega328P laden



Dazu diese Schaltung aufbauen!


Frag-Duino?

Flashen ("burnen") eines ATMEL ATmega328P mit dem Arduino Uno Bootloader

In diesem FAQ wird ein Arduino Uno Standalone auf einem Breadboard aufgebaut.
Es wird vorrausgesetzt, dass der entsprechende Bootloader bereits auf dem ATMEGA 328p vorhanden ist.
Dieses Tutorial zeigt, wie man es mittels eines Arduino Boards macht.


1 Breadboard und Steckverbinder oder Lötkolben und Lochrasterplatine
1 Funktionsfähigen Arduino UNO oder Standalone


Benötigte Bauteile:

# Bezeichnung                            ~Preis
1 ATMEL ATmega 328p               2,00 €
1 Widerstand 10kOhm                0,02 €
1 Widerstand 220 Ohm               0,02 €
1 Quarz 16 MHz                             0,20 €
2 Folienkondensatoren 22pF     0,10 €
1 LED                                              0,10 €
1 IC-Sockel 28-polig                     0,10 €


https://www.frag-duino.de/index.php/maker-faq/35-programmieren-eines-atmel-atmega-328p-mit-dem-arduino-uno-bootloader


Ich habe mir eine kleine Platine dazu gebaut.
Dann unter Sketch und einem ARDUINO UNO das Programm laden mit dem der Bootloader aufgebrannt wird. Sieh Anleitung:

Arduino like ATMega328p Breakout mit 2 freien USARTs. Build in und Software USART







Extra gefertigte  Bootloader flash Platine


Als nächstes müsst ihr das Arduino Board mit dem ArduinoISP Beispiel flashen. Dazu öffnet ihr es über das Menü und Uploadet es:


 

Dann stellt ihr den Programmer unter "Tools - Programmer - Arduino as ISP" ein.


Als nächste müsst ihr über "Tools - Bootloader installieren" klicken. Die Statusanzeige sollte dann so aussehen:


und später dann so:


Falls ihr folgende Fehlermeldung bekommt, habt ihr euch beim Aufbau der obigen Schaltung vertan oder habt irgendwo kalte Lötstellen:


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


Als nächstes empfehle ich, den neu programmierten Chip zu testen.
Dazu könnt ihr ihn mit dem auf dem Arduino befindlichen Chip tauschen und z. B. mit dem Blink-Beispiel programmieren.

https://www.frag-duino.de/index.php/maker-faq/35-programmieren-eines-atmel-atmega-328p-mit-dem-arduino-uno-bootloader







*********************************************************
Standalone Arduino UNO auf einem Breadboard

In diesem FAQ wird beschrieben, wie man einen Arduino UNO Standalone auf einem Breadboard aufbauen kann.
Ziel ist es, den ATMEL ATmega 328p Microcontroller Standalone zu betreiben und somit die Kosten für ein Arduino-Projekt auf ein Minimum von etwa 3€ zu senken.
Hierbei wird ein USB-Seriell Wandler auf Basis eines CP2102 Chipsatzes verwendet.
Er wird nur für das programmieren den Microchips benötigt und wird nicht dauerhaft gebraucht.

Benötigte Bauteile:
# Bezeichnung ~Preis
1 ATMEL ATmega 328P 2,00 €
2 Elektrolytkondensator 10uF 0,08 €
1 Elektrolytkondensator 1uF 0,04 €
1 Widerstand 10kOhm 0,02 €
2 Widerstand 220Ohm 0,04 €
1 Quarz 16 MHz 0,20 €
2 Keramikkondensator 22pF 0,10 €
2 LED 0,10 €
1 L7805CV 0,25 €
1 IC-Sockel 28 Polig (Optional) 0,10 €
    ~ 3 €

 

Benötigte Werkzeuge:
# Bezeichnung
1 Breadboard und Steckverbinder oder Lötkolben und Lochrasterplatine
1 Netzteil 5V - 12V DC
1 USB-Seriell-Wandler auf Basis von CP2102

Als erstes muss der ATMEL ATMEGA 328p mit dem Arduino UNO Bootloader beschrieben werden.
Entweder ihr bestellt Chips auf denen der bereits drauf ist, oder ihr befolgt dieses Tutorial.

Die Komponenten müssen nach folgender Schaltzeichnung aufgebaut werden:


Hinweis: Bei meinem USB/Seriell-Wandler waren die RX und TX Pins vertauscht. Normalerweise muss RX an TX und umgekehrt.
Mit dieser Schaltung kann der Arduino programmiert werden,
z. B. könnte die LED an PIN 13 blinken. Der USB-UART Wandler kann danach entfernt werden.
Als Stromquelle kann dann z.B. ein 5V USB-Netzteil verwendet werden.

Der "echte" Arduino hingegen kann als Eingangsspannung 7..12V vertagen.
Um dies der obigen Schaltung zu ermöglichen, wird ein Spannungswandler L7805CV eingesetzt:



Dabei ist folgendes zu beachten:
Der Eingabestrom muss Gleichstrom, nicht Wechselstrom sein
Das Bauteil erhitzt sich je nach Leistung und Eingangsspannung.
D. h., wenn man viele 5V Verbraucher hat, muss man einen Kühlkörper an den L7805CV anbringen. Ich verwende für so etwas gerne alte CPU oder GPU Kühlkörper.



Die folgende Grafik zeigt, wie die komplette Schaltung auf einem Breadboard aufgebaut werden kann.
Ein Klick auf die entsprechende Komponente zeigt deren Details:

Sollte ein manueller Reset-Button benötigt werden, muss ein Schalter zwischen dem ATMega Reset Pin (1) und GND eingebaut werden.
Solltet ihr optional noch einen "Reset"-Switch benötigen, baut einen Schalter zwischen Pin 1 und GND ein.
Im Boards-Menü müsst ihr angeben, einen "Arduino/Genuio Uno" zu flashen. Achtet auf den korrekten seriellen Port:

Datenblätter:


https://www.frag-duino.de/maker-faq/24-standalone-arduino-auf-einem-breadboard-aufbauen






DIN A4 ausdrucken
*********************************************************

Impressum: Fritz Prenninger, Haidestr. 11A, A-4600 Wels, Ober-Österreich, mailto:schaltungen@schaltungen.at
ENDE










Comments