Du kannst ihn mit TXD und RXD programmieren, aber nur wenn du eunen Bootloader vorher hineinflashst.
Dann musst ihn nur einmal per ISP also MOSI und MISO programmieren.
Hallo Leute,
ich hoffe ich bin hier richtig:
Kann ich meinen ATMEGA32 Seriell über RXD/TXD programmieren?
Bisher habe ich das nur über den Parallelanschluss und MISI/MOSI gemacht.
Jetzt habe ich mir aber das RN-Funk Board gegönnt und möchte es für kommunikation und programierung über einen stecker nutzen.
Meine frage:
Ist das möglich?
Oder wie würdet ihr das machen?
danke schon mal im voraus.
MfG Ich
-------------------------------------------------------------
http://www.lorenzschulz.de/Roboter.html
Du kannst ihn mit TXD und RXD programmieren, aber nur wenn du eunen Bootloader vorher hineinflashst.
Dann musst ihn nur einmal per ISP also MOSI und MISO programmieren.
Achso, danke für die rasche antwort.
Kann ich das RXD/TXD signal aus den Funkboards benutzen um ihn über MOSI/MISO zu programieren?
MfG Ich
-------------------------------------------------------------
http://www.lorenzschulz.de/Roboter.html
Hi!
Warum willst du das machen?
Du kannst ihn nciht über miso mosi programmieren, da das 1. ein ganz anderes Protokoll ist, 2. weil man dazu noch ein Taktsignal benötigt und 3. weil du dazu RESET auf low ziehen musst.
Um den AVR per Funk zu flashen brauchst du ebenjenen Bootloader.
VLG Tobi
http://www.tobias-schlegel.de
"An AVR can solve (almost) every problem" - ts
Ok, danke für die raschen antworten. Ich glaube ist steige bei dem Ganzen thema nicht ganz durch.
Verstehe ich das richtig: ich flashe mir den Bootloader mit meinem eigentlichen Programm auf den Controller. Dannach kann ich mit den Signalen aus dem Funkboard die Sensoren abfragen und den Roboter steuern?
Oder versteh ich die funktion des Bootloaders falsch?
MfG Ich
-------------------------------------------------------------
http://www.lorenzschulz.de/Roboter.html
Hi,
nö, der Bootloader ersetzt dir nur den Programmer.
Statt über die MISO / MOSI etc. geht das dann seriell.
Das hat mit dem eigentlichen Controllerprogramm nix zu tun.
Der Bootloader übernimmt nur die Daten vom PC und speichert sie in den Flash.
Du lädst den Bootloader also erst mal mit deinem normalen Programmer in den Controller.
Ab dann kannst du den Controller mittels eines PC Programms über die serielle Schnittstelle flashen.
Bootloader kannst du dir selber programmieren, oder du benutzt einen fertigen, zB. "Megaload", den gibt's hier:
www.microsyl.com
Gruß
Christopher
Hi!
Nun... das kommt ganz auf deinen Bootloader und das von ihm benutzte Protokoll an.
Wenn du dir einen selber schreibst, musst du diene Software entweder so anpassen, dass der bootloader die Software versteht, oder du musst dir eine eigene Programmiersoftware schrieben. Je nach dem.
VLG Tobi
http://www.tobias-schlegel.de
"An AVR can solve (almost) every problem" - ts
Hi,
es gibt in den Bascom Samples einen Quellcode für einen Bootloader.
Der kann dann direkt aus Bascom angesprochen werden.
Der Bascom Bootloader arbeitet mit X-Modem Protokoll.
Ich hatte den mal so umgeschrieben, daß er nicht mehr auf das Bascom-eigene Downloadprogramm wartete, sondern mit einem Taster gestartet wurde.
Dadurch konnte man jedes X-Modem fähige Terminalprogramm zum downloaden nutzen. (zB. Hyperterminal)
Gruß
Christopher
Hi,
Wenn du das mit dem Bootloader mal ausprobieren willst:
1.
lade das Programm "bootloader.bas" in Bascom.
"bootloader.bas" findest du im verzeichnis samples/boot
Passe die Einstellungen für den Quarz an.
Den Chip brauchst du nicht im Programm zu ändern, da dort schon der Mega32 voreingestellt ist.
2.
compile das Programm mit Bascom.
Die Größe des Programms wird mit 98% angegeben.
Nicht dran stören.
Das ist die Größe , die der Bootloader im Bootbereich braucht.
Für dein eigentliches Programm ist dann immer noch genug Platz.
3.
Mit dem vorhandenen Programmiergerät schickst du das Programm nun zum Chip.
Es wird dort automatisch in den Bootbereich geladen.
(wenn der verfügbar ist, das kann man mit den Fuses einstellen)
4.
Programmiergerät abstöpseln.
Ab jetzt kannst du den Mega 32 seriell programmieren:
Serielles Kabel vom PC an den Mega32 anschließen (über einen Pegelwandler)
In Bascom bei "Programmer" den "MCS Bootloader" auswählen.
Jetzt lädst du dein eigentliches Programm in Bascom, oder schreibst ein neues.
Dieses Programm wie gewohnt compilieren.
5. In Bascom auf "Run Programmer" clicken (oder F4)
6. Den Mega32 resetten.
Jetzt wird das Programm seriell auf deinen Mega32 übertragen.
Wichtig:
Bootloder und Bootprogramm müssen die gleiche Baudrate haben.
(also bei "Programmer" in Bascom Baudrate kontrollieren)
Gruß
Christopher
Lesezeichen