Forum: Compiler & IDEs Bootloader funktioniert nur einmal


von hannes (Gast)


Lesenswert?

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.

von Kai F. (kai-) Benutzerseite


Lesenswert?

das Problem hatte ich vor kurzem auch.
Stell unter AVR Studio die Fuse: Bootloader enabled an, dann klappts :)

von hannes (Gast)


Lesenswert?

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.[...]

von Bönsch (Gast)


Lesenswert?

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?

von Sepp (Gast)


Lesenswert?

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....

;)

von hannes (Gast)


Lesenswert?

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...

von Bernhard K. (Firma: SSSA - CNR Pisa) (berny74)


Lesenswert?

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...

von Bönsch (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.