Hi, ich hab ein kleines Problem mit meinem Bootloader. Ich nutze einen Atmega128 und den Bootloader von Mircosyl und dazu natürlich Megaload. Nun habe ich den Bootloader für RS485 modifiziert und die Fuses des µC geändert, so dass der Bootloaderbereich 4k groß ist und der Resetvector dort auch hinzeigt. Nun lade ich den Bootloader hoch und danach mein Prog über RS485. Leider funktioniert das Hochladen nur genau einmal, danch reagiert der Bootloader nicht mehr. Was kann das sein? Ist mein Prog zu groß und überschreibt mir den Bootloader? Kann im momentn leider nicht drauf zugreifen, aber das könnte doch sein. Ich habs auch schon mal mit der Option "SPM prohibited in Boot Section" unter AVR Studio probiert, aber kein Erfolg.
das Problem hatte ich vor kurzem auch. Stell unter AVR Studio die Fuse: Bootloader enabled an, dann klappts :)
Ich weiß nicht ganz was du meinst. Meinst du "Boot reset vector enable"? Das hab ich schon "eingeschalten".
1 | [...]Nun habe ich den Bootloader für RS485 modifiziert und die Fuses des µC |
2 | geändert, so dass der Bootloaderbereich 4k groß ist und der Resetvector |
3 | dort auch hinzeigt.[...] |
Hab zur Zeit selbiges Problem. Ich habe den Eindruck, dass der Bootloader durch das eigentliche Programm 'Zerschossen' wird. Andererseits tritt das Problem bei einer anderen, sehr ähnlichen Hardware, nicht auf. Versuchsweise habe ich die beiden Programme quer getauscht. Der Fehler bleibt auf der selben Platine. Any Ideas?
Ich habe jetzt endlich wieder zugang zu der Hardware. Ich hab gestern also noch ein bißchen gespielt. ICh hab mal ein kleines Programm übertragn, um zu testen, ob das eigentliche Programm irgendwann den Bootloader überschreibt. Tut es aber anscheinend nicht, da der gleiche Fehler auftritt. Ferner habe ich mit den Fuses des Bootloaderbereiches herumgespielt (BLB01 und BLB02 soweit ich mich erinnere). Kein Erfolg. Alles beim alten. Was mich bei der Sache wundert ist, dass es in der RS232 Version mit passender Hardware funktioniert hat. Das finde ich schon sehr komisch. Ich werde am WE aber mal darüber brüten.... ;)
Also ich werd noch verrückt. Nichts hilft. Ich hab sogar den Megaloadentwickler höchstpersönlich gefragt, aber er meinte nur, dass ich besonder HArdware benötige: "You need a RS232 to RS485 that is AUTOMATIC switch from Rx to Tx like http://www.bb-elec.com/bb-elec/literature/485oi9tb-3803ds.pdf The PC don't manage the Rx/Tx switch." Aber wenns doch einmal funktioniert...
Ich hab in den letzten Wochen auch mit Bootloadern gekämpft und der Tipp bezüglich Fuses, siehe oben, sollte nochmal geprüft werden denk ich. Wenns auf einer HW funktioniert und der anderen nicht dann liegts wohl an unterschiedlicher Einstellung der Fuses. Ich würd mal einen Programmer anschließen und die Fuses auslesen und zwischen den 2 HW-Versionen vergleichen...
Noch ein kleiner Tipp: Bei mir lag das Problem auf der Hardware-Seite. In unserer Hardware wird der üblich MAX232 verwendet. Als Reset (zum starten des Bootloaders) wurde die Baugruppe von der Spannung getrennt und wieder zugeführt. Nun war es so, das zu dem Zeitpunkt als der Bootloader auf nachricht vom PC wartet, der Max232 noch nicht betriebsbereit war. Zwei Lösungsmöglichkeiten: 1. Reset des Atmel durch den dafür vorgesehnen Reset-Pin auslösen. 2. Zeitkonstante der Reset-Schaltung (RC-Glied) verlängern (nicht getestet) 3. Bootloader so modifizieren, dass es länger auf den PC wartet. Da unsere Hardware bereits ausgeliefer war und sich in einem geschlossenem Gehäuse ohne Reset-Taster befand wurde von uns Möglichkeit 3 realisiert. Gruß Benjamin
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.