Umstieg vom Arduino auf Mega2560-USB Mikrocontrollermodul aus AVR-Praxis-Onlineshop

analog

Neues Mitglied
16. Juli 2011
26
0
1
62
Bad König
Sprachen
  1. ANSI C
Hallo, ich bin zurück und hab gleich mal ne Frage:

Ich habe mich (abgesehen von ersten AVR-Gehversuchen mit dem STK 500 vor 10 Jahren) eigentlich an den Arduino samt C/C++ Programmierung und Arduino-IDE gewöhnt, würde jetzt aber gerne auf das Mega2560-USB Mikrocontrollermodul aus unserem Onlineshop umsteigen. Welche Schwierigkeiten kommen dann auf mich zu? Oder wird das ein nahtloser Übergang?

Danke und LG

Andreas
 
Guten Morgen Andreas,

wenn du einen ISP-Programmierer einsetzt, kannst du das Mega2560-USB-Mikrocontrollermodul ja einfach über die ISP-Programmierschnittstelle (6-Pin Stiftleiste, "Atmel-kompatibel") programmieren. In diesem Fall sehe ich keine Schwierigkeiten, die auftreten könnten.

Falls du keinen ISP-Programmierer besitzt, musst du das Mikrocontrollermodul über einen Bootloader programmieren, der sich im Bootloaderbereich des Flash-Speichers befindet (also wie bei Arduino Uno zum Beispiel). Als Schnittstelle zum PC hast du eine USB-UART-Bridge (CP2102), die wird als virtueller COM-Port durch das Betriebssystem erkannt. Für das Mega2560-USB-Mikrocontrollermodul habe ich leider noch keinen Bootloader geschrieben, eventuell werde ich dies aber noch machen. :)

Ansonsten bildet das Mikrocontrollermodul ja ein Minimalsystem ...
  • Alle IO-Pins an den Stiftleistenanschlüssen verfügbar
  • Betriebsspannungsquelle: mehrere Möglichkeiten (USB VBUS, extern 5V, on board 5V Linearregler)
  • Quarz für frei wählbar (Quarzoszillator XTAL1/2), Uhrenquarz 32,768kHz SMD (TOSC1/2)
  • USB-UART-Bridge
  • Puffer-Kondensatoren über VCC-GND verteilt, LC-Filter-Netzwerk an AVCC.

Du hast also viele Freiheiten.

Dirk :ciao:
 
Danke ... und noch ein paar Fragen und Probleme zum Thema...

Lieber Dirk,

danke für die schnelle Antwort ... ich denke, dass ich mir so ein Teil einfach mal bestelle und dann mit Deiner/Eurer Hilfe weitersehen werde. Die Entscheidung, den Arduino aufzugeben, rührt vor allem daher, dass mich schon von Anfang an geärgert hat, dass die Buchsenleisten relativ zueinander nicht im 1/10"-Raster liegen. Da scheint mir das neue Modul eine absolut ideale Alternative zu sein.

Ich hab vor längerer Zeit mal (eher nur halbherzig) versucht, den Arduino Duemilanove via ISP von meinem (bisher unbenutzten) AVRISP-Teil aus zu programmieren. Leider ziemlich erfolglos: Da kam dann das AVR-Studio ins Spiel, und insgesamt war mir ziemlich unklar, wie die Arduino-IDE und das AVR-Studio zusammenarbeiten.

Mal ne blöde Frage auch im Hinblick auf "mit/ohne Bootloader": Der AVR-Code (also: ich meine damit den Code, der tatsächlich in den Programmspeicher geschossen wird) ist bei Programmierung mit Bootloader doch sicher nicht identisch mit dem Code, der vom Compiler erzeugt wird, wenn ich ohne Bootloader und nur mit ISP arbeite? Wegen der Adressen, die ja alle höher liegen müssen, wenn ein Bootloader schon mal einiges an Speicherplatz einnimmt? Oder sehe ich da etwas verkehrt? Mein Problem ist leider, dass ich eigentlich ein ganz passabler C/C++Programmierer bin (oder mich dafür halte, grins ...), dass ich aber mit dem ganzen "Hintenrum" (Compiler, IDE, AVR-Studio, Projektverwaltung, Teriber ... oh je) massive Probleme habe. Ich will meinen Sourcecode schreiben, dazu ein paar Header-Dateien mit einigen selbsterstellten Bibliotheksfunktionen und Klassen, Compilieren, Hochladen und mich um den Rest möglichst wenig kümmern müssen: keine Bequemlichkeit, sondern halt eher Mangel an Hintergrundverständnis.

Grüße von Andreas
 
Hallo Andreas,

Mal ne blöde Frage auch im Hinblick auf "mit/ohne Bootloader": Der AVR-Code (also: ich meine damit den Code, der tatsächlich in den Programmspeicher geschossen wird) ist bei Programmierung mit Bootloader doch sicher nicht identisch mit dem Code, der vom Compiler erzeugt wird, wenn ich ohne Bootloader und nur mit ISP arbeite? Wegen der Adressen, die ja alle höher liegen müssen, wenn ein Bootloader schon mal einiges an Speicherplatz einnimmt? Oder sehe ich da etwas verkehrt?

der Booloader liegt im hinteren Bereich des Flash. Bei AVR gibt es hier in der Regel 4 Einsprungadressen, die sich über Fusebits einstellen lassen. Die Einsprungadresse wählt man so, dass der belegte Platz bis zum Flash-Ende vom Bootloader möglichst klein ist, aber das nur mal so nebenbei.

Das Applikationsprogramm ist mit oder ohne Bootloader gleich, es gibt keine Unterschiede. Das Applikationsprogramm startet immer ab Adresse 0! Du musst eigentlich nur darauf achten, dass der Code der Applikation nicht in den Bootloaderbereich hineinreicht (beim Mega2560 passiert das nicht so schnell ;)).

Ich hab vor längerer Zeit mal (eher nur halbherzig) versucht, den Arduino Duemilanove via ISP von meinem (bisher unbenutzten) AVRISP-Teil aus zu programmieren. Leider ziemlich erfolglos: Da kam dann das AVR-Studio ins Spiel, und insgesamt war mir ziemlich unklar, wie die Arduino-IDE und das AVR-Studio zusammenarbeiten.

Wenn du den Programmierer in Verbindung mit AVR Studio verwendest, musst du im Programmierdialog die Quelle des Hexfiles angeben. Ansonsten musst du noch auf die ISP-Frequenz achten, diese muss kleiner als 1/4 der Systemtaktfrequenz des Zielsystems sein. Wenn du Fuses programmieren solltest, musst du darauf achten,
  • dass du SPIEN Fusebit nicht löscht, dann wäre nämlich die ISP-Schnittstelle deaktiviert
  • und dass du beim Einstellen der Systemtaktquelle (CKSEL3..0, SUT1..0, CKOPT Fusebits) eine Systemtaktquelle wählst, deren Hardware vorhanden ist. Füe ISP-Programmierung benötigt der AVR immer einen Systemtakt.



Dirk :ciao:
 
Hallo,

also ich hab das Modulbei mir auch im Einsatz. Das ist schon nicht schlecht. Vor allem weil man auch die USB-Anschlüsse der Buchse auf den Leisten hat. Man könnte also das Modul irgendwo ins Gehäuse bauen und dann ne eigene USB-Buchse verwenden.

Gruß
Dino
 
Arduino mega 2560

Hallo,

ich war der Meinung das es die Arduinos auch mit den großen Megas gibt. Ich bin jetzt zufällig über einen gestolpert ...
http://www.pollin.de/shop/dt/MDA4OTgxOTk-/Bausaetze_Module/Module/ARDUINO_MEGA_2560.html

Wenn man den Bootloader auf das Mega2560-Modul packt und der UART-USB-Wandler auf dem Modul am gleichen UART liegt sollte das doch möglich sein (sag ich jetzt mal in meinem jugendlichen Leichtsinn) :rolleyes:

Gruß
Dino
 
Hallo Dino,

bei uns bin ich auch gerade über das Arduino Mega 2560 R3 gestolpert. ;)

Ja, daran hatte ich auch schon gedacht, den Bootloader ein bisschen anzupassen. Aber wenn sowieso ein ISP-Programmer vorhanden ist ...

Noch einen schönen Abend
Dirk :ciao:
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)