Forum: Mikrocontroller und Digitale Elektronik Arduino IDE Atmega328p


von arno (Gast)


Lesenswert?

Hallo zusammen,

ich habe mir mit einem Atmega328p ein eigenes Arduino-Microcontroller 
Board gebaut.
Bei der Programmierung ergeben sich aber leider noch ein paar Probleme.

Ich verwende einen mySmartUSB light Programmer. Ich kann meinen 
Atmega328 mit Luna AVR programmieren. Funktioniert (heißt für mich: 
Programmer und Board sind in Ordnung)

Wenn ich aber mit der Arduino IDE starte und erst den Bootloader brenne 
und anschließend das Programm aufspiele (beides laut IDE erfolgreich) 
läuft immer noch das alte Programm, dass ich mit LunaAVR aufgespielt 
habe.

Hat jemand eine Idee. (Ich musste in der avrdude.conf den Port com1 auf 
com4 setzten, irgendwie hat die Arduino IDE obwohl richtig angezeigt 
nicht erkannt.)

Hat jemand eine Ahnung woran das liegen kann?

Vielen Dank für eure Hilfe.



Ergebnis des Bootloader Uploads:
1
C:\Users\Downloads\arduino-1.8.1-windows_neu\arduino-1.8.1\hardware\tools\avr/bin/avrdude -CC:\Users\Downloads\arduino-1.8.1-windows_neu\arduino-1.8.1\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -cstk500v2 {program.extra_params} -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xd8:m -Ulfuse:w:0xff:m 
2
3
avrdude: Version 6.3, compiled on Dec 16 2016 at 13:33:19
4
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
5
         Copyright (c) 2007-2014 Joerg Wunsch
6
7
         System wide configuration file is "C:\Users\Downloads\arduino-1.8.1-windows_neu\arduino-1.8.1\hardware\tools\avr/etc/avrdude.conf"
8
9
         Using Port                    : com4
10
         Using Programmer              : stk500v2
11
         AVR Part                      : ATmega328P
12
         Chip Erase delay              : 9000 us
13
         PAGEL                         : PD7
14
         BS2                           : PC2
15
         RESET disposition             : dedicated
16
         RETRY pulse                   : SCK
17
         serial program mode           : yes
18
         parallel program mode         : yes
19
         Timeout                       : 200
20
         StabDelay                     : 100
21
         CmdexeDelay                   : 25
22
         SyncLoops                     : 32
23
         ByteDelay                     : 0
24
         PollIndex                     : 3
25
         PollValue                     : 0x53
26
         Memory Detail                 :
27
28
                                  Block Poll               Page                       Polled
29
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
30
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
31
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
32
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
33
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
34
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
35
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
36
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
37
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
38
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
39
40
         Programmer Type : STK500V2
41
         Description     : Atmel STK500 Version 2.x firmware
42
         Programmer Model: STK500
43
         Hardware Version: 3
44
         Firmware Version Master : 2.10
45
         Topcard         : Unknown
46
         Vtarget         : 5.0 V
47
         SCK period      : 17.4 us
48
         Varef           : 0.0 V
49
         Oscillator      : Off
50
51
avrdude: AVR device initialized and ready to accept instructions
52
53
C:\Users\Downloads\arduino-1.8.1-windows_neu\arduino-1.8.1\hardware\tools\avr/bin/avrdude -CC:\Users\Downloads\arduino-1.8.1-windows_neu\arduino-1.8.1\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -cstk500v2 {program.extra_params} -Uflash:w:C:\Users\Downloads\arduino-1.8.1-windows_neu\arduino-1.8.1\hardware\arduino\avr/bootloaders/optiboot/optiboot_atmega328-Mini.hex:i -Ulock:w:0x0F:m 
54
Reading | ################################################## | 100% 0.04s
55
56
avrdude: Device signature = 0x1e950f (probably m328p)
57
58
avrdude done.  Thank you.
59
60
61
avrdude: Version 6.3, compiled on Dec 16 2016 at 13:33:19
62
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
63
         Copyright (c) 2007-2014 Joerg Wunsch
64
65
         System wide configuration file is "C:\Users\Downloads\arduino-1.8.1-windows_neu\arduino-1.8.1\hardware\tools\avr/etc/avrdude.conf"
66
67
         Using Port                    : com4
68
         Using Programmer              : stk500v2
69
         AVR Part                      : ATmega328P
70
         Chip Erase delay              : 9000 us
71
         PAGEL                         : PD7
72
         BS2                           : PC2
73
         RESET disposition             : dedicated
74
         RETRY pulse                   : SCK
75
         serial program mode           : yes
76
         parallel program mode         : yes
77
         Timeout                       : 200
78
         StabDelay                     : 100
79
         CmdexeDelay                   : 25
80
         SyncLoops                     : 32
81
         ByteDelay                     : 0
82
         PollIndex                     : 3
83
         PollValue                     : 0x53
84
         Memory Detail                 :
85
86
                                  Block Poll               Page                       Polled
87
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
88
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
89
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
90
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
91
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
92
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
93
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
94
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
95
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
96
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
97
98
         Programmer Type : STK500V2
99
         Description     : Atmel STK500 Version 2.x firmware
100
         Programmer Model: STK500
101
         Hardware Version: 3
102
         Firmware Version Master : 2.10
103
         Topcard         : Unknown
104
         Vtarget         : 5.0 V
105
         SCK period      : 17.4 us
106
         Varef           : 0.0 V
107
         Oscillator      : Off
108
109
avrdude: AVR device initialized and ready to accept instructions
110
111
Reading | ################################################## | 100% 0.04s
112
113
avrdude: Device signature = 0x1e950f (probably m328p)
114
115
avrdude done.  Thank you.


Ergebnis des Programm Uploads:
1
C:\Users\Downloads\arduino-1.8.1-windows_neu\arduino-1.8.1\hardware\tools\avr/bin/avrdude -CC:\Users\Downloads\arduino-1.8.1-windows_neu\arduino-1.8.1\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -cstk500v2 {program.extra_params} -Uflash:w:C:\Users\AppData\Local\Temp\arduino_build_614535/sketch_feb23a.ino.hex:i 
2
3
avrdude: Version 6.3, compiled on Dec 16 2016 at 13:33:19
4
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
5
         Copyright (c) 2007-2014 Joerg Wunsch
6
7
         System wide configuration file is "C:\Users\Jucker\Downloads\arduino-1.8.1-windows_neu\arduino-1.8.1\hardware\tools\avr/etc/avrdude.conf"
8
9
         Using Port                    : com4
10
         Using Programmer              : stk500v2
11
         AVR Part                      : ATmega328P
12
         Chip Erase delay              : 9000 us
13
         PAGEL                         : PD7
14
         BS2                           : PC2
15
         RESET disposition             : dedicated
16
         RETRY pulse                   : SCK
17
         serial program mode           : yes
18
         parallel program mode         : yes
19
         Timeout                       : 200
20
         StabDelay                     : 100
21
         CmdexeDelay                   : 25
22
         SyncLoops                     : 32
23
         ByteDelay                     : 0
24
         PollIndex                     : 3
25
         PollValue                     : 0x53
26
         Memory Detail                 :
27
28
                                  Block Poll               Page                       Polled
29
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
30
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
31
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
32
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
33
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
34
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
35
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
36
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
37
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
38
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
39
40
         Programmer Type : STK500V2
41
         Description     : Atmel STK500 Version 2.x firmware
42
         Programmer Model: STK500
43
         Hardware Version: 3
44
         Firmware Version Master : 2.10
45
         Topcard         : Unknown
46
         Vtarget         : 5.0 V
47
         SCK period      : 17.4 us
48
         Varef           : 0.0 V
49
         Oscillator      : Off
50
51
avrdude: AVR device initialized and ready to accept instructions
52
53
Reading | ################################################## | 100% 0.04s
54
55
avrdude: Device signature = 0x1e950f (probably m328p)
56
57
avrdude done.  Thank you.

von Hubert G. (hubertg)


Lesenswert?

Der Ablauf ist nicht ganz klar.
Du programmierst mit dem mySmartUSB den Bootloader und setzt die 
entsprechenden Fuses. Dann aus der Arduino IDE heraus das Programm über 
USB und den Bootloader.

von arno (Gast)


Lesenswert?

Hallo,

ganz genau. Ich möchte eigentlich mit der Arduino IDE arbeiten, habe 
aber zum testen auch die Luna AVR.

Also Ablauf ist folgender:

Mit der Arduino IDE den Bootloader brennen und anschließend mit der 
Arduino IDE das Programm hochladen.

Grüße

von Hubert G. (hubertg)


Lesenswert?

Den Bootloader kannst du aber nur mit dem mySmartUSB laden. Dann die 
Fuses entsprechend einstellen.
Erst dann kannst du dein Programm über den Bootloader laden.
Wenn du dann ein Programm über den mySmartUSB ladest, ist dein 
Bootloader wieder weg.

von arno (Gast)


Lesenswert?

Hallo,

Also wenn ich den Bootloader brenne werden die Fuses doch automatisch 
gesetzt. Und mein Programm muss ich doch auf den Atmega328 bekommen, das 
muss ich doch mit dem mySmart Programmer machen. Ich hab ja keinen USB 
Anschluss an meinem Atmega.

von Einer K. (Gast)


Lesenswert?

Dann brauchst du keinen Bootloader!
Wenn du ihn 10 Sekunden später wieder tötest.
Oder?
Macht das Sinn?

Der Bootloader ermöglicht das Programmieren über die Serielle.
Wenn der Bootloader drauf ist, brauchst du keinen " mySmart Programmer" 
mehr.

Stimmt es so, oder habe ich Recht?

von Hubert G. (hubertg)


Lesenswert?

arno schrieb:
> Also wenn ich den Bootloader brenne werden die Fuses doch automatisch
> gesetzt. Und mein Programm muss ich doch auf den Atmega328 bekommen, das
> muss ich doch mit dem mySmart Programmer machen. Ich hab ja keinen USB
> Anschluss an meinem Atmega.

Die Fuses werden nicht automatisch gesetzt, es sei denn du hast es im 
avrdude eingestellt.
Wenn du das Programm mit dem mySmart Programmer überspielst, dann 
brauchst du doch keinen Bootloader.

von Einer K. (Gast)


Lesenswert?

Hubert G. schrieb:
> Die Fuses werden nicht automatisch gesetzt, es sei denn du hast es im
> avrdude eingestellt.

Die Arduino IDE tut das beim "Bootloader brennen".

von arno (Gast)


Lesenswert?

Danke an dieser Stelle für die Informationen.

So wie ich das verstanden habe, braucht der Atmega den Bootloader um das 
Programm auch zu "interpretieren".

Bei jeder Arduino Selbstbau Anleitung wird immer der Bootloader 
geschrieben und dann das Programm hochgeladen. Das passiert ja auch aus 
der Arduino IDE heraus mit "Mit Programmer hochladen", von daher denke 
ich, dass der nicht den Bootloader überschreibt, oder?

Wie hier z.B.

https://www.arduino.cc/en/Tutorial/ArduinoISP

von Einer K. (Gast)


Lesenswert?

arno schrieb:
> So wie ich das verstanden habe, braucht der Atmega den Bootloader um das
> Programm auch zu "interpretieren".
Falsch gedacht!

arno schrieb:
> Das passiert ja auch aus
> der Arduino IDE heraus mit "Mit Programmer hochladen", von daher denke
> ich, dass der nicht den Bootloader überschreibt, oder?
Falsch gedacht!

von arno (Gast)


Lesenswert?

Ok,
dann müsste mein Programm nach dem erfolgreichen Upload ja 
funktionieren, unabhängig davon ob ich jetzt vorher einen Bootloader 
hochgeladen habe oder nicht.
Aber das tut es ja nicht.

von Einer K. (Gast)


Lesenswert?

arno schrieb:
> Aber das tut es ja nicht.

Du schreibst:
> Ergebnis des Programm Uploads:
Und da ist zu lesen:
> avrdude: AVR device initialized and ready to accept instructions
> Reading | ################################################## | 100% 0.04s
> avrdude: Device signature = 0x1e950f (probably m328p)
> avrdude done.  Thank you.

Du hast also nur die Signatur gelesen, nix geschrieben.


Bei dem:
> Ergebnis des Bootloader Uploads:
Passiert genau das gleiche!

Du schreibst nichts.
Darum tuts auch nichts so, wie du dir das vorstellst.

----------


Ich behaupte:
Ab dem  {program.extra_params}(inklusive)  wird alles ignoriert.

von arno (Gast)


Lesenswert?

Hm, ok und was ist mit

C:\Users\Downloads\arduino-1.8.1-windows_neu\arduino-1.8.1\hardware\tool 
s\avr/bin/avrdude 
-CC:\Users\Downloads\arduino-1.8.1-windows_neu\arduino-1.8.1\hardware\to 
ols\avr/etc/avrdude.conf  -v -patmega328p -cstk500v2 
{program.extra_params} 
-Uflash:w:C:\Users\AppData\Local\Temp\arduino_build_614535/sketch_feb23a 
.ino.hex:i

???

Bzw. wenn ich tatsächlich nichts schreibe, woran liegt das dann? Ich 
mache das ganze ja mit der Arduino IDE und die sollte ja wissen was sie 
tut.

von Einer K. (Gast)


Lesenswert?

Sie kennt aber deinen Programmer nicht!

{program.extra_params} zeigt dass das Template nicht 
aufgelöst/ausgefüllt wird.
Deine Programmer Definition wird fehlerhaft sein.

von arno (Gast)


Lesenswert?

Vielen vielen Dank an alle.

Problem gefunden.

In der programmers.txt in der ich den Programmer eingetragen habe hat 
ein "s" gefehlt, es muss dort heißen

"mysmartusb.program.extra_params=-P{serial.port}"

bei params fehlte mir das "s".


Vielen DANK.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.