mikrocontroller.net

Forum: Compiler & IDEs ATmega8 mit chip45bootloader läuft nicht (Fusebits?)


Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe einen Galep-4 zum programmieren. Da es aber auf Dauer nervt den 
Controller immer aus dem Steckbrett zu holen, um ihn neu zu 
programmieren möchte ich auf ihm einen Bootloader über RS232 laufen 
lassen.

Ich habe von www.chip45.com mir den bootloader heruntergeladen und an 
den ATmega8 für 8MHz angepasst. Der Bootloader lässt sich auch starten, 
(er erwartet ein 'i' an der UART und gibt dann ein Prompt aus '>') lässt 
sich dann aber nicht wie erwartet flashen!

Ich bin mir nicht sicher wo der Fehler steckt. Vielleicht in den 
Fusebits?

Ich habe folgende gesetzt:

SPIEN
EESAVE
BOOTRST
BOOTSZ10: 01
SUT10: 01

mfg Christian

Autor: kosmonaut pirx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
bischen dürftig, dein input.

was benutzt du zur kommunikation mit dem controller? was erwartest du, 
soll passieren, und was passiert statt dessen?

mehr input plz,
bye kosmo

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Kosmo,

tschuldigung für den fehlenden input. Zur Kommunikation mit dem uC 
benutze ich die RS232, die hab ich auch schon mit einem Testprogramm auf 
dem uC mit TeraTermPro getestet. PC-seitig funktioniert die somit.

Den Bootloader hab ich für den ATmega8 mit nem Arbeitstakt 8Mhz 
kompiliert und mit nem Galep4 auf den Controller geflasht. Der 
Bootloader erwartet nach einem Reset ein 'i' und antwortet mit einem 
Prompt '>'. Das funktioniert auch noch so weit.
Jetzt soll der neue Code z.B. mit TeraTermPro übertragen werden. Aber 
wenn ich den File sende gibt es keine Reaktion. Eigentlich sollte der uC 
mit '.' antworten, so dass man ein Reaktion sieht.
Tja, sieht irgendwie so aus, als ob der Bootloader gestartet werden 
kann, dann aber nicht in der Lage ist das Programm in den Flash zu 
speicher.
Meine Vermutung wären die Fuse-Bits?!

Highfuse: 0xd2
 RSTDISB: 1
 WDTON  : 1
 SPIEN  : 0
 CKOPT  : 1
 EESAVE : 0
 BOOTSZ1: 0
 BOOTSZ0: 1
 BOOTRST: 0

Lowfuse : 0xd4
 BODLEV : 1
 BODEN  : 1
 SUT1   : 0
 SUT0   : 1
 CKSEL3 : 0
 CKSEL2 : 1
 CKSEL1 : 0
 CKSEL0 : 0

mfg Christian

Autor: kosmonaut_pirx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

die fusebits sehen für mich ganz ok aus. Deine takteinstellung ist nicht 
so, wie es per default in dem makefile steht, sollte aber egal sein.

welchen von den loadern auf der chip45-seite hast du gezogen? und was 
hast du in dem Makefile geändert? aber da sich der loader schon mal 
meldet, ist zu vermuten, dass da alles korrekt ist.

bye kosmo

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

ich hab es zuerst mit dem auf der chip45.de Seite angebotenen Loader 
versucht. Der ist schon kompiliert und kann dort so heruntergeladen 
werden.

Aber auch mit TeraTermPro funktioniert es nicht. Beide zeigen aber an, 
dass der Bootloader gestartet ist, nur mit dem Flashen funktioniert es 
nicht.

mfg Christian

Autor: kosmonaut_pirx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
kein plan, was "TeraTermPro" ist.

du schreibst, du hast den bootloader auf den atmega8 angepasst. 
gleichzeitig nimmst du aber ein vorkompiliertes image. beide aussagen 
zusammen sind nicht ganz stimmig.
bei crumb gibt es zwei bootloader.

hast du das hier?
>ATmegaBOOT_CRUMB8_F14745600_050815.hex

oder das?
>chip45boot_mega8_1k_14745600hz_pre.hex

die dateinamen von beiden legen für mich nahe, dass es sich um versionen 
für 14,... MHz takt handelt. auch wenn man sich die dateinamen anderen 
vorliegenden images anschaut.
bye kosmo

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich benutze nicht den ATmegaBoot sondern den chip45boot. Den hab ich für 
8MHz und den ATmega8 neu kompiliert.
"gleichzeitig nimmst du aber ein vorkompiliertes image."

Das vorkompilierte Image bezieht sich auf die Bootloader-Applikation für 
den PC, mit der ich den hex-File in den Flash lade.

TeraTermPro ist ein RS232-Terminal für den PC, hab ich nur zur Kontrolle 
genutzt, da es mit dem PC-Tool von chip45 nicht funktioniert hat.

Tja, hab noch ein bisschen rumprobiert, aber es läuft noch immer nicht. 
:-(
(ich glaub ich werd mal lieber den Bootloader von  Peter Dannegger 
[[UART Bootloader ATtiny13 - ATmega644]] ausprobieren.)

Noch ne Idee?

mfg Christian

Autor: kosmonaut_pirx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
nein, wirst dich wohl ein bischen mit dem source auseinander setzen 
müssen. ist ja nicht soo viel, hab grad mal reingeschaut :)
bye kosmo

Autor: Klaus G. (ktg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christian,
habe den Thread erst jetzt gelesen. Vielleicht hast Du inzwischen schon 
die Lösung. Falls nicht:
Ich hatte exakt das gleiche Problem mit dem ATmega8. Liegt 
offensichtlich daran, daß die Interrupt-Routine für den UART nicht 
gescheit arbeitet, evtl. sogar den Stack korrumpiert - vielleicht eine 
Eigenheit des Mega8. Das habe ich nicht im Detail untersucht. Ich habe 
auch andere Bootloader angeschaut, aber der von chip45 hat mir am besten 
gefallen, weil er, wenn er denn läuft, gut zu handhaben und zudem recht 
kompakt ist.
Meine pragmatische Lösung bestand darin, die Zeichen nicht über den 
Interrupt einzulesen, sondern die UART zu pollen, und schon läuft alles, 
wie es soll. Achtung: Das im Programm angegebene Verfahren zur Erzeugung 
eines srec aus dem Hex-File setzt als Endekennzeichen einen S5-Record. 
Das ist im Programm so nicht berücksichtigt muß auch angepaßt werden, 
sonst wird der nie fertig.
Wenn Du an meinem Workaround interessiert bist, Mail an kt(at)ktghome.de 
. Ich schicke Dir dann das modifizierte Progrämmchen.
Gruß - Klaus

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.