Go Down

Topic: atmega mit Arduino beschreiben (Read 723 times) previous topic - next topic

Hallo,

ich habe mir vor circa einem 3/4 Jahr meinen Arduino gekauft und war von Beginn an begeistert.
Nun nach etlichen Kleinprojekten, Basteleien und Experimenten bin ich auf folgendes Video gestoßen: youtube.com/watch?v=30rPt802n1k
Ich habe mich mal ein bisschen umgeschaut und bei Reichelt zwei von denen geordert (sollten Di oder Mi ankommen). Das Beschreiben des ATtinys mit meinem Arduinoprogramm geht ja erstaunlich einfach.
Desweiteren habe ich mir auch einen ATmega168 besorgt, nach dem Motto: Geht beim Großen bestimmt genau so...
Am Wochenende habe ich dann mal ein bisschen im Internet gesucht und musste feststellen, dass es beim ATmega doch ein bisschen anders aussieht. Da ist z.B. die Rede von Bootloadern usw.
Man merkt sicherlich, dass ich davon nicht sooo die Ahnung habe  :smiley-roll-sweat:. Das ist auch der Grund für dieses Thema.
Zunächst einmal möchte ich um Nachsicht bitten, da ich auf dem Gebiet doch sehr unerfahren bin. Aber wie sagt man so schön: Es gibt keine dummen Fragen  :)

Ich habe dazu folgende (zumindest für mich) interessante Seite gefunden: http://arduino.cc/en/Tutorial/ArduinoToBreadboard (s. ganz unten die letzten beiden Bilder)
Meiner Meinung nach ist die Programmierung des ATmegas auf dem BB via eines Arduinos die komfortabelste und einfachste Lösung, bei der ich auch eigentlich gerne bleiben würde.

Ich habe gesehen, dass es zu dem Thema schon einige Beiträge gibt, aber mir tun sich trotzdem noch einige Fragen auf:

1) Auf der Seite ist die Rede davon, dass es umbedingt ein Duemilanove sein muss. Stimmt das? Ich habe z.Zt. nämlich nur einen Uno R2 zur Hand, aber ein Duemilanove ist schon auf dem Weg. Wenn dieser aber nicht ein Muss ist, könnte ich ihn auch gut anderweitig verwenden.

2) Im rechten Bild ganz unten steht der Hinweis "Remove microcontroller". Ich hatte vor, einen Arduino als reines ATmega-bespiel-Board zu benutzen. Soll das denn heißen, dass der ATmega beim Bespielen des Bootloaders noch drauf sein soll und erst beim Programmüberspielen weg muss? Oder kann ich ihn bei beiden Vorgängen weglassen/drauflassen?

2b) Da ich noch keine wirkliche Hardwareerfahrung habe: Bitte nicht lachen bei der Frage  :smiley-roll:: Wie genau nehme ich den ATmega denn dann aus dem Arduino raus? Brauche ich da spezielles Werkzeug? Ziehe ich ihn einfach nur heraus? Ich möchte ja schließlich nichts kaputt machen... Eine kleine Erklärung wäre super!

3) In dem Beispiel sind ja zwei Varianten angegeben: Einmal mit external und einmal mit internal clock. Ich möchte es ganz einfach mit internal machen. Muss ich da vorher irgendwo irgendetwas umstellen?

So, das wären jetzt erstmal meine Fragen, die ich dazu hätte. Ansonsten würde ich die Verdrahtung genau so machen, wie auf den letzten beiden Bildern der Seite. Und dann natürlich erst den Bootloader "brennen" und dann meinen Sketch aufspielen. Spricht da etwas gegen und/oder muss ich sonst noch etwas beachten?

Ich würde mich sehr freuen, wenn mir jemand bei den Fragen weiterhelfen könnte, da ich wie gesagt noch keine Praxiserfahrung mit solchen "nackten" mCs habe.  ;)

Schönen Dank im Voraus und besten Gruß,
maverick91

Gnampf

Hallo maverick91,

also nackte ICs habe ich immer über die ISP Programmiert.
Mit der von Dir favorisierten Variante über das Boart hatte ich so meine Probleme. Meist sind es Kontaktprobleme, so dass die Übertragung fehlerhaft war.
Es giebt auf der von Dir genannten Seite zwei Wege der Progrogrammierung des Bootloaders:

  • mit Atmega auf dem Board - hier muss ein Sketch auf den Atmega gespielt werden und dann das Boart als ISP verwenden

  • ohne Atmega auf dem Board - hier muß der vorher Atmega entfert werden (alle Varianten wo in den Bildern remouve MC)



Das Boart wird quasi als ISP "Mißbraucht"

Das letzte Bild zeigt nur die reine serielle Anbindung einer externen Anwendung. Das Boart wird nur als USB - serial Konverter verwendet. Der Bootloader muß sich hier schon auf dem Atmega befinden.

Der Boodloader selber stellt nur die Möglichkeit der Programmierung des Atmega über die serielle Schnittstelle zur Verfügung. Er belegt dabei einen Teil des Programmspeichers.

Hier meine Vorgehensweise:

  • Sketch auf den Atmega im Duemilanove (halt irgend eins Blink ist gut geeignet) übertragen

  • mit ISP (z.B. AVR MKII) und AVR Studio das Programm und die Fuses auslesen. In den Fuses wird bei einem Nakten IC die Programmierung des Atmega über die serielle Schnittstelle überhaupt erst freigegeben. Nur der Bootloader auf dem nackem IC nützt Dir gar nichts.

  • Atmega entfernen und nackten Atmega einsetzten.

  • zuerst die Fuses einspielen und dann das ausgelesene Programm übertragen


Wenn Du Blink gewählt hast, sollte jetzt die gelbe LED blinken. Dannach kannst Du andere Sketches laden. Mit dem ausgelesenem Programm wird auch der Bootloader übertragen.

Ich Denke das sollte Dir in einigen Punkten weiterhelfen.

Gruß Gnampf.

Go Up