PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro flashen per BTM-222



schleicha
25.11.2008, 00:44
Hallo Leute,

bin schon seit einigen Stunden auf der Suche nach eine Antwort, leider ohne erfolg.

Ich habe mich dazu entschieden meinen Asuro mit einem Bluetoothmodul zu erweitern um nachher den Asuro fernsteuern zu können.

Hab das Modul zusammen gebaut mit Pegelwandler usw. meine eigentliche Frage ist nun, ob es möglich ist mit dem BTM-222 die Asuro zu flashen.

Ich habe die IR Dioden raus gemacht und dafür die RXD und TXD des Atmega mit dem BT-Modul verbunden und dazu einen resetschalter eingebaut, um den Atmega zu resetten.

Leider hat das aber nicht geklappt...! Kann mir vielleicht jemand sagen an was es liegen kann, oder ob ich überhaupt per BTM-222 flashen kann?

Würde mich freuen wenn mir jemand helfen kann :)

Danke ;)

Gruß Schleicha

m.a.r.v.i.n
25.11.2008, 10:13
Hallo Schleicha,

mit dem AsuroFlash Tool von Osser funktioniert das ganz prima. Habe ich selbst schon oft genug gemacht. Du benötigst dann den Reset Taster am Asuro um den Asuro in den Bootloader Modus zu bringen. Beim Ein-Auschalten geht leider auch die Bluetooth Verbindung weg und bis die wieder aufgebaut ist, hat der Asuro den Bootloader Modus schon lange wieder verlassen.
https://www.roboternetz.de/phpBB2/viewtopic.php?t=25249

Das Original Flasher Tool dagegen liefert nur Timeouts.

Gruß Peter

schleicha
25.11.2008, 10:36
vielen dank schonmal für die antwort ;)

ich werde das Prog. gleich mal saugen und testen.

Kannst du mir noch sagen wieviele Bit pro Sekunde im BTM man einstellen muss?

Kann ich das Bluetooth modul parallel zu den IR Dioden betreiben?

Brauch ich irgendwie einen anderen Bootloader oder sowas?


Kann es sein das der Asuro nur eine einstellung von 2400 Bits pro Sekunde an nimmt? Denn wenn ich vom Asuro irgendwelche Werte übers Hyperterminal rausschreiben lasse, dann geht es nur wenn ich auf 2400 Bits pro Sekunde im Hyperterminal einstelle. Und das Bluetooth Modul kann ich ja minimal auf 4800 Bits pro Sekunde einstellen (laut Datenblatt)

Fragen über Fragen :)

Vielleicht kannst du mir die eine oder andere beantworten

Danke

Gruß Schleicha

schleicha
25.11.2008, 10:57
hab jetzt das Programm mal getestet.

Mit RS232 (vom PC) auf TTL zum Asuro, kann ich flashen ( mit dem neuen programm, ging mit dem alten nicht)

wenn ich dann aber das BTM ranhänge, und einschalte und resette, dann bekommt er keine verbindung, und irgendwann kommt timeout.

Mir ist aufgefallen, dass wenn ich versuche über das BTM flashen das der Asuro nach dem Reset viel schneller hochfährt, als normal. (also geh ich mal davon aus, der der Asuro irgendwas erkennt)

m.a.r.v.i.n
25.11.2008, 10:59
Hallo Schleicher,

sorry, da habe ich wohl was verwechselt. Das Flashen über Bluetooth hat zwar bei mir funktioniert allerdings nur mit dem BlueSmiRF BT-Modul und nicht mit dem BTM-222. Siehe folgenden Thread.
https://www.roboternetz.de/phpBB2/viewtopic.php?t=40479

Das BTM-222 Modul habe ich bisher nur mir einem mega168 benutzt mit 9600 bzw. 19200 Baud. Flashen mußte ich bisher immer über ISP. Mit 2400Baud geht das nicht und damit auch nicht mit dem Original Asuro Bootloader.

Gruß Peter

radbruch
25.11.2008, 13:52
Hallo


Kann es sein das der Asuro nur eine einstellung von 2400 Bits pro Sekunde an nimmt?
Der asuro (bzw. sein Mega8) kann natürlich mehr als nur 2400 Baud. Aber die 36kHz-IR-Kommunikation kann nicht mehr weil bei höheren Bitraten die Bits zu kurz sind um vom Empfänger als gültig erkannt zu werden. (Es gibt auch IR-Empfänger für größere Trägerfrequenzen mit denen dann vermutlich auch höhere Baudraten möglich sind. https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=262589#262589)

Flashen mit 4800Baud und dem orginalen Bootlader funktioniert nicht, weil die Baudrate im Bootlader vor dem Flashen auf 2400Baud eingestellt wird. Eine mögliche Lösung wäre vielleicht ein 16MHz-Quarz. Dann stimmt zwar das restliche Timeing in der Library nicht mehr, aber das könnte man vermutlich durch eine Anpassung in Init() korrigieren. Eine Alternative wäre noch ein neuer Mega8 eigenem Bootlader....

Gruß

mic

schleicha
25.11.2008, 13:58
hm okay dann hab ich jetzt vermutlich ein größeres Problem :(

wo bekomme ich ein funktionstüchtigen Bootloader her, mit dem das ganze nachher funktioniert? Gibts auch eine Anleitung um den Bootloader drauf zu spielen?

Gruß Schleicha

radbruch
25.11.2008, 15:26
Hallo

Mit Bootladern kenne ich mich nicht aus:
https://www.roboternetz.de/wissen/index.php/Bootloader
http://home.planet.nl/~winko001/Asuro/Bootloader/AsuBtlPagFrm.htm
http://www.mikrocontroller.net/articles/AVR_Bootloader_FastBoot_von_Peter_Dannegger
http://arduino.cc/en/Hacking/Bootloader?from=Main.Bootloader
http://www.myavr.info/download/anwendungsbeispiel_extensionkit.pdf(bootloader.hex (http://www.myavr.info/download/mySmartControlBootloaderATmega8.hex))
http://www.mcselec.com/index.php?option=com_content&task=view&id=159

Du brauchst natürlich auch einen ISP-Proger um den Lader zu flashen und die Fuses zu setzen.

btw: Obwohl ich's mir mit dem Nibo (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=31963) gründlich verscherzt habe muss ich doch zugestehen dass er ein professioneller Robi ist der vom Anspruch (und den handwerklichen Erfordernissen) weit über asuro & Co angesiedelt ist. Eher zufällig (weil ich nach einer idotensicheren Flushmethode suche) bin ich auf den USB-Tranceiver des Nibo gestossen:

http://nibo.editthis.info/images/nibo/thumb/6/65/UCOM-IR.jpg/180px-UCOM-IR.jpg (http://nibo.editthis.info/wiki/UCOM-IR)
(Bild aus dem Nibo-Wiki (http://nibo.editthis.info/wiki/UCOM-IR))

Für schlappe 25€ (+Versand) erhält man einen gut dokumentierten (asurotauglichen?) IR-Transceiver mit eingebautem ISP-Programmer:
http://shop.nicai-systems.de/shop.php?view=2&id=29

Das ist zwar ein Bausatz, aber die SMD-Bauteile sind schon aufgelötet. Ob das mit dem asuro auch funktioniert werde ich in Kürze testen und darüber berichten.

Gruß

mic

schleicha
25.11.2008, 23:39
Also ich hab mir jetzt von der FH schnell einen Atmega168 und den STR500 AVR Starter Kit besorgt.

Habe jetzt den AsuroBoot Bootloader aus der AsuroWiki drauf gemacht:
http://sourceforge.net/project/downloading.php?groupname=asuro&filename=AsuroBoot-v001.zip&use_mirror=mesh

mit folgenden Fusebits die ich in einem anderen Beitag gefunden habe:
http://palmavr.sourceforge.net/cgi-bin/fc.cgi?P_PREV=ATmega168&P=ATmega168&V_LOW=FF&V_HIGH=DD&V_EXTENDED=F8&O_HEX=Apply+user+values&M_LOW_0x3F=0x3F&M_LOW_0x40=&M_LOW_0x80=&M_HIGH_0x07=0x07&M_HIGH_0x08=&M_HIGH_0x10=&M_HIGH_0x20=0x00&M_HIGH_0x40=&M_HIGH_0x80=&M_EXTENDED_0x01=0x00&M_EXTENDED_0x06=0x00&B_SPIEN=P&B_BOOTSZ1=P&B_BOOTSZ0=P&B_BOOTRST=P

Über ISP funktioniert alles, der Atmel bootet auch, aber über UART (TTL <--> RS232) kann ich weder Programme flashen noch daten raus schieben lassen, es scheint so als wär die Schnittstelle garicht aktiviert.
Von den Fusebits her müsste doch alles stimmen oder?
Gibt es Einstellungen die ich im Bootloader selbst ändern muss?

Danke für eure Hilfe!

Gruß Schleicha

radbruch
26.11.2008, 00:08
Gibt es Einstellungen die ich im Bootloader selbst ändern muss?
Tja, laut Quellcode sollte der Bootloader mit 9600 Baud starten. Allerdings weiß natürlich niemand was im mitgelieferten .hex steht. Ich habe es allerdings nicht geschafft den Quellcode fehlerlos zu übersetzen:

avr-gcc -mmcu=atmega8 -Os -mno-interrupts -funsigned-char -funsigned-bitfields -Wall -Wstrict-prototypes -ggdb -c -DF_CPU=8000000UL -Wa,-acdhlmns=temp.lst temp.c -o temp.o
temp.c: In function `main':
temp.c:268: error: `MCUSR' undeclared (first use in this function)
temp.c:268: error: (Each undeclared identifier is reported only once
temp.c:268: error: for each function it appears in.)
temp.c:271: error: `WDTCSR' undeclared (first use in this function)
temp.c:549: error: `EEPE' undeclared (first use in this function)
temp.c: In function `getch':
temp.c:943: error: `MAX_TIME_COUNT' undeclared (first use in this function)
make: *** [temp.o] Error 1
2
...zusätzlich scheint noch das #define für asuro zu fehlen (PB0 oder PB5 der LED Zeile 143ff). Ich mag mich da aber nicht weiter reinknien. Möglicherweise gibt es eine bessere Version beim Entwickler: http://www.chip45.com

edit: Beim Aufruf "make asuro" wird es definiert.

m.a.r.v.i.n
26.11.2008, 13:31
Hallo Schleicha,



Gibt es Einstellungen die ich im Bootloader selbst ändern muss?


Dieser Bootloader ist für die Arduino Entwicklungsumgebung bestimmt, und funktioniert nicht mit den Asuro Flash Tool. Die Arduino IDE basiert auf WinAVR mit avrdude als Flasher Tool. Der Bootloader verhält sich wie ein STK500 kompatibler ISP Flasher. Ob das auch ohne Arduino IDE von der Kommandozeile oder von AVRStudio aus funktioniert, habe ich nie probiert.

Über Bluetooth Flashen aus der Arduino IDE hat bei mir mit diesem Bootloader auch nicht funktioniert, nur über RS232 bzw. USB-UART Wandler ging es (mit 9600 Baud).

Um diesen Bootloader auszuprobieren, benötigt du die Arduino IDE und die Asurino Bibliothek.
Alle wichtige hierzu findest du unter: http://www.asurowiki.de/pmwiki/pmwiki.php/Main/Asurino

@radbruch der Bootloader ist speziell für dem mega168 angepasst und wird für einen mega8 nicht funktionieren.

Gruß Peter

schleicha
26.11.2008, 23:00
Vielen Danke schonmal für die Antworten.

Ich hab einige Bootloader ausprobiert aber kam noch nicht zum Erfolg.

Ich hab eine Frage zu dem Ganzen. Gibt es einen Bootloader im .c Format der dem originalen gleicht den ich anpassen kann mit Baudrate usw. und den ich dann nachher zu einer .hex compalieren kann.

Mit Makefile und allem drum und dran was man dazu braucht.

Es gibt da ja eine Asuro Bootloader clone, kann ich die irgendwie ändern und danach neu compalieren? Wenn ja mit wo bekomm ich die makefile usw. her und wie funktioniert das dann?

Wäre super wenn ihr mir dabei nochmals helfen könntet?!?

Danke ;)

Gruß Schleicha

Kucky
23.03.2010, 21:52
Hallo,
bin soeben beim stöbern auf dieses Thema gestossen. Heißt das, dass man einen Arduino doch mit AVR-Studio programmieren kann:?: Wenn ja, wo kann man das nachlesen? Ich hatte irgendwo gelesen, das es nicht möglich sei.
Gruß Willi