328P flashen und Sketch übertragen

Hallo,
ich habe es ja noch nicht probiert, aber wie ich mit meinem Mega 2560 aus einem
jungfräulichne 328P ein "UNO" mache, sollte mir schon klar sein.

Nur, wie lade ich dann auf diesen einen Sketch? So wie es aussieht brauche ich
dann ja wieder neue Hardware, obwohl der Mega eigentlich alles on Board
haben müßte. Weiß da jemand etwas?
Gruß und Dank
Andreas

SkobyMobil:
Nur, wie lade ich dann auf diesen einen Sketch? So wie es aussieht brauche ich
dann ja wieder neue Hardware, obwohl der Mega eigentlich alles on Board
haben müßte. Weiß da jemand etwas?

Bei jedem Arduino-kompatiblen Controller gibt es immer zwei Möglichkeiten, einen Sketch hochzuladen:

  1. per ISP-Programmer (auch "Arduino as ISP")
  2. per Bootloader

Nachdem Du einen fabrikfrischen Atmega328p mit der Funktion "Bootloader installieren" und einem ISP-Programmer erstmalig vorbereitet hast, stehen Dir danach zum Aufspielen von Sketchen beide Möglichkeiten offen.

Zum Hochladen per Bootloader muß dann natürlich ein USB-Serial Adapter am Atmega328 angeschlossen sein.

Hi,

falls ich Deine Frage richtig verstehe, benötigst Du einen Zugang zum USB? Sowas hier z.B.: elektronik-bastelkeller.de

Das benutze ich bei selbst gebastelten Arduinos (gelötet oder auf dem Breadboard).

Gruß,
Ralf

Hallo Andread, gerade in Bezug auf deine Projekte mit den eigenen Platinen, würde ich dir raten, über einen ordentlichen AVR ISP Programmer nachzudenken :wink:

Hier nur mal ein paar zur Auswahl
http://www.ebay.de/itm/USB-ISP-Programmer-fur-ATMEL-AVR-STK500-ATmega-ATtiny-AT90-Controller-/270955427201?pt=Wissenschaftliche_Geräte&hash=item3f1633b581
http://www.ebay.de/itm/USB-Tiny-ISP-Programmer-Programming-mit-Cable-6-10pin-fur-AVR-ATMEGA-Arduino-Neu-/360954946654?pt=Wissenschaftliche_Geräte&hash=item540a97645e

Bevorzuge den Diamex, da er bereits ein rubustes Gehäuse hat. Nachteil, der 6Pin ISP ist nicht onBoard. Lässt sich mit einem Adapter aber beheben. Spielt bei mir eigentlich keine Rolle, die MCU, die Programmiert werden sind meist auf dem Breadboard und da habe ich keinen zusammengefassten ISP. Man kann den auch direkt mit einander verkabeln

Hallo,
vielen Dank schon einmal
Ich verdrahte das ganze dann also zum Beispiel nach:

ganz unten rechts. Nur hängt da bei mir kein UNO- sondern ein Mega 2560
Nun habe ich auf den 328P den Bootloader gespielt.

Dann hole ich mir den "BlinkSketch" in die IDE.
Dort wähle ich dann unter "Board" statt des Mega- den Uno aus.
Dann übertrage ich den Sketch und der läuft dann auf dem 328P
Oder muss da noch etwas anderes verdrahtet werden?
Gruß und Dank
Andreas

SkobyMobil:
Nun habe ich auf den 328P den Bootloader gespielt.

Dann hole ich mir den "BlinkSketch" in die IDE.
Dort wähle ich dann unter "Board" statt des Mega- den Uno aus.
Dann übertrage ich den Sketch und der läuft dann auf dem 328P
Oder muss da noch etwas anderes verdrahtet werden?

Nein, mit derselben Verdrahtung wie Du sie zum Installieren des Bootloaders benötigst, kannst Du dann auch den Sketch hochladen.

Allerdings mußt Du die Funktion "Datei - Upload mit Programmer" dazu verwenden.

Dabei wird der Bootloader dann allerdings wieder gelöscht und Du hast dann nur noch den Sketch - ohne Bootloader aber mit den richtigen Fuses - auf dem Atmega328.

Hallo,
ich habe mir das hier einmal "gelesezeichnet". Da bin ich ja mal gespannt...
Danke für die Mühe.
Gruß und Spaß
Andreas

Hallo Andreas,

der Arduino hat die RxD und TxD Signale auf Pin 0 und Pin 1.
Dort kann man also die Signale vom USB nach Seriell Wandler abgreifen.

Wenn Du bei Deinem Mega diese Pin auf den 328P mit Bootloader legst und auch noch den Reset verbindest,
müsste es gehen.

Die Pins vom IC entsprechen dabei nicht den Arduino Pins ( bitte selbst heraussuchen )

Du benutzt bei dieser Schaltung vom Mega nur den USB -> Seriell Chip ATmega16U2 oder ATmega8U2 je nach Version.

Bitte berichten, ob es geklappt hat.

Gruss
Kurti

Hallo Freunde...
"Bitte berichten, ob es geklappt hat."
Da- könnt Ihr euch drauf verlassen.
Also, nochmals vielen Dank
Gruß und Spaß
Andreas

Hallo,

der USBasp und ein 10 - oder 6 poliger ISP Header in jedem Projekt sparen dir die serielle Schnittstelle und den Verdruss, wenn du dich selbst aussperrst, weil du den Bootloader mal zerballert hast oder Ausversehen mal die I/O's 0 oder 1 genutzt hast ]:smiley:
Mit eXtreme Burner kannst du auch die Fuses direkt bearbeiten oder einen Bootloader clonen, ohne die Verrenkungen der IDE. So kann man sich mehrere Standardeinstellungen zurechtlegen. Mit 16 MHz Quarz, mit 8 MHz internem Takt usw.
Hier eine Variante mit dem internen 8 MHz Takt, wenn es um nichts Zeitkritisches, sondern nur ein bisschen Geblinke, oder so, geht :wink:

Die habe ich erfolgreich getestet. Spart ein bisschen Verdrahtung und ein paar Cent Material - und du kannst auch mal mit der Spannung runter gehen, wenn du z.B. 3,3V Sensoren hast.

Gruß Gerald

jurs:
Dabei wird der Bootloader dann allerdings wieder gelöscht und Du hast dann nur noch den Sketch - ohne Bootloader aber mit den richtigen Fuses - auf dem Atmega328.

Aber es wird nicht mehr Flash Speicher frei, zumindest zeigt Arduino IDE nicht mehr an. Da müsste man in der boards.txt ändern, oder?

Du kannst über das BOOTSZ0 und BOOTSZ1 Bit in den High Fuses einstellen,
wieviel Speicher für die Bootsektion zur verfügung stehen sollen.
Die kannst du durch löschen beider bits auf 256 words runter setzen.
Standartgemäß müssten es 2048 words sein.

Aha, okay, alles klar.