PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mega168 und Bootloader - kann nur 1x flashen ?!



moelski
03.08.2008, 02:02
Moin !

Ich habe einen Mega168 mit dem Mascom Bootloader. Bootrst ist gesetzt und der Bootloader entsprechend konfiguriert & compiliert.

Nun schiebe ich mit PonyProg den Bootloader in den AVR. Alles paletti. Dann in Bascom ein einfaches Sample geladen (Print.pas), die Settings auf meinen µC angepasst, compiliert und mit F4 zum µC geschickt. Das geht auch und das Program rennt auch.

Aber wenn ich nun nochmal F4 drücke zum Flashen über den Bootloader, dann hängt der Bootloader bzw. bekommt keine Antwort mehr vom µC. Flashe ich den Bootloader mit PonyProg neu, kann ich wieder 1x mit dem Bascom Bootloader übertragen.

Was kann das sein !?

Grüße Dominik

peterfido
03.08.2008, 07:26
Hast Du die Fuses so eingestellt, dass der Reset Vector auf den Bootloader zeigt?

moelski
03.08.2008, 09:07
Moin !

Ich hoffe doch mal:
Fusebits
http://www.logview.info/Temp/Bootloader01.png
Bootloaderanfang
http://www.logview.info/Temp/Bootloader02.png

Merkwürdig ist ja das es 1x funktioniert ...

peterfido
03.08.2008, 11:17
Na sicher. Wenn Du den Bootloader aufspielst, dann wird alles gelöscht, sodass der Code des Bootloaders das erste ist, worauf der AVR beim Booten stößt. Wenn Du jetzt aber ein Programm darauf spielst, dann findet der AVR dessen Code zuerst und kommt gar nicht mehr zum Bootloader. Demnach passt die Einsprungadresse nach dem Reset nicht.

moelski
03.08.2008, 11:38
Moin !

Hmm ok das macht dann Sinn.
Was mir aber auch noch nicht ganz klar ist ...

Der Bootloader sollte beim 168 bei 1c00 starten:

#if Loaderchip = 168 'Mega168
$loader = $1c00

Aber in PonyProg steht er bei 3800 (siehe Screenshot).

moelski
03.08.2008, 11:42
Nachtrag ... Ok das sind Words, also 1c00 * 2 = 3800 ... Das passt dann wohl doch.
Aber dennoch will bei mir der Bootloader nicht :-(

peterfido
03.08.2008, 20:27
Ich habe keinen 168er hier. Die Fuses setze ich immer mit Bascom. Evtl hilft da die Try and Error Methode.

zerush
03.08.2008, 20:42
Die Fusebits stimmen, so wie sie oben auf dem Bild zu sehen sind.
siehe auch: Fuse Calculator (http://palmavr.sourceforge.net/cgi-bin/fc.cgi?)

linux_80
03.08.2008, 21:53
Hallo,
Hast Du mal versucht, den ganzen Flash per ISP auszulesen nach dem Bootloaderflashen, um zu sehen was sich dort so tummelt, also der Bootloader noch komplett ist ?