Hi! Ich habe ein etwas kniffliges Problem: Ich habe einen AT90USB1287 der normalerweise von einem angeschlossenen AT86RF230 per CLKM mit einem 8 MHz Takt versorgt wird und dann per USB kommuniziert. Dafür muss der RF230 entsprechend programmiert werden, da er per default nur 1 MHz ausgibt. Dies funktioniert zuverlässig: AT90USB1287 startet mit 1 MHz, konfiguriert den RF230 auf 8 MHz, läuft mit 8 MHz und wird dann vom USB-Host enumeriert. Nun will/muss ich den Atmel USB-Bootloader für Flip benutzen. Die Schaltung soll in ein kleines Gehäuse (verpresst!) und nur der USB bleibt zugänglich. Eigentlich kein Problem per Bootloader und Flip (das Anspringen funktioniert etc). Leider habe ich hier die Henne-Ei-Problematik: Wenn ich nur den Bootloader per JTAG programmiere läuft der AT90USB1287 nur mit 1 MHz - das reicht nicht um ihn per Flip mit der restlichen SW beschreiben zu können! Wie kann ich (einfach, für mehrere Stück) sowohl Bootloader als auch die Anwendung gleichzeitig per JTAG programmieren? Dann würde jeweils für ein Update das Programm die 8 MHz setzen und dann in den BL springen können... Gruß Robert
>Wie kann ich (einfach, für >mehrere Stück) sowohl Bootloader als auch die Anwendung gleichzeitig per >JTAG programmieren? Dann würde jeweils für ein Update das Programm die 8 >MHz setzen und dann in den BL springen können... Bei einem AVR weiss ich es jetzt nicht :( Bei PIC18 compiliere ich Bootloader und Anwendung als ein Programm in ein HEX File. Vieleicht musst du einfach nur deine beiden HEX Files zusammenfügen.
Ich kapiers nicht ganz, sorry. Also, das Anspringen des Bootloaders aus der Applikation funktioniert? Kannst du dann nicht einfach ein USB-Kommando in die Applikation implementieren, welches auf 8MHz konfiguriert und dann den BL anspringt? Ralf
Ach so, vor dem Verpressen müsste dann halt schon die Applikation rein... Ralf
Du kannst eigentlich einfach die hex-dateien von applikation und bootloader zusammenkopieren. (Ich glaub die letzte zeile des ersten Teiles muss gelöscht werden). Siehe: Beitrag "Re: Bootloader+Applikation zusammen flashen"
> Du kannst eigentlich einfach die hex-dateien von applikation und > bootloader zusammenkopieren. (Ich glaub die letzte zeile des ersten > Teiles muss gelöscht werden). Ja, die letzte Zeile einer HEX-Datei ist normalerweise die Endekennung. Ich hab jetzt leider keine Info gefunden, warum der BL nicht mit 1MHz laufen sollte, wo steht das denn? Ralf
Hi! Danke für die vielen Antworten. Nur kurz zur Klärung: Der BL läuft natürlich mit 1 MHz, aber der USB-Teil des megas nicht! Und da ich nur per USB programmieren kann... Gruß Robert
> Nur kurz zur Klärung: Der BL läuft natürlich mit 1 MHz, aber der > USB-Teil des megas nicht! Und da ich nur per USB programmieren kann... Jepp, habs grad im DB gelesen... Hm... Dann müsste der Vorschlag, die beiden HEX-Files zu mischen, eigentlich gehen. Wobei du drauf achten musst, dass du über ein USB-Kommando IMMER auf 8MHz schalten und den BL starten kannst, wenn das nicht sauber programmiert ist, kann's sonst in die Hose gehen... Aber mir ist grad was aufgefallen im Datenblatt (ich habs aber nur kurz überflogen) soweit ich das gesehen habe, ist per Default der interne RC-Oscillator mit 8MHz aktiv, und die PreScaler-Fuses auf 8 eingestellt, daher die 1MHz. Kann dein Controller die Clock-Sourcen on-the-fly umschalten? Dann könntest du die Prescaler-Fuses auf einen Teiler von 1 einstellen, und dein USB-Part müsste auch laufen, oder? Wie gesagt, habs nur kurz überflogen :) Ralf
Um welche tausende Stückzahlen geht es denn, daß ein extra 8MHz Resonator für den AVR so unverschämt teuer ist? Peter
Wenn der Bootloader im Quellcode vorliegt könnte man ihn vielleicht um die Taktumschaltung erweitern ...
Ich wuerde Bootloader und Applikation mit srec_cat aneinanderhaengen und dann ueber JTAG flashen. z.B. srec_cat bootloader.hex -Intel application.mot -o mix.hex -Intel
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.