Wie programmiere ich einen Mikrocontroller über einen anderen Mikrocontroller?

Ich arbeite derzeit an einem Projekt, das zwei separate Mikrocontroller erfordert, um zusammenzuarbeiten, aber da ich noch an dem Projekt arbeite, muss ich im Allgemeinen ihre Programme aktualisieren.

Ich konnte keine Lösung für mein Problem finden und deshalb programmiere ich den zweiten Mikrocontroller, trenne UART-Verbindungen und verbinde ihn mit dem USB-zu-TTL-Adapter. Stellen Sie nach der Programmierung diese Verbindungen erneut mit einem anderen Mikrocontroller her.

Wie Sie sehen, ist es lang, selbst wenn ich es beschreibe.

Ich verwende zwei AVRs. (Atmega32 und Atmega328p). Gibt es eine Möglichkeit 328p mit 32 zu programmieren?

HINWEIS: In der Betriebskonfiguration erfolgt die Kommunikation über serielle Kommunikation. Ich möchte miteinander programmieren, ohne diese Konfiguration zu ändern.

Wie programmierst du das erste?
@IgnacioVazquez-Abrams Mit einem HF-Modul.
Verfügt das Modul über einen GPIO, den Sie außerhalb des Kanals steuern können?
@IgnacioVazquez-Abrams Ja, aber es ist fast unmöglich, eine Stecknadel darauf zu setzen. Es sind keine Stifte daran befestigt.

Antworten (1)

Grundsätzlich besteht Ihre Aufgabe darin, einen Bootloader auf den ganz am Ende zu programmieren. Dieser Bootloader muss bestimmte Befehle über UART akzeptieren, wodurch er neu gestartet wird (Watchdog?) Und dann in den Bootloader-Abschnitt gelangt. Vom Bootloader nimmt er wieder Daten entgegen, die Ihren Anwendungsbereich überschreiben. Nachdem die Aktualisierung abgeschlossen ist, booten Sie in Ihren Anwendungsbereich (bis Sie den Befehl zum erneuten Aktualisieren erhalten).

Planen Sie an dieser Stelle eine Neugestaltung?

Ich denke, das übersteigt mein Wissen, wenn ich keinen Punkt übersehe.
Kennen Sie das Konzept eines Bootloaders?
Nicht genug. Ich weiß, was ein Bootloader ist, aber ich weiß nicht, wie man einen programmiert.
Vielleicht möchten Sie dies lesen: electronic.stackexchange.com/questions/112440/… . Betrachten Sie den Bootloader nicht als etwas sehr Komplexes und Schwieriges. Im Grunde ist es ein eigenes Programm, das bestimmte Positionen im Flash überschreiben kann. Sie benötigen eine Methode, um von Ihrer Anwendung zum Bootloader und zurück zu wechseln. Der einfachste Weg, dies zu tun, ist die Verwendung eines dedizierten Pins, aber es kann auch ein über UART gesendeter Befehl verwendet werden. Es ist sicherlich etwas Arbeit, aber es ist machbar.
Ich habe mir das Thema angeschaut und es erscheint mir sinnvoll. Ich werde es versuchen. Es sieht so aus, als wäre es eine Lösung.