PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bootloader für Mega 16 / 32 bzw. rn-control gesucht



Frank
30.08.2004, 22:56
Weiss jemand wo man einen Bootloader für Bootloader für Mega 16 / 32 bzw. rn-control findet? Möglichst kostenlos.
Ich möchte rn-control (also Mega 32) gerne auch per Funk umprogrammieren. Hat jemand ein paar Tips / Links dazu?

Frank
30.08.2004, 23:37
Ich glaube ich hab was gefunden. Das könnte eventuell gehen
http://www.microsyl.com/megaload/megaload.html

Hat es schon jemand ausprobiert?


http://www.microsyl.com/megaload/megaload.gif

Frank
05.09.2004, 23:00
Nur zur Info, der Bootloader funktioniert bestens. Und beachtlich schnell

recycle
06.09.2004, 03:24
Nur zur Info, der Bootloader funktioniert bestens. Und beachtlich schnell


Ich habe das vor ein paar Tagen auch mal probiert, allerdings recht schnell wieder aufgegeben, weil ich nicht genug Zeit hatte.
Sehe ich das richtig, dass bei Megaload nur der Quelltext für den Bootloader bei ist und man den erst noch anpassen und mit der Demo-Version vom Imagecraft Compliler compilieren muss?

Oder war ich einfach nur zu blöd und habe die fertige Datei zum hochladen in den AVR nur nicht gefunden?

LuK-AS
06.09.2004, 05:45
Hallo Frank,

kannst Du zum Bootloaden mal ein kleines Tutorial schreiben, wäre ja für meinen Offroader dann ja genau das richtige :)

Gruss Clemens

Frank
06.09.2004, 10:25
Hi LuK-AS und recycle,

bin auch erst nicht klar gekommen und musste dann feststellen das dort der eigentliche Bootloader nur im im Quelltext enthalten ist. Zudem für einen Compiler den leider nicht jeder hat.

Ein User aus einem anderem Forum war so nett und hat die Dateien compiliert. Damit ging es dann problemlos, viel einfacher als gedacht. Per Funk hab ich es noch nicht probiert, aber per RS232 Kabel geht die Programmübertragung blitzschnell.
Ich glaub ein Tutorial ist da kaum nötig weil es echt einfach ist.

Ich habe die Hex-Dateien für die AVR-Megas (also auch rn-control, rnbfra (https://www.roboternetz.de/phpBB2/viewtopic.php?t=1511) etc.) mal hier abgelegt:

Download - Hexdateien (https://www.roboternetz.de/phpBB2/dload.php?action=file&file_id=173&sid=dc51189b7f2567d8c0576dcc3770bb27)

und hie rnoch das erfolderliche Übertragungsprogramm

Download Übertragungprogramm für RS232 (https://www.roboternetz.de/phpBB2/dload.php?action=file&file_id=172&sid=dc51189b7f2567d8c0576dcc3770bb27)

Kurzanleitung:
Bootloader-Fusebusebit auf 512 Byte setzen (1024 wenn auch eeprom programiert werden soll) und dann Fusebit Reset-Bootloader setzen. Geht z.B. sehr einfach mit Bascom.
Dann einfach die Hex-Datei in diesem ZIP in den Controller laden. Die Fassung mit dem "e" am Ende ist auch für EEPROM Programmierung geeignet, benötigt aber wie gesagt dann 1024 Byte.
Das hochladen kann mit Pony oder Bascom erfolgen.
Danach Megaload Zip-Datei laden und das Übertragungsprogramm Megaload auf PC installieren.
Megaload starten und die zu übertragende HEX Datei auswählen. Wenn nun am Controller auf RESET geklickt wird, wird Programm automatisch übertragen und gestartet. Ist die Übertragungsoftware Megaload nicht aktiv, so wird nach kurzer Wartezeit auch das Controllerprogramm gestartet.

Gruß Frank

LuK-AS
06.09.2004, 17:38
Hallo Frank,

hat alles funktioniert, abeeeeeer, ich muss vor jedem seriellen proggen eines HEX files den Bootloader mit dem ISP reinflashen sonst erkennt er beim zweiten mal den AVR nicht mehr. Woran kann das denn liegen?

Gruss Clemens

Frank
06.09.2004, 18:06
Hi Clemens,
nein so soll es natürlich nicht sein. Der Bootloader muss nur einmal geladen werden. Danach muss nur noch Reset geklickt werden und schon wird Programm neu übertragen.

Hast du dieses Fusebit`s richtig eingestellt und erst dann Bootloader geladen (weiss nicht ob es umgekehrt geht).
Hier hab ich mal Abbildung für Mega 16 gepostet

https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=224

Das Programm muss natürlich auch noch rein passen. Und bei Megaload in der Dialogbox hab ich noch angeklickt "Bootload on Reset".

http://www.microsyl.com/megaload/megaload.gif

So gings bei mir eigentlich problemlos

Die Baudrate ist übrigens nicht wichtig, die stellt sich gewöhnlich alleine ein. Du kannst also ruhig eine höhere wählen.

recycle
06.09.2004, 18:11
@LuK-AS


hat alles funktioniert, abeeeeeer, ich muss vor jedem seriellen proggen eines HEX files den Bootloader mit dem ISP reinflashen sonst erkennt er beim zweiten mal den AVR nicht mehr. Woran kann das denn liegen?

Hört sich für mich so an, als würde dein neues Programm den Bootloader überschreiben.
Ich dachte eigentlich auch immer, es wäre normal, dass ein neues Programm das bereits vorhandene überschreibt und man einen Bootloader deshalb nur sinnvoll nutzen kann, wenn man ihn ins EEPROM schreibt.
Kann aber sein, dass ich da mal wieder völlig daneben liege.


@Frank

bin auch erst nicht klar gekommen und musste dann feststellen das dort der eigentliche Bootloader nur im im Quelltext enthalten ist.
Zudem für einen Compiler den leider nicht jeder hat.

So weit war ich auch. Von dem benötigten Compiler kann man sich kostenlos eine Demo-Version herunterladen.
Habe ich auch gemacht, nur um den Bootloader dann richtig zu compilieren war ich eindeutig zu doof.
Bei mir standen anschliessend immer nur Nullen in der compilierten Datei und dementsprechend war die Reaktion meines Controllers auch Null ;-)

Wäre ja klasse, wenn man das Problem das LuK-AS hat auch noch in den Griff bekommt.
Dann braucht man ja eigentlich nur noch eine Platine mit ISP Anschluss um den Bootloader einmal hochzuladen und kann sich den ISP-Anschluss auf anderen Platinen sparen.
Ausserdem müsste man die ISP-Pins dann doch eigentlich als ganz normale I/Os nutzen können, oder?

Frank
06.09.2004, 18:20
Stimmt, wenn Ports knapp sind hat der Bootloader auch Vorteile. Man kann dan die ISP-Ports beliebig nutzen.
Durch die Fusebit´s wird der obere Bereich für den Bootloader reserviert, man kann 1024, 512 und noch 256 und 128 WORD's einstellen, je nach COntroller und Bootloader. Ich hab 1024 genommen um auch eeprom mit Bootloader bespielen zu können.
Beim Einspielen des Hex-Files wird der Bootloader automatisch ganz oben hin geladen. Im unteren Bereich werden nur Nullen abgelegt, da das ja ohnehin später vom Programm überschrieben wird.
Ob es möglich ist dann noch ein überlanges Programm per RS232 zu überspielen das den Bootloader selbst überschreibt, ist mir nicht bekannt. Ich denke aber das die Übertragungssoftware so schlau ist und das verhindert. Lag bestimmt an den Fusebit´s!

Gruß Frank

LuK-AS
06.09.2004, 18:26
Frank Du bist ein Held, natürlich lag es an den Fusebits :) Mit einem Seriellen Kabel funktioniert das ganze aber bei der Funkprogrammierung sucht er sich dumm und damelig nach dem AVR er glaubt ständig es sei ein Mega163 / Mega128 oder 8515er :(

Schade, denn genau dafür hätte ich den Bootloader gebrauchen können.

Gruss Clemens

Frank
06.09.2004, 18:28
Kleine Korrektur, es sind nicht Bytes sondern WORD´s die der Bootloader belegt.

Frank
06.09.2004, 18:31
Fein das es geht. Also ich hab gemerkt das er sich nach der Übertragung des Programmes manchmal auf einen anderen Controller stellt. Aber das tut der Funktion keinen Abbruch, kurz vor der Übertragung (also Reset) stellt er sich immer wieder richtig. Wäre natürlich toll wenn du das mit dem Funk auch noch hin bekommen könntest

Frank
07.09.2004, 21:02
Hi Clemens, was hast du eigentlich für ein Funkmodul mit dem Bootloader ausprobiert? Addlink? Oder nur ein Sender und Empfänger?

recycle
08.09.2004, 01:33
@Frank
mit dem fertig compilierten Bootloader den du oben verlinkt hast funktionierts bei mir jetzt auch.
Klasse, ein Kabel weniger auf dem Schreibtisch und 3 I/Os mehr am Controller :-)

LuK-AS
08.09.2004, 04:56
Hallo Frank,

ich habe die Verbindung mir einem AddLink hergestellt. Megaload sucht den AVR und zeigt dabei immer wieder die 3 µC´s an (Mega8535/Mega163/Mega128) beim Mega128 bleibt die Suche stehen und es passiert garnichts mehr.

Frank
08.09.2004, 08:22
Hmm! Ich hab Addlink noch nicht benutzt, ich weiss nicht ob da nach Reset noch irgendwas initialisiert werden muss.
Du kannst mal Probieren den Bootloader etwas später im Boot-Programm zu aktivieren.
Ein Reset kannst du auch per Software auslösen. Ganz einfach in einer Rputine den Watchdog einschalten und überlaufen lassen. Dann wird Bootloader gestartet. Oder Bootloader direkt aufrufen, kommt auf´s gleiche raus.
Jedenfalls wenn es klappen würde, dann kann man im Bot eine ROutine einbauen, die bei einem bestimmten Funk-Kommando den Bootloader aktiviert. Dadurch kann man ihn jederzeit umprogrammieren und danach weiterfahren lassen ohne ihn auch nur zu berühren.

Gruß Frank

LuK-AS
22.09.2004, 04:53
Also bei mir bleibt es leider unverändert, es geht nicht per Funk :(

pebisoft
24.01.2005, 16:46
hallo, ich versuche es auch mit easy-radiofunkmodul. nach 512 byte wird abgebrochen und geht nicht mehr weiter. könnte man eigentlich mit einem terminalprogramm einfach die daten rüberschicken, weil du sagtes, das die baud sich selber einstellen. könnte man die pakete von megalaod zb auf 128byte einstellen, vielleicht läuft das easy-radio über.
wei wird der reset gemacht: "einer Rputine den Watchdog einschalten und überlaufen lassen"
könnte man von einem 2. avr daten von einem i2c-eeprom 24c256 als megaload zum 1 avr rüberschicken als programm. dann könnte man mit dem easy-radio die daten zum 2. avr schicken der diese zum eeprom schickt und dann wenn ruhe ist, die daten wie oben geschildert zum 1 avr als megaload schickt.
mfg pebisoft

Shadowrun
26.01.2005, 17:24
Hi @ all....

Ich habe ein Problem. Als ModemUser ist es für mich nicht so einfach Basecom auf die schnelle zu ziehen und ich bekomme den Bootloader nicht zum laufen.

Also welche Fusebits muß ich bei Ponyprog setzen.
Im Moment habe ich es wie unten. Hatte aber auch mal BootRST auf 0 gesetzt. Danach Bootloader rein.

Dann im Megaloader Datei ausgewählt und am Controller Reset geerdet. Nix.
Eigentlich sollte er dann doch das Proggi uppen

pebisoft
28.01.2005, 15:23
hallo, wie kann ich den at90s8515/8535 zum bootloader machen. ich habe keine bootloader-hex-datei wie für den avr16 usw.
mfg pebisoft

Marco78
22.03.2005, 20:42
Danke für die .HEX!!! Das Programm ist toll. Wennich die Baudrate bei mir zu hoch einstelle, passiert aber nichts. Ist auch nicht so schlimm, mit weniger gehts immer noch schnell genug. Und schneller als mit BASCOM.

Marco78
22.03.2005, 21:23
Ein Problem habe ich jetzt aber noch.

Wenn ich ein Reset per Hand ausführe oderdie Spannung neu anlege, wartet der Bootloader erstmal etwa 20 Sek auf ein neues Programm bevor er 'normal' weiter macht.

Liegt das an der Taktfrequenz? Ich habe ein M16 @4MHz. Oder bräuchte Megaload so lange um den Chip zu erkennen?

Wäre eine (viel) kürzere Resetzeit in der Praxis nicht sinnvoller?

erwin_k
11.04.2005, 10:52
Weiß jemand, ob man bei Verwendung des MegaLoad - Bootloaders den Watchdog auch aktivieren kann?

Frank
11.04.2005, 11:08
Sollte eigentlich gehen. Bei einem Hänger wird dann allerdings zuerst versucht neue Firmware zu laden. Nach einer gewissen Wartezeit wird dann Programm ausgeführt.



Übrigens ganz was anderes. Es gibt nur einen Bootloader de rin jedem Fall per FUnk problemlos funktioniert, er ist speziell dafür gedacht. Er unterstützt auch RN-Control, RNBFRA und andere Mega32 / Mega128 Boards:

https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=1017

Download: http://www.shop.robotikhardware.de/shop/catalog/index.php?cPath=77