Kann ich über die serielle Schnittstelle einen Bootloader für Atmega schreiben?

Es gibt einen wirklich großen Preisunterschied zwischen einem leeren Atmega328-Chip und dem mit installiertem Arduino-Bootloader. In meinem Land beträgt dieser Unterschied 1:3. Das bedeutet, dass ich durch das manuelle Hochladen des Bootloaders viel Geld sparen würde, während dieser Vorgang insgesamt etwa 5 Minuten dauert.
Ich habe von der Möglichkeit gehört (aber nicht gelesen), dass ein Arduino den Bootloader auf einen anderen Atmega hochladen kann. Dies hat mindestens 2 Nachteile:

  1. Sie müssen zuerst einen Arduino haben.
  2. Sie müssen dieses Arduino in ein Programmiergerät verwandeln - damit Sie keinen Spaß damit haben können.
  3. Der Prozess wird schwer zu kontrollieren sein, bis einige fortgeschrittene Techniken implementiert sind (Kontroll-LEDs, Startknopf)

Ich besitze ein paar alte PCs mit standardmäßiger echter serieller Schnittstelle und ich habe auch einen USB-zu-Seriell-Konverter.

  • Gibt es eine Möglichkeit, eine kleine Platine zu erstellen, die direkt mit einem PC verbunden ist und dazu dient, den Bootloader auf den Chip hochzuladen?
  • Ist es für mich denkbar, eine Anwendung dafür in C++ zu erstellen? (Ich bin Anfänger, aber ich gebe nicht so schnell auf) Oder gibt es das schon?
  • Könnten Sie bitte Links zu Tutorials zu diesem Thema bereitstellen?
Warum müssen Sie einen Arduino "opfern"? Sobald es fertig ist, ziehen Sie einfach alles ab und können mit der Arbeit beginnen. Meinen Sie während der Entwicklung der Software und dem Testen?

Antworten (2)

Die Antwort ist, dass es sehr einfach ist, Ihren Arduino direkt von Ihrem Computer zu booten, indem Sie einfach eine einfache USB-zu-Seriell-Schnittstelle verwenden. Als ich meinen eigenen Arduino für einen Reprap bootete, verwendete ich einen USBTinyISP , um eine Verbindung zum Arduino herzustellen (es erfordert ein wenig Schaltung, aber es ist nicht viel) und benutzte dann AVRDUDE , um den Bootloader direkt auf den Arduino hochzuladen. Es ist offensichtlich nicht der einzige Weg, aber es ist einer, der in der Vergangenheit für mich funktioniert hat und der viel billiger ist als die Verwendung eines anderen Arduino.

Um den Arduino-Bootloader auf ein unprogrammiertes AVR-Gerät zu bringen, benötigen Sie zunächst einen speziellen Programmierer.

Es gibt jedoch eine Reihe ziemlich einfach zu bauender Programmierer, die entweder einen seriellen oder einen parallelen Anschluss verwenden.

SI-Prog ist ein Programmierer, der über die serielle Schnittstelle arbeitet. Dies funktioniert jedoch möglicherweise nicht mit einigen seriellen Anschlüssen (hauptsächlich einigen USB-Seriell-Adaptern - dies hängt vom jeweiligen Adapter ab).

PonyProg ist das Programmierdienstprogramm.


Wirklich, es wäre wahrscheinlich billiger und einfacher, einen USBtiny-ISP zu kaufen . Dieser Programmierer funktioniert mit AVRstudio und avrdude.

Nur um eine Anmerkung hinzuzufügen - ich hatte kürzlich keinen Erfolg mit dem USBasp-Programmierer . Es macht wirklich keinen Spaß, den Bootloader so oder so zu brennen.
Ich hatte noch nie nennenswerte Probleme mit einem der Programmierer, die tatsächlich von Atmel hergestellt wurden (ich habe einen AVR One und einen AvrISP MK2). Es ist wahrscheinlich ein gutes Beispiel für "Sie bekommen, wofür Sie bezahlen".