Hallo Freunde, ich habe mal wieder eine Leihenfrage. Aber vielleicht ist Sie es ja wert beantwortet zu werden? Ich würde gerne mehrere Atmel Prozessoren 168p per I2C verbinden. Dies ist jetzt nicht so die Kunst denke ich mir. Meine Frage aber ist es. Wäre es denkbar das Programm auf dem Slave Atmel über den I2C Bus (oder einem anderen Bus) auszutauschen quasi den Atmel über eine zwei draht Verbindung die nicht exclusiv dafür da ist zu Programmieren? Für antworten und vorallem Anregungen danke ich schon einmal im voraus. Gruß Thomas
>Wäre es denkbar das Programm auf dem Slave Atmel über den I2C Bus (oder >einem anderen Bus) auszutauschen quasi den Atmel über eine zwei draht >Verbindung die nicht exclusiv dafür da ist zu Programmieren? Ja, Bootloader.
Thomas F. schrieb: > ich habe mal wieder eine Leihenfrage. > Wäre es denkbar das Programm auf dem Slave Atmel über den I2C Bus (oder > einem anderen Bus) auszutauschen quasi den Atmel über eine zwei draht > Verbindung die nicht exclusiv dafür da ist zu Programmieren? Ja, mit einem Bootloader kann sich der Prozessor alles, was er zugeschickt bekommt, selber in den Flashspeicher brennen.
Ja, du könntest dir einen Bootloader schreiben, bzw. sofern vorhanden einen fertigen nehmen und anpassen. Voraussetzung ist, das der µC Bootloader-Unterstützung besitzt. Da hilft ein Blick ins Datasheet.
Erst mal danke für die schnellen Antworten :) Also wenn ich das mal richtig verstehe hat der Microcontroller zwei Speicherbereiche. Einmal einen recht kleinen Bereich (Bootloader) und zum anderen den "Programm" Bereich. Vom Ablauf her müsste es so sein, das erst das Bootloader Programm gestartet wird und anschließend von dort aus das eigentliche Programm. Wenn ich jetzt dem Bootloader sage (nur recht high Level) schau mal ob du nach dem starten 10 sec lang ob du auf deinem i2c angesprochen wirst und ein befehl zum Flashen kommt. Wenn ja, speichere das Programm (die Bytes) bitte im Programmspeicherbereich und boote anschließend daraus. (Chksum control wäre möglicherweise auch noch anzuraten ;) ) Habe ich das in etwa so richtig verstanden? Gruß Thomas
Ja so in etwa. Schau mal den Beitrag zum Thema Bootloader im Wiki nach. Prinzipiell würde ich ein Kommando für den Eintritt in den Bootloader reservieren und eines für einen Reset. Somit kannst du ohne Reset in den Bootloader umschalten und ein neues Programm flashen und danach per Befehl einen Reset auslösen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.