Pages: [1] 2   Go Down
Author Topic: Mega 2560 per ISP flashen  (Read 1933 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 39
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

ich habe auf einer selbst gebauten Platine einen Atmega 2560 sitzten. Diesen würde ich gerne mit der Arduino Software per ISP programmieren. Was brauche ich dazu und wie läst sich das in der Arduino Software einstellen ?

Ich habe im moment folgenden AVR-ISP Programmer zur Hand:
1. http://www.avr-programmer.com/usb-isp/
2. ein original AVR STK500 Board

Hab bis jetzt immer nur mit den fertigen Arduino Boards gearbeitet .... bitte  um Hilfe  smiley-slim

Gruß
Jens
« Last Edit: January 02, 2013, 02:32:01 pm by Lan-Police » Logged

Hamburg, Germany
Offline Offline
Full Member
***
Karma: 3
Posts: 192
Hello world!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

http://blog.sui.li/2011/06/27/isp-lohnt-sich/

Abschnitt "Konfiguration ISP" und "Konfiguration Board"
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 39
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

die Beschreibung scheint mir nicht ganz passend !?!

Ich kann die Sketch drauf laden ohne Fehler aber die Kiste macht nichts .... nich mal den Beispiel Blink Sketch smiley-sad

Bitte um Hilfe!

Verwendet: http://www.avr-programmer.com/usb-isp/

hab in der programmers.txt folgendes eingefügt:

Code:
diamexavr.name=DIAMEX-AVR
diamexavr.communication=serial
diamexavr.protocol=stk500v2

und in der boards.txt:

Code:
mega2560isp.name=Arduino Mega 2560 per ISP

mega2560isp.upload.protocol=stk500v2
mega2560isp.upload.maximum_size=258048
mega2560isp.upload.speed=115200
mega2560isp.upload.using=DIAMEX-AVR

mega2560isp.build.mcu=atmega2560
mega2560isp.build.f_cpu=16000000L
mega2560isp.build.core=arduino
mega2560isp.build.variant=mega



« Last Edit: January 05, 2013, 11:11:26 am by Lan-Police » Logged

Cologne
Offline Offline
Sr. Member
****
Karma: 11
Posts: 496
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,
eine neue Beschreibung für das Board benötigst du nicht. Du kannst das "normale" Mega Board auswählen.
Dann stellst du deinen Programmer in der Auswahl ein und machst den Upload mit "upload using programmer".
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 39
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

so hatte ich das auch schon getestet .... die Sketche spielt er ohne Fehlermeldung auf aber Funktioniert tut nichts .... ich kann die Kiste nun auch nicht mehr mit dem USB Port programmieren ....?!?

Jemand ne Idee ?
Logged

Cologne
Offline Offline
Sr. Member
****
Karma: 11
Posts: 496
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ich habe auf einer selbst gebauten Platine einen Atmega 2560 sitzten.

Hallo Jens,
gestatte mir die Frage: hat der denn schon mal irgendwann getan? Der Atmega2560 hat ja eine Menge Pins, da kann man viele Fehler einbauen.
Mit welchem Betriebssystem arbeitest du? Kannst du die Fuse-Settings des Prozessors mal auslesen?
Quote
ich kann die Kiste nun auch nicht mehr mit dem USB Port programmieren ....
Das heisst, das der Bootloader schon drauf ist?
Gruß
Reinhard
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 39
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

hab das Ding ausgepackt und das Blink Prog. per USB prog. ohne Probleme.

Nun wollte ich das ganz mit dem DIAMEX-AVR Programmer mal machen und nun tut sich nix mehr.

Der Grund ist das ich einen MEGA2560 auf einer Selbstbau Platine habe und diesen mit der Arduino IDE flashen möchte!?

Betriebssystem: WIN 7 HP 64 Bit

Code:
Kannst du die Fuse-Settings des Prozessors mal auslesen?

Hilfe ? Wie ??? (bin da noch total unbeholfen  smiley-red )

Im moment hängt nur ne LED an PIN 53 mehr nicht!

Gruß
Jens
« Last Edit: January 06, 2013, 04:24:24 am by Lan-Police » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 39
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

also ich hab es hinbekommen das ich die Kiste wieder über den USB Port auf dem Arduino Board flashen kann.

Aber ich möchte gerne die Kiste über den ISP flashen können mit dem DIAMEX-AVR Programmer
und dann mal einen komplett leeren ATMEGA 2560 auf meiner Eigenbauplatine.

Brauch ich da den Bootloader überhaupt ?

Wie muss ich da vorgehen ?

Gruß
Jens
Logged

Cologne
Offline Offline
Sr. Member
****
Karma: 11
Posts: 496
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Jens,
leider ist mir immer noch nicht klar, was du wie auf welchem Board flashst:
"dass ich die Kiste wieder über den USB Port auf dem Arduino Board flashen kann" - hast du den Atmega2560 Chip auf die Arduino Platine aufgelötet ?
Was ist für dich "die Kiste", ich bin normal nicht pingelig, wenn es um eine laxe Ausdrucksweise geht, aber wenn ich helfen soll, muss ich dich verstehen.
Beschreibe doch mal die Beschaltung auf deiner Eigenbauplatine. Hast du einen Schaltplan oder ein Layout? Eventuell helfen auch Fotos von deinem Aufbau.
Ein neuer, also komplett leerer Atmega2560 hat im Auslieferungszustand Fusesettings, die kannst du unter http://www.engbedded.com/fusecalc/ nachschauen. Z.B. ist der Chip auf seinen internen RC-Oszillator mit einem Teiler von 8 eingestellt und schwingt damit bei 1MHz (und nicht bei 16MHz wie der Arduino Mega). Bei deinem Blink Sketch musst du das berücksichtigen.
Die Fuses unter Windows auszulesen ist etwas schwierig, da man avrdude aus der Kommandozeile starten muss.
Konntest du mit dem DIAMEX als Programmer eigentlich irgendwann mal aus der IDE irgendein Board erfolgreich flashen?
Gruß
Reinhard
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 39
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Reinhard,

also rollen wir das ganze mal von vorne auf:
 
Punkt A:
Ich konnte mit dem DIAMEX-AVR Programmer ohne Probleme mit folgenden Settings in der programmers.txt einen MEGA328 auf der Original Arduino UNO Platine über die ISP Schnittstelle (6 Pin Stiftleiste) mit der Arduino IDE 1.01 flashen:


Code:
diamexavr.name=DIAMEX-AVR
diamexavr.communication=serial
diamexavr.protocol=stk500v2

Punkt B:

Mit den selben Settings wollte ich den Mega 2560 auf dem Original Ardunio Mega Board 2560 Rev. 3 auch über die ISP Schnittstelle (6 Pin Stiftleiste) auf dem Board flashen. Habe aber das Problem das er sich über die Arduino IDE 1.01 ohne Fehlermeldung flashen lässt aber nichts tut. Habe zum testen das Blink Sketch aufgespielt und nur einen LED an PIN 53 angeschlossen.

Flashe ich den Mega 2560 über den USB Anschluss und den Programmer auf dem Arduino Mega 2560 Board funktioniert es ... und da komm ich im moment nicht weiter !?!

Punkt C:

Die beide Test im Punkt A und B zielen darauf ab, das ich gerade eine Platine entwickle worauf ein neuer und unbeschriebener Mega2560 sitzt den ich gerne mit dem DIAMEX-AVR Programmer und der Arduino IDE 1.0.1 beschreiben würde.

Nun hab ich halt bedenken das mein vorhaben nicht funktioniert weil ich ja schon beim Punkt B hängen bleibe.

Layout zur Platine ist nicht fertig. Aber folgende Hinweise:

- Quarz mit 16MHz für den Mega2560

Ist es den nicht möglich den genau gleichen Inhalt mit den ganze Fusesettings die ich mit dem Original Board / Controller habe auf meine leeren Controller zu flashen ?

Wie soll man da am besten vorgehen ?

Kannst du mir da weiterhelfen ?

Gruß
Jens



« Last Edit: January 06, 2013, 10:11:53 am by Lan-Police » Logged

Cologne
Offline Offline
Sr. Member
****
Karma: 11
Posts: 496
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Habe zum testen das Blink Sketch aufgespielt und nur einen LED an PIN 53 angeschlossen.

Probier das mal mit "13". Das ist die LED auf dem Mega Board.
Logged

Cologne
Offline Offline
Sr. Member
****
Karma: 11
Posts: 496
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Jens,
ich habe dein Vorgehen mal Schritt für Schritt mit meinem Mega und meinem Programmer mySmartUSB nachgespielt
Der Eintrag unter programmer.txt ist bei mir
Code:
mySmartUSB.name=mySmartUSB
mySmartUSB.communication=serial
mySmartUSB.protocol=stk500v2
also vergleichbar.
Unter Tools->Programmer "mySmartUSB" ausgewählt und unter Datei->Upload mit Programmer hochgeladen
Funktioniert sowohl mit Pin 53 wie auch mit 13.

Ist der Programmer richtig am 6-poligen Stecker angeschlossen? Kannst du die Verbindungen vom 6-poligen Stecker zum Chip mal prüfen (durchpiepsen)? Wie ist es mit der Spannungsversorgung für den DIAMEX? Vielleicht braucht der die 5V über das Board.

Mach mal folgendes:
- schalte unter Datei->Einstellungen die Option "Ausgaben während Upload"  ein
- lade den Blink Sketch
- schliesse den Programmer an den Rechner an  aber nicht an den Mega
- lade den Blink Sketch mit "Upload mit Programmer" hoch.
- im unteren Fenster wird eine Debug-Ausgabe angezeigt
- scoll in dieser Anzeige ganz nach oben
- in der 2. Zeile solltest du den Aufruf von avrdude finden
Im nächstem Schritt werde ich dir zeigen wie du dann die Fuses auslesen kannst.

Reinhard
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 39
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

also mit Pin 13 genau das gleich die LED is dauerhaft an !?

Hier der "Log":

Code:

D:\Programme\Arduino-1.0.1\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega2560 -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=101 -ID:\Programme\Arduino-1.0.1\hardware\arduino\cores\arduino -ID:\Programme\Arduino-1.0.1\hardware\arduino\variants\mega C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\Blink.cpp -o C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\Blink.cpp.o
  Using previously compiled: C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\WInterrupts.c.o
  Using previously compiled: C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\wiring.c.o
  Using previously compiled: C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\wiring_analog.c.o
  Using previously compiled: C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\wiring_digital.c.o
  Using previously compiled: C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\wiring_pulse.c.o
  Using previously compiled: C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\wiring_shift.c.o
  Using previously compiled: C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\CDC.cpp.o
  Using previously compiled: C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\HardwareSerial.cpp.o
  Using previously compiled: C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\HID.cpp.o
  Using previously compiled: C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\IPAddress.cpp.o
  Using previously compiled: C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\main.cpp.o
  Using previously compiled: C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\new.cpp.o
  Using previously compiled: C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\Print.cpp.o
  Using previously compiled: C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\Stream.cpp.o
  Using previously compiled: C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\Tone.cpp.o
  Using previously compiled: C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\USBCore.cpp.o
  Using previously compiled: C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\WMath.cpp.o
  Using previously compiled: C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\WString.cpp.o
D:\Programme\Arduino-1.0.1\hardware\tools\avr\bin\avr-ar rcs C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\core.a C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\WInterrupts.c.o
D:\Programme\Arduino-1.0.1\hardware\tools\avr\bin\avr-ar rcs C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\core.a C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\wiring.c.o
D:\Programme\Arduino-1.0.1\hardware\tools\avr\bin\avr-ar rcs C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\core.a C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\wiring_analog.c.o
D:\Programme\Arduino-1.0.1\hardware\tools\avr\bin\avr-ar rcs C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\core.a C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\wiring_digital.c.o
D:\Programme\Arduino-1.0.1\hardware\tools\avr\bin\avr-ar rcs C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\core.a C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\wiring_pulse.c.o
D:\Programme\Arduino-1.0.1\hardware\tools\avr\bin\avr-ar rcs C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\core.a C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\wiring_shift.c.o
D:\Programme\Arduino-1.0.1\hardware\tools\avr\bin\avr-ar rcs C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\core.a C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\CDC.cpp.o
D:\Programme\Arduino-1.0.1\hardware\tools\avr\bin\avr-ar rcs C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\core.a C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\HardwareSerial.cpp.o
D:\Programme\Arduino-1.0.1\hardware\tools\avr\bin\avr-ar rcs C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\core.a C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\HID.cpp.o
D:\Programme\Arduino-1.0.1\hardware\tools\avr\bin\avr-ar rcs C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\core.a C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\IPAddress.cpp.o
D:\Programme\Arduino-1.0.1\hardware\tools\avr\bin\avr-ar rcs C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\core.a C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\main.cpp.o
D:\Programme\Arduino-1.0.1\hardware\tools\avr\bin\avr-ar rcs C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\core.a C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\new.cpp.o
D:\Programme\Arduino-1.0.1\hardware\tools\avr\bin\avr-ar rcs C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\core.a C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\Print.cpp.o
D:\Programme\Arduino-1.0.1\hardware\tools\avr\bin\avr-ar rcs C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\core.a C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\Stream.cpp.o
D:\Programme\Arduino-1.0.1\hardware\tools\avr\bin\avr-ar rcs C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\core.a C:\Users\Jens\AppData\Local\Temp\build2505665150654594488.tmp\Tone.cpp.o
 
----- gekürzt--------


Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 39
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich hatte schon 5V Extern am Board gehabt hatte auch nichts geändert.

Das Kabel sollte in Ordnung sein da ich ja den Uno problemlos programmieren konnte !?
Logged

Cologne
Offline Offline
Sr. Member
****
Karma: 11
Posts: 496
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Du hast (auch?) einen Haken bei "kompilieren" gesetzt. Nimm den mal weg. Nur den Haken bei "hochladen" setzen.

Ich meinte nicht das Kabel, sondern die Verbindung zwischen 6-poligem Stecker auf der Platine und dem Chip. Aber poste erst mal den Debug vom Upload.
Logged

Pages: [1] 2   Go Up
Jump to: