PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega16 einsetzen und flashen



SmaX14
22.09.2009, 16:53
Hallo,

ich bin der SmaX und neu hier. Ich finde dieses Forum echt cool xD. Ich besitze den Asuro mit dem "standart" Atmega8 so viel ich weiß.

Ich hab mir jetzt schon öfter überlegt einen eigenen Roboter (mit Lochrasterplatinen) zu bauen und wollte dort einen Atmega16 einsetzen. Die Mechanik usw. ist erstmal unintressant. Ich wollte das "flashen" wie beim Asuro machen. Wie kann ich jetzt die ganzen Funktionen die der Asuro hat also Programmiertechnisch (z.B. MotorDir();) auf den Atmega16 übertragen, sodass ich ihn wie den Asuro programmieren kann? Wisst ihr irgendwelche (hilfreichen) Tutorials oda habt ihr selbst Erfahrungen?

Danke

MfG SmaX

Hubert.G
22.09.2009, 17:49
Du brauchst erst mal einen Programmer Vielleicht den hier : www.ullihome.de/index.php/USBAVR-ISP/de
Dann brauchst du einen Bootloader, da musst du nur die Suche benutzen.
Das Programm des Asuro kannst du nicht 1:1 übernehmen für den Mega16.
Da musst du die Registernamen usw. ändern und die Ports anpassen.
Dann das Programm für den Mega16 neu kompilieren.
Hilfreich sind C-Tutorials für den AVR, wie hier im RN-Wissen und hier:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

SmaX14
22.09.2009, 17:57
Danke,

Also ich brauche praktisch ein Programm das mir die daten auf den Prozessor läd, und muss die asuro.h so bearbeiten das die ports stimmen.
Brauche ich dann auch ein extra Board mit dem ich den Bootloader draufladen kann, oder reicht da mein normales roboterboard (entweder mit infrarot verbindung oder via usb)?

MfG SmaX

cmock
22.09.2009, 19:33
wenn du einen mega16 kaufst, ist der leer, dh du mußt einmal den bootloader draufbringen, dann kannst du ihn über den bootloader programmieren.

das erstmalige programmieren machst du über die ISP-anschlüsse (In System Programming), und dazu brauchst du einen programmieradapter und eine platine, auf der dein mega16 mit strom und evtl takt (quarz) versorgt wird und auf der die verbindungen vom ISP-stecker zu den entsprechenden anschlüssen des M16 sind. du kannst diesen ISP-anschluß natürlich auch zusätzlich auf dein eigentliches roboterboard draufsetzen.

diese platine ist in 10 minuten zusammengelötet, und einen ISP-adapter kannst du kaufen (von 10-15 EUR aufwärts) oder zb für den parallelport (wenn dein PC noch einen hat) selber bauen, ich verwend die erste variante von dieser seite:
http://rumil.de/hardware/avrisp.html.

oder du suchst dir wen in deiner gegend, der einen programmieradapter hat, und läßt dir den bootloader in den M16 einspielen; aber an sich ist ein ISP-adapter eine lohnende anschaffung...

cm.

Besserwessi
22.09.2009, 20:24
Um den Bootloader aufzuspielen muß man einen Zugang (i.a. Stecker) zu den ISP Pins haben. Das sind: Reset, SCK, MOSI udn MISO, GND und meist noch VCC. Bei den meisten Boards, so wie RN.Controll ist ein ISP Stecker drauf. Wenn man diesen Stecker gleich auf dem Robotterboard hat, kann man auch so porgrammieren, ohne die IR Verbindung oder ähnliches. Man muß dann auch keinen Bootloader mehr einsetzen und hat volle Kontrolle auch über die Fusebits, um z.B. den Takt zu verstellen.

Dazu braucht man dann noch die Hardare (Programmer), die diese Leitungen ansteuert um die Daten so vom PC aus zu übertrwagen.

Beim µC sollte man statt dem Mega16 auch einen Mega164 oder Mega324 in Betracht ziehen. Das sind die etwas moderneren Versionen, mit weniger Stromverbrauch und tolleranter bei niedrieger Versorgungsspannung.

SmaX14
23.09.2009, 15:05
Ich könnte also auch gleich einen ISP anschluss auf mein Roboboard machen und dann über den anschluss meinen atmega16 (oder gleich Mega164) programmieren. Wie mach ich des dann wenn ich nur noch usb anschlüsse habe? kann ich mir dann sonen ISP - USB - Adapter selber löten oder gleich einen usb anschluss an's board machen, und wie mache ich das am besten?

Sorry bin noch nicht so n übler Freak in solchen Themen :-)

MfG SmaX

Hubert.G
23.09.2009, 15:12
Ich habe auf fast allen meiner Boards einen ISP Anschluss. Das vereinfacht das Programmieren ungemein.
USB-Seriell Adapter funktionieren nicht.
Am besten einen USB-Programmer wie diesen hier: www.ullihome.de/index.php/USBAVR-ISP/de
Es gibt natürlich noch etliche andere.

SmaX14
23.09.2009, 15:17
Ja, ich werde warscheinlich auf mein board dann auch einen ISP anschluss drauf bauen. Aber dieser www.ullihome.de/index.php/USBAVR-ISP/de usb Programmer ist doch nur die Software oder? Wie mache ich das Hardwaretechnisch? kann ich nicht gleich auf mein Board einen USB controller draufbauen? oder brauche ich da was fertiges? Kennt ihr da tutorials für solch einen Controller?

Hubert.G
23.09.2009, 15:38
Das USB-Lab ist auch die Hardware dazu. Man kann es auch für die anderen Funktionen nutzen, nicht nur als Programmer.
Direkt auf das Board draufbauen ist nicht sehr sinnvoll.

SmaX14
23.09.2009, 15:43
Ich habe gerade noch was anderes gefunden: Mysmartusb MK2 (Conrad: 191510 - 62) ich glaube das dieser fast das gleiche ist oder?
Auf jedenfall weiß ich jetzt das ich den USB programmer nicht mit aufs board baue, den 1. braucht man dann für jedes board einen neuen und 2. müsste ich dafür erstmal ein tutorial finden. Wie kann man dann die einzelnen ports des M16 ansteuern? Gibt es dort auch eine AVR lib oder muss ich die selbst schreiben?

Hubert.G
23.09.2009, 17:30
Ein gutes Tutorial ist hier www.mikrocontroller.net/articles/AVR-GCC-Tutorial
aber auch hier im RN-Wissen gibt es eines.

christian_u
24.09.2009, 06:04
Das MysmartUSB ist lange nicht das gleiche. Das ist ein AVR910 programmer, die lassen nur durch Firmwareupdate neue Controller zu. in den meissten Firmwares dieser programmer werden neuste Controller gar nicht unterstützt.
Das USB AVR Lab kann man zudem nicht nur als ISP programmer nutzen, auch als JTAG Programmer, RS232,SPI,I2C Logger, Oszi u.s.w.

SmaX14
24.09.2009, 13:29
Achso, Gibt es den USB AVR Lab auch wo anders als auf dieser Website?