Makefile für Atmega2560 mit AVRdude klemmt

OP #5671298
Lesenswert?

Mit der Arduino-Umgebung (arduino-1.6.12-windows.exe) lässt sich unter 
Win7 64bit der LED-Blinker auf die mega2560 R3-Platine laden. Es blinkt 
korrekt. Die Hardware und die Verbindung geht also.

Zur normalen Arbeit soll WinAVR-20100110 verwendet werden mit Makefile. 
Dieser Weg funktioniert mit ATmega328p.

Das Makefile wurde angepasst für mega2560. "Make program" erzeugt ein 
main.hex. Die folgende Zeile im Makefile soll main.hex programmieren:
avrdude -v -v -v -v -p m2560 -c arduino -P COM10 -b 57600 -l log.txt -U 
flash:w:main.hex

Es sind Meldungen eingeschaltet (-v -v -v -v). Der Ladevorgang schlägt 
fehl. In log.txt steht:

avrdude: Version 6.3, compiled on Sep 12 2016 at 17:24:16
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is 
"C:\WinAVR-20100110\bin\avrdude.conf"

         Using Port                    : COM10
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xad
avrdude: Send: 0 [30]   [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xad
avrdude: Send: 0 [30]   [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xad
avrdude: Send: 0 [30]   [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xad
avrdude: Send: 0 [30]   [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xad
avrdude: Send: 0 [30]   [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xad
avrdude: Send: 0 [30]   [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xad
avrdude: Send: 0 [30]   [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xad
avrdude: Send: 0 [30]   [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xad
avrdude: Send: 0 [30]   [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xad

avrdude done.  Thank you.

avrdude.exe und avrdude.conf wurden auf Stand 2016 gebracht.

Im Netz sind Hinweise zu finden wie:
https://stackoverflow.com/questions/19765037/arduino-sketch-upload-issue-avrdude-stk500-recv-programmer-is-not-respondi
"none of my attempts are working and they result in the same error every 
time I try it - avrdude: stk500_recv(): programmer is not responding."
"when uploading, you can see avrdude sending three packets avrdude: 
Send: 0 [30]   [20] (with corresponding RX flashes on the board) right 
before the avrdude: ser_recv(): programmer is not responding error."

"The trick is to hit the reset button on the board immediately before 
these three packets are sent. Then the program will be uploaded 
successfully."

Es ist von einem Trick die Rede den Reset-Knopf zur richtigen Zeit zu 
drücken. Leider klappte ein Test damit nicht.

Da das Laden mit der Arduino-Umgebung klappt und das Laden per Makefile 
mit dem ATmega328p klappt müsste der mega2560 doch auch mit Makefile 
klappen?

Was habe ich übersehen?

Matthias
Gast #5671415
Lesenswert?

Matthias W. schrieb:
> Die folgende Zeile im Makefile soll main.hex programmieren:
> avrdude -v -v -v -v -p m2560 -c arduino -P COM10 -b 57600 -l log.txt -U
> flash:w:main.hex

Nach eigenem Ausprobieren müsste das hier funktionieren, (tut
es jedenfalls bei mir):

avrdude -Cavrdude.conf -v -patmega2560 -cwiring -PCOM14 -b115200 -D 
-Uflash:w:default/MyHexFile.hex:i

Entscheidend / unterscheidend hier dass eine Datei avrdude.conf
präsent sein muss sowie der Parameter -cwiring.

Auf meinem Test-Arduino ist der Bootloder

stk500boot_v2_mega2560.hex

drauf.
#5672512
Lesenswert?

Arduino Fanboy D. schrieb:
> Die Kröte ist widerspruchslos zu schlucken.

Matthias W. schrieb:
> eine Kröte ist das ja nicht. Es ist ja ok wenns auch schnell geht.

zuerst fand ich das neue Tempo ja toll, aber als mein wUSB nicht mehr 
ging eher weniger!

Ergo habe ich bei allen nanos Optiboot auf 57k6 wieder reduziert, was 
nutzt schnell wenn es u.U. anderswo klemmt.

So habe ich nun 4 Auswahlmöglichkeiten:
1
## Arduino Nano w/ ATmega328P (new boot full mem low upload)
2
## --------------------------
3
nano.menu.cpu.atmega328fullmemlowup=ATmega328P (New Boot Full Mem Low Upload)
4

5
nano.menu.cpu.atmega328fullmemlowup.upload.maximum_size=32256
6
nano.menu.cpu.atmega328fullmemlowup.upload.maximum_data_size=2048
7
nano.menu.cpu.atmega328fullmemlowup.upload.speed=57600
8

9
nano.menu.cpu.atmega328fullmemlowup.bootloader.low_fuses=0xFF
10
nano.menu.cpu.atmega328fullmemlowup.bootloader.high_fuses=0xDE
11
nano.menu.cpu.atmega328fullmemlowup.bootloader.extended_fuses=0xFD
12
nano.menu.cpu.atmega328fullmemlowup.bootloader.file=optiboot/optiboot_atmega328.hex
13

14
nano.menu.cpu.atmega328fullmemlowup.build.mcu=atmega328p
15

16
## Arduino Nano w/ ATmega328P (new bootloader full mem)
17
## --------------------------
18
nano.menu.cpu.atmega328fullmem=ATmega328P (New Bootloader Full Mem)
19

20
nano.menu.cpu.atmega328fullmem.upload.maximum_size=32256
21
nano.menu.cpu.atmega328fullmem.upload.maximum_data_size=2048
22
nano.menu.cpu.atmega328fullmem.upload.speed=115200
23

24
nano.menu.cpu.atmega328fullmem.bootloader.low_fuses=0xFF
25
nano.menu.cpu.atmega328fullmem.bootloader.high_fuses=0xDE
26
nano.menu.cpu.atmega328fullmem.bootloader.extended_fuses=0xFD
27
nano.menu.cpu.atmega328fullmem.bootloader.file=optiboot/optiboot_atmega328.hex
28

29
nano.menu.cpu.atmega328fullmem.build.mcu=atmega328p
30

31
## Arduino Nano w/ ATmega328P (new bootloader old mem)
32
## --------------------------
33
nano.menu.cpu.atmega328=ATmega328P (New Bootloader Old Mem)
34

35
nano.menu.cpu.atmega328.upload.maximum_size=30720
36
nano.menu.cpu.atmega328.upload.maximum_data_size=2048
37
nano.menu.cpu.atmega328.upload.speed=115200
38

39
nano.menu.cpu.atmega328.bootloader.low_fuses=0xFF
40
nano.menu.cpu.atmega328.bootloader.high_fuses=0xDA
41
nano.menu.cpu.atmega328.bootloader.extended_fuses=0xFD
42
nano.menu.cpu.atmega328.bootloader.file=optiboot/optiboot_atmega328.hex
43

44
nano.menu.cpu.atmega328.build.mcu=atmega328p
45

46
## Arduino Nano w/ ATmega328P (old bootloader low mem)
47
## --------------------------
48
nano.menu.cpu.atmega328old=ATmega328P (Old Bootloader Low Mem Low Upload)
49

50
nano.menu.cpu.atmega328old.upload.maximum_size=30720
51
nano.menu.cpu.atmega328old.upload.maximum_data_size=2048
52
nano.menu.cpu.atmega328old.upload.speed=57600
53

54
nano.menu.cpu.atmega328old.bootloader.low_fuses=0xFF
55
nano.menu.cpu.atmega328old.bootloader.high_fuses=0xDA
56
nano.menu.cpu.atmega328old.bootloader.extended_fuses=0xFD
57
nano.menu.cpu.atmega328old.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex
58

59
nano.menu.cpu.atmega328old.build.mcu=atmega328p
OP #5672778
Lesenswert?

Joachim B. schrieb:
> zuerst fand ich das neue Tempo ja toll, aber als mein wUSB nicht mehr
> ging eher weniger!
> Ergo habe ich bei allen nanos Optiboot auf 57k6 wieder reduziert, was
> nutzt schnell wenn es u.U. anderswo klemmt.

Danke Joachim für den Hinweis !
Du hast also im Bootloader etwas geändert.
Deine 4 möglichen Versionen sind nun unterschiedlich in Size und Speed.

Mit welcher Werkzeugkette hast Du das gemacht?
#5672834
Lesenswert?

Matthias W. schrieb:
> Mit welcher Werkzeugkette hast Du das gemacht?

mit Atmel Studio 4.18

Den Quellcode vom Optiboot genommen, die Baudrate geändert und per ISP 
auf die Nanos gebracht, ggffs noch die fuse geändert Bootsektorgröße, 
mit der Änderung der board.txt kann ich nun auswählen welcher nano oder 
uno bedient werden will, wenns klemmt, keine Verbindung muss ich halt 
kurz probieren wer sich meldet.
Gast #6100123
Lesenswert?

Hi,
ich hab da ein sehr ähnliches Problem, dieses Forum hat mir hier schon 
sehr weiter geholfen, ich hatte ebenfalls das Problem, dass mein Arduino 
Mega2560 nicht geantwortet hat.
Allerdings entwickle ich mein Programm nicht in der Arduino IDE, sondern 
nutze Atmel Studio 7.

Halb Wissender schrieb:
> avrdude -Cavrdude.conf -v -patmega2560 -cwiring -PCOM14 -b115200 -D
> -Uflash:w:default/MyHexFile.hex:i

Dies hat mich soviel weiter gebracht, dass mein PC jetzt mit dem Arduino 
kommunizieren kann, wenn das Programm jedoch starten sollte, passiert 
nichts. Das Programm wird also nicht hochgeladen.

Meine Vermutung ist, dass das irgendwie mit -cwiring zusammenhängt..?

Wäre nett, wenn ihr mir bei diesem Problem weiter helfen könntet!

Das ist die momentane Output-Meldung von AS7:
1
             System wide configuration file is "C:\AVRdude\avrdude.conf"
2

3
             Using Port                    : COM6
4
             Using Programmer              : wiring
5
             Overriding Baud Rate          : 115200
6
             AVR Part                      : ATmega2560
7
             Chip Erase delay              : 9000 us
8
             PAGEL                         : PD7
9
             BS2                           : PA0
10
             RESET disposition             : dedicated
11
             RETRY pulse                   : SCK
12
             serial program mode           : yes
13
             parallel program mode         : yes
14
             Timeout                       : 200
15
             StabDelay                     : 100
16
             CmdexeDelay                   : 25
17
             SyncLoops                     : 32
18
             ByteDelay                     : 0
19
             PollIndex                     : 3
20
             PollValue                     : 0x53
21
             Memory Detail                 :
22

23
                                      Block Poll               Page                       Polled
24
               Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
25
               ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
26
               eeprom        65    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
27
               flash         65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00
28
               lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
29
               hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
30
               efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
31
               lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
32
               calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
33
               signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
34

35
             Programmer Type : Wiring
36
             Description     : Wiring
37
             Programmer Model: AVRISP
38
             Hardware Version: 15
39
             Firmware Version Master : 2.10
40
             Vtarget         : 0.0 V
41
             SCK period      : 0.1 us
42

43
avrdude.exe: AVR device initialized and ready to accept instructions
44

45
Reading | ################################################## | 100% 0.01s
46

47
avrdude.exe: Device signature = 0x1e9801 (probably m2560)
48
avrdude.exe: safemode: lfuse reads as FF
49
avrdude.exe: safemode: hfuse reads as D8
50
avrdude.exe: safemode: efuse reads as FF
51

52
avrdude.exe: safemode: lfuse reads as FF
53
avrdude.exe: safemode: hfuse reads as D8
54
avrdude.exe: safemode: efuse reads as FF
55
avrdude.exe: safemode: Fuses OK (E:FF, H:D8, L:FF)
56

57
avrdude.exe done.  Thank you.
#6101020
Lesenswert?

Nein, das war keine Absicht, allerdings weiß ich nicht wie man den 
deaktiviert,.. bin neu bei AS7.

Hier mal mein Argument für avrdude.exe:

-C"C:\AVRdude\avrdude.conf" -v -patmega2560 -cwiring -PCOM6 -b115200 -D

Versuche ich etwas hochzuladen mit folgendem:

-C"C:\AVRdude\avrdude.conf" -v -patmega2560 -carduino -PCOM6 -b115200

funktioniert das ganze nicht mehr..
Gast #6101057
Lesenswert?

Tobias S. schrieb:
> Wieso?

Erst hijackst du einen fremden Thread, der NICHTS mit deinem Problem zu 
tun hat.

Dann zeigst du einen Aufruf.
Dann Meldungen.
Beides passt nicht zusammen.

Dann 2 bis zur Funktionslosigkeit verstümmelte Aufrufe.
Und dann fragst du "Wieso?"

Das "Wieso" solltest eigentlich du viel besser beantworten können, als 
ich.

Aber ich sehe schon, mit uns beiden wird das wohl nix mehr.
#6101060
Lesenswert?

Was ihr immer mit AVRDUDE etc. habt ...

Ich nutze AS 7 - manchmal AS 4.18 und noch manchmaler Arduino IDE.

Code schreiben, compilieren und ggf. debuggen u/o auf den Chip 
"brennen".

AVRDUDE - schön und sehr nutzbringend, läuft ohne mein Eingreifen :-).

Muss ich die Motorsteuerung kennen, um Auto fahren zu können?
#6101072
Lesenswert?

Okay, tut mir leid, dass ich diesen Beitrag gehijacked habe,... werde es 
wohl auf eigene Faust versuchen, das ganze zum laufen zu bringen.
Ich habe diese Frage nur hier gestellt, da ich ursprünglich das selbe 
Problem hatte wie der Autor dieses Beitrags und mir ein paar Antworten 
weitergeholfen haben und dachte, dass ihr mir da nun ebenfalls helfen 
könnt.

Nur eins noch:

Arduino Fanboy D. schrieb:
> 2 bis zur Funktionslosigkeit verstümmelte Aufrufe.

Ich verstehe ja, was du meinst, allerdings kann ich den Fehler nicht 
beheben...
#6101186
Lesenswert?

Jetzt mal langsam ok.. hatte doch noch ein kleines Problem, das dann 
allerdings glücklicherweise nur n Fehler im Code war.

Um das Problem mit dem Hochladen zu lösen, habe ich lediglich das 
-cwiring vor die file directory meiner hex datei des Programms gestellt:

-patmega2560 -cwiring -P\\.\COM6 -b115200 -D 
-Uflash:w:"$(ProjectDir)Debug\$(TargetName).hex":i

Nun funktioniert das Hochladen einwandfrei.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren