Moeglicherweise bin ich etwas zu schnell beim Suchen und war bisher
nicht erfolgreich. Das Butterfly board von AVR hat einen bootloader
drauf, der zusammen mit dem AVRStudio funktioniert. Sehr interessant.
Irgendwie fand ich nirgendwo Informationen ueber dessen Implemenation.
S'muss nicht unbedingt Souircecode sein, ein pdf waere genuegend.
Danke Joerg, die AVR109 hab ich. Irgendwas mit open source downloader,
es gibt nochmals ein paar downloader, die AVR230, DES-downloader und
AVR231, AES downloader. Plus noch ein paar Hilfsarikel. Alles schoen.
aber welcher, wenn ueberhaupt ist in AVRStudio implementiert ?
Am Artikel der Uni koennte was dran sein.
Unter anderem Bezieht sich der Artikel der Uni auch auf den Atmel
bootloader
http://www.atmel.com/products/AVR/butterfly , welcher nur als hex
vorliegt. So eine Hexschwarte mag grosszuegig erscheinen, ist es aber
nicht wenn man bedenkt, dass die fuses, somit auch die
clockgeschwindigkeit, nicht Teil des Hex sind.
Ich schau weiter.......
Tatsächlich wohl etwas "zu schnell beim Suchen", vielleicht auch zu
schnell beim Lesen...
Bootloader auf dem Butterfly ist kompatibel zum in AppNote AVR109
beschriebenen Protokoll, implementiert nicht alle aber die notwendigen
Befehle. Die Seite "der Uni" ist vom mir. Wenn man ein klein wenig mehr
auf dieser Seite liest, findet man eine gcc-Portierung des
Bootloader-Quellcodes für den Butterfly. Atmel hatte den IAR-EWAVR
Quellcode des Bootloaders vor Zeitem mal zum Download angeboten und das
war die Basis für meine Portierung. Auf meiner Seite findet man
weiterhin den Code für einen "AVRProg Bootloader", den ich auf Basis des
Butterfly Bootloader-Codes zusammengebastelt habe und in den inzwischen
einige Verbessungen von Dritten eingeflossen sind. Dieser nutzt auch das
in AVR109 beschriebene Protokoll und ist somit zusammen mit AVR
Studio/Tools/AVRProg (avrprog.exe) verwendbar.
Martin Thomas
Martin,
vielen Dank. Das war umfassend. Zumindest die Referenzen. Worauf
beziehen sich denn die Bootloader ? Keiner gibt ein Clocksetting, noch
eine Baudrate vor. Wenn nur eines von beiden nicht stimmt, ist nichts.
Das Butterfly board laeuft warhrscheinlich standardmaessig mit dem 1MHz
RC.
>Worauf beziehen sich denn die Bootloader?
In Bezug auf was beziehen?
>Keiner gibt ein Clocksetting, noch eine Baudrate vor.
Das stimmt nicht. Wahrscheinlich wieder zu schnell beim Lesen. Im
Butterfly Bootloader gcc-Port ist das so eingestellt, wie im
Originalcode und kompatibel zum vorinstallierten Bootloader.
Einstellung/"Clocksetting" wird aus den Registereinstellungen, dem
Quellcode und den Kommentaren ersichtlich. Einfach den Code von main.c
mal durchlesen. Wie man das "Clocksetting" im AVRprog-Bootloader
übersehen kann, ist mir schleierhaft. Vgl. F_CPU (muss natürlich mit dem
tatsächlichen Takt übereinstimmen) und BAUDRATE in main.c.
>Wenn nur eines von beiden nicht stimmt, ist nichts.
Was soll denn konkret nicht stimmen? "Ist nichts"... nun, es ist
vielleicht einfach nicht für jeden verständlich. Codes sind aber zu oft
von anderen und mir in Geräten genutzt worden um "nichts" zu sein. Aber
einerlei, einfach meinen Kram links liegen lassen und nach was anderem
suchen. Ich beantworte gerne Frage zu den von mir bereitgestellten Codes
aber habe den Eindruck, als wären die Codes bestenfalls 20 Sekunden
überflogen worden. (Oder da Ganze ist einfach nur ein
Feiertags-Trolling).
> Das Butterfly board laeuft warhrscheinlich standardmaessig mit dem 1MHz> RC.
BF "läuft mit" internem RC-Oszillator, ja. BF Schaltplan überhaupt mal
angeschaut? Die 8MHz am Ausgang des internen RC (Teiler-Fuse ist nicht
programmed) werden durch 8 geteilt und die resultierenden 1MHz dann
mittels des auf dem BF vorhandenen 32kHz Quarzes kalibriert. Die
Einstellung der Baudratenregister ist 9600bps bei 1MHz (U2X beachten,
vgl. ATmega169 Datenblatt). Die RC-Teilereinstellung wird zum Betrieb
des UARTs zum Kontakt mit AVRProg auf 4 gesetzt. Grund: 1MHz -> geringer
Stomverbrauch, 2MHz -> schnellere Übertragung mit 2*9600=19200bps, vgl.
Tabelle in einem AVR Datenblatt, Error-Spalte.
Martin Thomas
Vielen Dank Martin,
ich hab mich nur geaergert, dass Atmel wenn sie schon den Code fuer den
Bootloader nicht veroeffentlichen, nicht wenigstens die Parameter
bekanntgeben. Das sollte doch dabei sein. Clock & Baud. Ich hab den Code
zugegebenermassen noch nicht angeschaut, da die Clock- und anderen Fuses
nicht Teil des Codes sind. Die Fuses hab ich auf deiner Seite gefunden,
aber der Clock war irgendwie nicht dabei. Int RC ja, aber nichts von
Geschwindigkeit. ClkSel[3..0] fehlen - oder gibt's die gar nicht ?
Hintergrund ist, ich moechte den BF Bootloader benutzen weil er zum
AVRStudio passt. Dadurch koennen Kunden ohne spezielle Software nehmen
zu muessen einen Firmwareupdate selbst vornehmen. In einer naechsten
Stufe sollte ich den Firmwareupgrade von einem Stueck Software machen
lassen, und daher kann ich nicht einfach den Bootloader und das Studio
nehmen und's damit sein lassen.
Doch, ich denke deine Resourcen werden mir weiterhelfen. Vielen Dank
Nochmals