Ich habe eine Weile mit der Herstellung eines Arduino zu kämpfen (es gelang mir, eine Steckbrettversion mit einem ISP- Programmiererkabel zu erstellen). Sie sagen, dass der Arduino-Bootloader so hergestellt ist, dass keine externen Schaltkreise erforderlich sind, um den ATmega8 zu programmieren . Aber als ich mir die Schaltpläne angesehen habe, ist die normale Schaltung für die serielle Verbindung erforderlich. Was macht der Bootloader dann eigentlich?
arduino
bootloader
Rick_2047
quelle
quelle
Antworten:
Der Bootloader ist ein kleines Programm im AVR-Flash, das niemals überschrieben wird und beim Einschalten ausgeführt wird. Die Aufgabe des Bootloaders besteht darin, Programmdaten vom UART zu lesen und in den internen Flash zu schreiben. Ohne Bootloader können Sie Code nur über ISP laden.
Der AVR ATMega8 hat keinen Code im Flash. Code kann über die ISP-Pins (In-System-Programming) mit einem AVR-ISP-Programmierer (oder sogar einem anderen Arduino) hochgeladen werden.
Bei Arduino wird der ISP nur einmal (bei der Herstellung) verwendet, um einen kleinen Bootloader hochzuladen. Beim Einschalten wird der Bootloader ausgeführt und kommuniziert mit dem seriellen UART (TX + RX-Pins). Jetzt kann Arduino über die seriellen Pins mit dem STK500-Protokoll programmiert werden.
Da die seriellen Pins (normalerweise) mit einem FTDI USB-zu-Seriell-Chip verbunden sind, kann der Arduino auch über USB programmiert werden.
quelle
Sie können auf ihnen ATmega328 Chips mit dem Boot-Loader kaufen hier .
quelle
Sie bedeuten wahrscheinlich, dass Sie beim Kauf eines vorgefertigten, zusammengebauten Arduino Uno auch keinen Programmierer kaufen müssen. Wie bei vielen anderen Elektronik-Starterkits. Sie können die Arduino Uno-Karte mit nur einem USB-Kabel (A> B) programmieren.
Wenn Sie jedoch ein eigenes Arduino bauen möchten, benötigen Sie natürlich eine externe Schaltung (zum Beispiel einen AVR ISP-Programmierer) oder die Art von Max232 oder FTDI.
quelle
Die Idee hinter dem Arduino Bootloader ist, dass Sie keine Spezialität benötigen Hardware oder Schaltkreise , um sie neu zu programmieren, verglichen mit der anfänglichen Programmierung oder einem älteren Mikrocontroller, der häufig einen dedizierten Programmierer benötigt (wie PicKit2 für PIC-MCUs). Der Bootloader ermöglicht die Programmierung über eine grundlegende serielle Verbindung.
Zu dieser Zeit brauchten Sie natürlich die serielle Verbindung, normalerweise einen RS232-Konverter von TTL zu RS232. Nachdem die seriellen Schnittstellen auslaufen, war die Verbindung von USB zu seriell allgegenwärtig, sodass ein max232 oder ähnliches ersetzt werden konnte. Und jetzt macht die Verwendung eines USB-fähigen Atmel-Mikrocontrollers sogar das unnötig, sodass ein einzelnes IC mit minimalen passiven Teilen die Arduino-Funktionen und USB to Serial bereitstellen kann. Jetzt benötigen Sie nur noch ein USB-Kabel und einige passive, um eine Skizze hochzuladen. Die anfängliche Programmierung des Bootloaders erfordert weiterhin die herkömmliche ICSP-Programmierung.
quelle