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
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
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
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
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
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
Hi, ich benutze nicht den ATmegaBoot sondern den chip45boot. Den hab ich für 8MHz und den ATmega8 neu kompiliert.
1 | "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
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
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
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.