PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Über UART Programmieren??



bnitram
05.08.2011, 12:41
Hallo Forum,
Letztens ist mein MysmartUSB light kaputt gegangen. Jetzt hab ich mit überlegt, das ich mir mittels einen MAX232 eine UART baue, damit ich auch mal mit meinem ATmega8 komunizieren kann. Nur blick ich da nicht so wirklich durch. Kann ich mit der UART (mit einem MAX232) auch das Programm auf den ATmega8 übertragen??
Oder ist das nur zum Datenaustauschen da??
Und welches Programm muss ich dann verwenden zum übertragen??? (geht auch Bascom AVR??)

Mfg
bnitram

Kampi
05.08.2011, 12:43
Ja du kannst per RS232 Programme auf einen µC übertragen. Allerdings wird dafür vorrausgesetzt das dieser µC einen Bootloader besitzt. Diesen Bootloader muss man mit einem Programmiergerät aufspielen und danach kann man Programme über RS232 oder USB (natürlich immer mit passendem Wandler also MAX232 oder FT232) übertragen.

bnitram
05.08.2011, 12:46
Danke für die schnelle Antwort.
Das heißt ich brauche erstmal eine ISP um den Bootloader aufzuspielen und dann kann ich per UART programmieren??
Oder brauch ich dafür ein richtiges Programmiergerät??

Mfg

DanielSan
05.08.2011, 12:55
Ja erst mit dem ISP den Bootloader reinschreiben, dann kannste mit rs232 Programmieren. Allerdings fehlt dir dann etwas programmspeicher. Weil der Bootloader ja auch irgendwo wohnen muss.

Gruß Daniel

bnitram
05.08.2011, 13:00
Danke dir.
Eine Frage hab ich noch. Ich habe gerade schonmal im Internet geschaut, und da gibt es ja SEHR viele Bootloader für den ATmega8. Welchen soll ich da nehmen??
Gibt es besonders gute??

Mfg

Kampi
05.08.2011, 14:34
Kann ich dir nichts zu sagen. Aber es sollte halt ein Bootloader für den Mega8 sein und der rest dürfte eigtl genau gleich sein wie bei allen anderen....wüsste jetzt nicht was anders sein sollte außer die Schnittstelle für den Bootloader oder den Prozessortyp. Vielleicht unterschieden die sich auch davon wo der im Flash gespeichert wird.

Richard
05.08.2011, 16:06
Danke dir.
Eine Frage hab ich noch. Ich habe gerade schonmal im Internet geschaut, und da gibt es ja SEHR viele Bootloader für den ATmega8. Welchen soll ich da nehmen??
Gibt es besonders gute??

Mfg

Wenn Du mit Bascom arbeitest solltes Du den MCS Bootloader nehmen, der soll sogar bei Bascom mit dabei sein. Schau einmal im Bascom verzeichnis ob Du dort etwas findest.

Gruß Richard

Kampi
05.08.2011, 16:15
Wenn Du mit Bascom arbeitest solltes Du den MCS Bootloader nehmen, der soll sogar bei Bascom mit dabei sein. Schau einmal im Bascom verzeichnis ob Du dort etwas findest.Gruß RichardJa der ist bei jeder Bascomversion dabei. Den Bootloader findest du unter "Programmer"

DanielSan
05.08.2011, 17:43
Cool den Bascom bootloader werde ich auch mal ausprobieren!

Ich habe es bis jetzt mit Fastload gemacht. Der ist aber relativ unkomfortabel weil er im Terminal läuft.

Gruß Daniel

bnitram
05.08.2011, 18:39
Danke an alle!!
Habe noch ne Frage. Was soll ich hier wählen?? Das sind die Standart einstellungen. Sind die so OK?
19574

Mfg
bnitram

Kampi
05.08.2011, 18:48
Musst du gucken ob es so geht :) mehr als nicht funktionieren wird es nicht :D aber wenn du nur Rx und Tx verwendest hast du keine Reset-Leitung

bnitram
05.08.2011, 19:00
Das heißt ich habe nur einen Versuch??:confused:
Kann man das nie wieder zur ISP zurückschalten??

Mfg
bnitram

Kampi
05.08.2011, 19:31
Wieso nur einen Versuch?
Und das mit dem ISP und Bootloader hast du glaub ich auch noch nicht so richtig verstanden.
Also.....
Der ISP ist die interne Programmierschnittstelle des µC. Über diese kannst du Sachen wie Programme, Bootloader und Fusebits auf den Controller übertragen. Ein Bootloader ist ein bestimmter Bereich im Speicher des Controllers der eine Anweisung erhält wie sich der Controller über RS232 sein Programm holt und es in seinem Speicher speichert. Dieser Speicherplatz der für den Bootloader reserviert ist kannst du natürlich nicht für dein eigentliches µC-Programm verwenden. Wenn dein Controller einen Bootloader drauf hat kannst du natürlich noch weiter den ISP benutzen. Der Bootloader ist dann nur eine 2. Programmiermöglichkeit wie du fertige .hex-Files auf den Controller bekommst. Direkt Fusebits umschalten z.B. kannst du nur mit einem ISP-Programmer. Wenn du trotzdem Fusebits umschalten willst musst du das, wenn du einen Bootloader benutzt, im Programm machen. Wenn du irgendwann keinen Bock mehr auf nen Bootloader hast kannst du diesen natürlich löschen und dann hast du den Speicher auch wieder frei.
Der Bootloader verwendet für die Übertragung des .hex-Files die RS232 Leitungen, also Rx und Tx. Alternativ können auch die Handshake-Signale mit benutzt werden, sind aber keine Pflicht.
Hoffe du hast das soweit nun verstanden :)
Du hast, wenn du einen Bootloader aufspielst, im Endeffekt eine 2. Programmiermöglichkeit geschaffen. Und für diese brauchst du dann keinen Programmer mehr sondern nur noch eine RS232 Schnittstelle.

Besserwessi
05.08.2011, 19:36
Auch wenn man einen Bootloader drauf hat, kann man weiter per ISP programmieren. Nur wenn man den Reset Pin als IO-Pin nutzen will, oder das ISP Interface explizit abstellt, geht es so nicht mehr. Per HV Programmierung kommt man immer wieder zurück, braucht aber einen passenden Programmer (z.B. STK500, Dragon,...) dafür.

Es hängt vom Bootloader ab, ob der PC Zugriff auf den Reset Pin haben sollte. Oft reicht es auch erst die Verbindung zum PC herzustellen und dann von Hand einen Reset auszuführen. Gleich nach dem Reset läuft erstmal der Bootloader und wenn der den PC nicht findet, läuft dann in der Regel das normale Programm weiter. Wie der PC erkannt wird - ist ein Unterschied zwischen den verschiedenen Bootloadern.

Richard
05.08.2011, 19:46
Ja der ist bei jeder Bascomversion dabei. Den Bootloader findest du unter "Programmer"

Stimmt nicht ganz, unter Programmer wird ausgewählt das man mittels Bootloader Programmieren will. Hier wird dann des passende Terminal gestartet. Der eigentliche Bootloader selber (der per isp in den Chip geschoben wird) befindet sich unter Samples/boot/... Der muss compiliert und dann per ISP auf den Chip geschaufelt werden. Vorher mittels ISP die Fusebits für den Bootloader Bereich einstellen, Danach noch die Fuse für den Bootloader Überschreibschutz setzen damit man den nicht selber wieder löscht.

Gruß Richard

bnitram
05.08.2011, 22:58
Hallo Richard,ich kenne mich nicht wirklich mit den Fusebits aus. Welche sind das bzw. Wo kann ich das genau einstellen. Mfgbnitram

Kampi
05.08.2011, 23:12
Schau mal hier nach:

http://www.rn-wissen.de/index.php/Avr

Das sollte dir weiterhelfen.

Sebas
05.08.2011, 23:31
welche fusebits du setzen musst kannst du hier nachschaun:
http://www.engbedded.com/fusecalc

Richard
05.08.2011, 23:38
Hallo Richard,ich kenne mich nicht wirklich mit den Fusebits aus. Welche sind das bzw. Wo kann ich das genau einstellen. Mfgbnitram

Das ist je nach Chip immer etwas anders. Mit Bascom habe ich dabei immer kleine Probleme deshalb setze ich die Fusebit's immer mit dem Studio 4 dort geht das sehr einfach. Erst auslesen damit die richtigen für diesen Chip angezeigt werden, dann ändern nochmal zur Kontrolle auslesen, fertig. :-)

Aber genau aufpassen, wenn man z.B. einen falschen Quarz einstellt sperrt man sich schnell aus. :-( Der Link zum RN Wissen ist gut, unbedingt durchlesen auch den weiterführenden Link "erstes Programm"....

Gruß Richard