Mega 2560 als "stand alone" - flashen

Hallo,
ich habe ja in naher Zukunft vor, einen Mega 2560 "stand alone" zu betreiben.
Einen Arduino Mega 2560 benutze ich als Programmer.
Nun habe ich mir einmal das Schaltbild des Arduino Mega 2560 R3 angeschaut.

Was muß ich denn am Mega 2560 minimum anschließen?
also:

Pin 11, 32, 62 81 GNG
Pin 100, 10, 31, 61, 80 VCC mit 3x C-100n

Pin 2, RX0 -> Arduino TX0
Pin 3, TX0 -> Arduino RX0

Pin 33, XTAL2
Pin 34, XTAL1
verbunden durch einen 16MHz Quarz

auch verbunden durch einen Widerstand, 1MOhm
ist der MUSS oder kann, was den Wert betrifft?

Pin 30, Reset, über einen Taster gegen GND

Muss ich da sonst noch etwas "elektronisches" beachten?
Gruß und Dank
Andreas

die Quelle des ganzen:
http://forum.arduino.cc/index.php?PHPSESSID=h3i5behlar0km80gsvuta7b4i3&topic=258307.0

ab Reply #8

http://www.ebay.de/itm/Mikrocontroller-Atmel-ATMega2560-ATMega-SMD-Adapter-/271224130246?pt=Bauteile&hash=item3f2637cac6

die anderen Link´s dazu:

http://www.robotc.net/wiki/ARDUINO_MEGA_Update_Bootloader

http://cisana.net/burning-the-bootloader-onto-the-arduino-mega-2560/

Die minimale Reset Schaltung eines Atmel Controllers ist z.B. 47nF oder 100nF gegen Masse und 10k gegen Plus. Dann den Kondensator mit einem Taster brücken.
Reset ist Low aktiv. Der Kondensator ist am Anfang ungeladen und löst einen Reset aus. Dann läd sich der Kondensator auf eine bestimmte Spannung und der Controller läuft. Mit dem Taster entlädt man dann den Kondensator.

Nochmal mindestens 10µF an 5V schadet auch nichts.

Für Grundbeschaltung eines Atmega inkl. unterschiedlicher Takterzeugung und Spannungsversorgung: AVR-Tutorial: Equipment – Mikrocontroller.net

ist bei allen Atmega Controllern mehr oder weniger gleich. Die Pin-Nummern sowie die Anzahl von VCC und GND mag variieren, aber das Prinzip ist überall gleich.

PS: Du listest übrigens korrekt 5 VCC auf, willst aber nur 3 C als Abblock-Kondensator verbauen?

PPS: die Beschaltung von AREF hängt darüber hinaus davon ab, ob und wenn ja mit welcher Referenz-Spannung Du den AD-Wandler nutzen willst.

Hallo Skoby, bin mir noch nicht so ganz sicher was du vor hast! Muss es ein 2560 sein?
Finde die Bauform schon pervers zu löten. Zumal die MCU nicht gerade die günstigste ist.

Dann wäre noch die Frage, wieso der Bootloader oben bei deinem Links auftaucht? Um mit der Arduino IDE zu programmmieren, ist ein Bootloader nicht Pflicht. MIt einem AVR ISP Programmer geht es direkt über die ISP Schnittstelle. Die Serielle Schnittstelle kannst du dann immer noch Problemlos mit einem FTDI Adapter auslesen für Debuggen oder sonstiges.

Ich bin mir inzwischen nicht einmal sicher, ob ich es schaffe, einen Atmega328P voll zu bekommen. Habe inzwischen einige Projekte bereits ohne IDE direkt im AS6 programmiert. Aufgefallen ist mir, wenn man fast alles selber schreibt, wie wenig man dann meist vom Speicher benötigt.

sschultewolter:
Finde die Bauform schon pervers zu löten. Zumal die MCU nicht gerade die günstigste ist.

Die gibt es schon fertig auf einem Breakout Board. Mann muss also keine 100 Pin SMD ICs löten :slight_smile:

Und wo soll es das geben? Hab da mal vor einem halben Jahr gesucht. Nun gerade mal in der Bucht geschaut,

http://www.ebay.de/itm/Mikrocontroller-Atmel-ATMega2560-ATMega-SMD-Adapter-/271224130246?pt=Bauteile&hash=item3f2637cac6

das ist aber alles andere als preiswert

Hallo,
das mit dem BootLoader habe ich wohl noch nicht so richtig begriffen. Ich bin
eigentlich davon ausgegangen, das der den Mega konfiguriert. Diesen "FuseBits"
Mist und was- weiß- ich- noch.

Mein Gedankengang war, erst mußt Du den BootLoader aufspielen, und dann den
Sketch.
Wenn ich meinen ArduinoMega als ISP-Programmer nutzen will, dann brauche ich
das aber, glaube ich, nicht. Da würde man dann einfach den Sketch übertragen,
denke ich mir. Nur frage ich mich, woher weiß der Mega wie er arbeiten soll.
(Takt, Timer und sonst was)
Die TRx fallen dann ja weg, es würde dann ja MISO/MOSI und SCK reichen.

Den Mega wollte ich dann einfach nach DEM verdrahten, ganz unten rechtes Bild.

Nur statt Arduino Uno und 328P- Arduino Mega2560 und Mega 2560.

Nun zum muss es ein 2560 sein- es will einer sein…
Ich habe im November mit Arduino angefangen zu programmieren. Dieses Anfänger-
Projekt platzt aus allen Nähten- 68Kb.
Es kann so viele "nützliche" Dinge und daher wollte ich es in ein kleines
Gehäuse einbauen, mir ist es zu schade, es einfach auf HD zu sichern.
Ich schreib mal was es kann.
Display 4x20, bl/w
ChronoDot
2x HYT 939
1x BMP08
1x TSL2561
1xSD-Card
IR-gesteuert
5 Tasten

-Temperatur/Feuchte, innen/außen
-Taupunkt, innen/außen
-absolute Feuchte, innen/außen
-Luftdruck, innen/außen, mit 1, 3 und 24Std-Tendenz
-Temperatur/Feuchte, max/Min, über jeden gewünschten Zeitraum
-Entfernung zum Gewitter
-Lich messen, ob Glühlampe ein oder aus
-Sonnenaufgang/Untergang
-Dämmerung dazu
-Sonnenstand und Höhe

-Datum, Uhrzeit
-1 IR-Kanal für Schreibtischlampe
-4 Kanal Schaltuhr
-2 Kanal Astro-Schaltuhr für Dämmerung und Sonnenauf/Untergang
mit umgekehrter Funktion,
RTC läßt sich über Tasten stellen
Schaltuhren lassen sich über Tasten stellen
einzelne Zeiten oder ganze Kanäle können unabhängig voneinander gesetzt
werden und auch gelöscht werden

alle Daten können gesamt oder in Teilen gelogt werden,
Anzeige Größe der LogDatei,
Verschiedene Namen der LogDatei,
Schaltkanal-Anzeige
Tendenzen für fallend oder steigend
Glatteis und Nässe Warner
Barometer mit Anzeige der Wetterlage

alle Funktionen, die über Tasten verändert werden, lassen sich auch per
IR-MacMini Fernbedienung aktivieren.
Ich habe bestimmt noch die hälfte vergessen… Das kann ich doch nicht in
die Tonne klobben?
Dafür den Mega- und zum fummel und üben.
Für zukünftiges nehme ich dann einen 328P.
Es ist übersichtlicher es auf zwei Atmels zu verteilen, die können dann ja
Verbindung zu einander aufnehmen.

Normalerweise müßte ich mal mit meinem Energiemanagement anfangen, ich kann
mich nur noch nicht entscheiden ob Eltako oder ein anderer.
Also habe ich mir erst einmal den Mega und zwei 328P bestellt. Den werde ich
erst einmal beibringen sich zu unterhalten.
So kann ich auf meinem Steckbrett mit dem Arduino Mega "entwickeln" und es dann
auf andere schieben. So ist das angedacht.
Gruß und Spaß
Andreas

Und wo ist jetzt das Problem, es auf dem Atmega328P zu packen?

Schau dir mal 404 | Rainer's Projekte

Zum Bootloader brennen aus der IDE kann ich nichts sagen, hab das Anfangs einmal gemacht. Dafür braucht es einen AVR ISP Programmer. Sollte mit dem Arduino ISP ebenfalls gehen.

Ich verzichte eigentlich auf den Arduino Bootloader bei meinen Geräten. Spart wichtigen Speicher.

Mein Vorschlag, bau es auf dem Atmega2560 auf, danach setzte dich mal an die Codeoptimierung dran und baust das gleiche auch für den 328P. Sehe jetzt keinerlei Objekte bei dir, die so viel Platz brauchen, (höchstens mit rumassen von Strings bzw Zeichenketten ohne FMakro).

Den Bootloader brauchst wie gesagt nur wenn du einfach über USB programmieren willst. Ich dachte du wolltet irgendeinen USB/TTL Wandler dran hängen.

Der Atmega328 dürfte hier zu wenig Flash haben. Selbst mit aggressiver Optimierung ist es schwer das zu halbieren. Der Funktionsumfang ist schon sehr hoch. Bei den Libs lässt sich vielleicht was entrümpeln, aber insgesamt kommt eher noch mehr hinzu.

Es gibt aber ein Mittelstück zwischen Atmega328 und Atmega2560. Den Atmega1284:

Daran hatte ich vorher gar nicht gedacht. Ganz wichtig: Das Ding hat kommt in DIP40! Und kostet nur ca. 5-8 Euro

Dafür bekommt man 128kB Flash, 16kB RAM (!!!), 32 I/Os, 2 UARTs, 3 Timer, 3 externe Interrupts und 8 ADC Kanäle

Und es gibt eine Arduino Core dafür:

Hallo,
"Ich dachte du wolltet irgendeinen USB/TTL Wandler"
Ja das weiß ich noch nicht so genau… Ich muß das mal üben, mal sehen was dabei
heraus kommt- wie Umständlich- oder Komfortabel das ganze läuft.

Den Atmega 1284 habe ich auch schon entdeckt gehabt, wußte aber nicht, ob das
mit dem auch funktionieren könnte.

Wir haben früher, nicht im Kino, Eproms selber gebrannt- auch 6502 selbst
programmiert- Du bist zwar stolz wie Oscar gewesen, aber es ist jedesmal ein
sehr harter Weg bis dahin gewesen.
Daher stehe ich dieser "ChipSelbstProgrammieren" Sache eher zweifelhaft
gegenüber. Je mehr ich aber darüber lese, so "einfacher" scheint das zu werden.

Der 1284 hätte schon etwas, vor allem ist es ein "richtiger" IC bei dem man sich
nicht Augen und Finger bricht.

Die Post hat heute alles gebracht was ich brauche, nun werde ich einmal
versuchen, umzusetzen, was IHR- mir hier beigebracht habt.
Gruß und Dank
Andreas

Hallo,
was für einen Spruch nuss ich denn aufsagen, um den BootLoader auf den
328P zubekommen, oder wie starte ich den BlinkSketch?
Da binn ich zu blöde zu:

das ist die Fehlermeldung der IDE:
"avrdude: stk500_recv(): programmer is not responding"

Den Mega wollte ich dann einfach nach DEM verdrahten, ganz unten rechtes Bild.

das habe ich getan. Dann: Den Arduino als ISP-Programmer
die Arduino IDE geöffnet
aus den Beispielen den Sketch "ArduinoISP" in die IDE geladen
den Sketch auf den Arduino Maga 2560 übertragen
dann in der IDE unter Tools/Board:

Arduino UNO
oder
Arduino Duelimanove W/Atmega 328
oder
Arduino Nano w/Atmega 328

gewählt.
dann unter Tools/Programmer
Arduino as ISP
gewählt

dann unter Tools Bootloade installieren
dann kommt nach einigen Sekunden die Fehlermeldung:
"avrdude: stk500_recv(): programmer is not responding"

Wie spiele ich denn eine Sketch auf den 328P, wenn er neu ist?
Habe ich hier einen Knoten im Kopf, oder schreiben die ALLE Müll, was es
betrifft den Arduino als ISP Programmer zu nutzen?
Gruß und Dank
Andreas
P.S. den Arduino Mega 2560 habe ich wohl noch nicht zerschossen, der macht
NOCH einen gehenden Eindruck

Hallo,
der 328P läuft.
Gruß und Dank
Andreas

Was hast gemacht? Vergessen Upload mit Programmer auszuwählen?

Hab dir ja schon gesagt, besorg dir was anderes als den Arduino um über ISP die Programme einzuspielen. Wenn man es immer so dann macht, ist es genauso einfach, als wenn man es über USB macht und halt mehr Optionen über.

Hallo,
wenn man den Arduino 2560 R3 als ISP-Programmer nutzt, dann muß zusätzlich in
die Schaltung ein 100nF Kondensator- da muß man (Frau nicht) erst einmal drauf
kommen, dass steht so nicht verständlich geschrieben.
Gruß und Spaß
Andreas

Hallo,
mit einem Arduino Mega 2560 als ISP, scheint es nicht ohne weiteres möglich
zu sein, einen Mega 2560 flashen. Der Arduino will den "neuen" Mega einfach
nicht als Mega akzeptieren.
Aber ich kann erst einmal zufrieden sein, die Geschichte mit dem 328P läuft
ohne Probleme- zu dem Mega wird mir hoffentlich noch etwas einfallen.
Den 1284 werde ich mir einmal anschauen.
Gruß und Dank
Andreas

Mahlzeit,

SkobyMobil:
zu dem Mega wird mir hoffentlich noch etwas einfallen.

USB-Programmer mySmartUSB light

Den habe ich mir mal gekauft.
Hat bisher alles gemacht, was ich wollte.

Gruss

SkobyMobil:
Den 1284 werde ich mir einmal anschauen.

Ein Sache dazu. Der Mighty1284 Core ist etwas alt und macht anscheinend einige moderne Arduino Standardfunktionen nicht mehr.

Wenn man sich mal die Kommentare dort ansieht:

Is this not updated to allow for INPUT_PULLUP on pinMode? how do we define the pullup method for pinMode on the mighty1284p?

Kann man natürlich noch manuell mit digitalWrite(..., HIGH) aktivieren. So ging es vor INPUT_PULLUP auch

Die andere Sache ist, dass Libs die Code für verschiedene Prozessoren erzeugen darauf nicht abfragen. Man wird dann vielleicht in den #else Zweig befördert was u.U. nicht geht. Da hat z.B. ein "phenyl" Probleme damit gehabt eine SD Karte zu initialisieren. Lösung:

#elif defined(AVR_ATmega644P) || defined(AVR_ATmega644)|| defined(AVR_ATmega1284P)

Wenn man es aber mit Timern zu tun hat (z.B. IrRemote) ist es wieder ok dass der wie ein Atmega328 behandelt wird.

Man sollte sich also grob in den Eingeweiden des Prozessors und der Libs auskennen. Dann kann man sowas auch schnell beheben

Hallo,
ich habe mir das- wie sagtest Du? "Core" einmal durchgelesn. Ist ja eine nette
Idee aber ein wenig zu unberechenbar. Da gibt es zu viele Fallstricke.

Das mit den beiden Mega´s muß ja irgendwie möglich sein, ich habe schon daran
gedacht, den internen Mega abzuschalten- aber wie? Schaun´n wir mal… das muß
auch ohne dazu gekauften Programmer gehen.
Gruß und Spaß
Andreas

Gute Nachrichten für den Atmega1284P!

Es gibt einen neuen, aktuellen Core (basierend auf dem alten Mighty1284 Core) für die Arduino Version 1.5.7. BETA:
http://www.leonardomiliani.com/en/2014/atmega644p1284p-nuovo-core-per-lide-1-5-7-di-arduino/

Hallo,
ist ja nett, das Du Dich kümmerst.

Ich muß erst einmal sehen das ich diesen verdammten 2560 in die Gänge bekomme.
Ohne echten Programmer scheint da tatsächlich nichts zu laufen.

Kann man zu den MOSI, MISO, CLK und Reset eine LED aufschalten um zu sehen
ob überhaupt "etwas" ankommt?

"mySmartUSB light" für diesen Programmer gibt es OSX Treiber, taugt der was?

Gruß und Dank
Andreas