Forum: Mikrocontroller und Digitale Elektronik ATmega328 lässt sich nicht programmieren


von Christoph (mrbbi)


Angehängte Dateien:

Lesenswert?

Hallo zusammen!

ich beschäftige mich schon seit einigen Jahren immer mal wieder mit den 
Themen Mikrocontroller etc. und setze dabei immer wieder auf die 
Arduino-Plattform. Für ein neues Projekt von mir und weil ich mich an 
den Bereich SMD-Löten rantrauen wollte, habe ich mir eine Platine 
designed und diese fertigen lassen. Die Arbeit soll ein ATmega328P 
verrichten, den ich als TQFP-Package habe. So weit so gut. Da SMD fällt 
dieses Mal dann natürlich das ganze "uC auf dem Breadboard über einen 
Arduino als ISP flashen" weg, weswegen ich die ISP-Pins herausgeführt 
habe. Nun bekomme ich das Ding aber einfach nicht angesprochen. In der 
Konsole sehe ich immer nur "Invalid Device Signature" mit Signaturen, 
die für mich nach falscher Verdrahtung aussehen. Ich benutze die 
MiniCore-Library und einen Arduino als ISP, aber mit einem AVRISP ist es 
das gleiche Bild. Die Platine habe ich nun auch schon 5 Mal nachgelötet 
und durchgemessen, das sieht mir alles okay aus. Daher die Frage: Hab 
ich irgendetwas übersehen? Kann das überhaupt so funktionieren oder war 
ich zu naiv? Ich kann vor dem Flaschen (bzw. "Uploaden") ja auch die 
Clock-Speed einstellen. Hier hatte ich den internen 8MHz-Oszillator 
ausgewählt. Auf dem Board habe ich einen 16-MHz-, aber so weit ich das 
verstanden habe, kommen die vom Band mit dem internen konfiguriert. Ich 
habe im letzten Schritt auch den 16MHz-Quarz wieder abgelötet, ohne 
Veränderung. Vielleicht hat ja jemand eine gute Idee oder sieht, ob in 
der Schaltung schon irgendwas nicht stimmt. Ich bin für jeden Tipp 
dankbar!

Viele Grüße!


//Hier noch der Output von avrdude
1
"C:\Users\chris\AppData\Local\Arduino15\packages\MiniCore\tools\avrdude\7.1-arduino.1/bin/avrdude" "-CC:\Users\chris\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.2.1/avrdude.conf" -v -V -patmega328p -cstk500v1 -PCOM6 -b19200 "-Uflash:w:C:\Users\chris\AppData\Local\Temp\arduino\sketches\052BDB0EFC0DDF785872F2948AAA9BFF/sketch_mar7a.ino.with_bootloader.hex:i"
2
3
avrdude: Version 7.1-arduino.1
4
         Copyright the AVRDUDE authors;
5
         see https://github.com/avrdudes/avrdude/blob/main/AUTHORS
6
7
         System wide configuration file is C:\Users\chris\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.2.1\avrdude.conf
8
9
         Using Port                    : COM6
10
         Using Programmer              : stk500v1
11
         Overriding Baud Rate          : 19200
12
         AVR Part                      : ATmega328P
13
         Chip Erase delay              : 9000 us
14
         PAGEL                         : PD7
15
         BS2                           : PC2
16
         RESET disposition             : possible i/o
17
         RETRY pulse                   : SCK
18
         Serial program mode           : yes
19
         Parallel program mode         : yes
20
         Timeout                       : 200
21
         StabDelay                     : 100
22
         CmdexeDelay                   : 25
23
         SyncLoops                     : 32
24
         PollIndex                     : 3
25
         PollValue                     : 0x53
26
         Memory Detail                 :
27
28
                                           Block Poll               Page                       Polled
29
           Memory Type Alias    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    1      0  4500  4500 0x00 0x00
34
           hfuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
35
           efuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
36
           lock                    0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
37
           signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00
38
           calibration             0     0     0    0 no          1    1      0     0     0 0x00 0x00
39
40
         Programmer Type : STK500
41
         Description     : Atmel STK500 version 1.x firmware
42
         Hardware Version: 2
43
         Firmware Version: 1.18
44
         Topcard         : Unknown
45
         Vtarget         : 0.0 V
46
         Varef           : 0.0 V
47
         Oscillator      : Off
48
         SCK period      : 0.1 us
49
50
avrdude: AVR device initialized and ready to accept instructions
51
avrdude: device signature = 0xffffff (probably .xmega) (retrying)
52
avrdude: device signature = 0xff00ff
53
avrdude main() error: expected signature for ATmega328P is 1E 95 0F
54
        double check chip or use -F to override this check
55
56
avrdude done.  Thank you.
57
58
Failed programming: uploading error: exit status 1

von Crazy Harry (crazy_h)


Lesenswert?

Eiserne Regel von mir für mich: Bei der ersten Programmierung eines 
bisher unbekannten uCs (Atmel Mega xyz), FINGER WEG VON DEN FUSES.
Ich vermute, die hast beim ersten Versuch so verstellt, daß er nicht 
mehr mit dir redet. Externen Takt anschliessen und nochmal versuchen.

[Edit] Was ganz nett kommt, ist ein C vom Reset auf GND (100nF)

: Bearbeitet durch User
von Jim M. (turboj)


Lesenswert?

Christoph schrieb:
> Vtarget         : 0.0 V


Ohne Spannung läuft kein Controller.

von Christoph (mrbbi)


Lesenswert?

Crazy H. schrieb:
> Eiserne Regel von mir für mich: Bei der ersten Programmierung eines
> bisher unbekannten uCs (Atmel Mega xyz), FINGER WEG VON DEN FUSES.
> Ich vermute, die hast beim ersten Versuch so verstellt, daß er nicht
> mehr mit dir redet. Externen Takt anschliessen und nochmal versuchen.
>
> [Edit] Was ganz nett kommt, ist ein C vom Reset auf GND (100nF)

Danke für deine Antwort!
Klar, das kann gut sein, dass ich mir da schon was verhunzt habe. Hatte 
als ich den 16MHz-Quarz noch auf dem Board hatte, auch schon alles 
mögliche probiert, ohne Erfolg...

Super - danke für den Tipp mit dem Kondensator - werde ich in Zukunft 
berücksichtigen!

von Christoph (mrbbi)


Lesenswert?

Jim M. schrieb:
> Christoph schrieb:
>> Vtarget         : 0.0 V
>
>
> Ohne Spannung läuft kein Controller.

Wo kommt der Wert denn überhaupt her? Ist das irgendeine Fuse oder kommt 
das vom uC sebst zurück? +5V liegt liegt auf der Platine auf jeden Fall 
an.

von Ben K. (bkaiser)


Lesenswert?

Die Signatur des IC ist falsch, sagt AVR dude ja. Sicher das es sich um 
einen ATmega328P handelt und nicht um einen ATmega328PB z.B.? Die haben 
eine andere Signatur und dann geht es nicht. Lösung dann: MiniCore 
installieren und den richtigen Chip wählen.

von Crazy Harry (crazy_h)


Lesenswert?

Wollte ich noch anhängen/editieren, aber da war wer schneller .... wenn 
der wirklich Spannung hat und er nicht den DOF (death of fuses) 
gestorben ist, ein Mega328 ist nicht das gleiche wie ein Mega328P, 
zumindest was die Signatur betrifft.

..... schon wieder wer schneller :-D das Alter .... ja den PB gibts auch 
noch.

: Bearbeitet durch User
von Daniel C. (dan1el)


Lesenswert?

Kann es sein, dass der Controller um 180° verdreht aufgelötet wurde?

Der Markierungspunkt vom uC soll laut dem hier Richtung Stecker zeigen, 
wenn ich das richtig deute.
https://www.mikrocontroller.net/attachment/590914/render.png

Nach dem Foto hier befindet sich der Punkt aber genau gegenüber.
https://www.mikrocontroller.net/attachment/590916/IMG_1103.JPG


Ein besseres Foto vom uC wäre cool :)

von Oliver S. (oliverso)


Lesenswert?

Ben K. schrieb:
> Die haben
> eine andere Signatur und dann geht es nicht.

Na ja, bei den "erkannten" Signaturen wird es wohl keine Verwechslung 
sein, sondern tatsächlich kein Signal.

> avrdude: device signature = 0xffffff (probably .xmega) (retrying)
> avrdude: device signature = 0xff00ff

Oliver

von Hmmm (hmmm)


Lesenswert?

Jim M. schrieb:
> Christoph schrieb:
>> Vtarget         : 0.0 V
>
> Ohne Spannung läuft kein Controller.

Das gehört zur Konfiguration des echten STK500 und ist bei ISP 
irrelevant.

von Ben K. (bkaiser)


Lesenswert?

Stimmt, hab ich übersehen. Mmmmh.


Oliver S. schrieb:
> Ben K. schrieb:
>> Die haben
>> eine andere Signatur und dann geht es nicht.
>
> Na ja, bei den "erkannten" Signaturen wird es wohl keine Verwechslung
> sein, sondern tatsächlich kein Signal.
>
>> avrdude: device signature = 0xffffff (probably .xmega) (retrying)
>> avrdude: device signature = 0xff00ff
>
> Oliver

von Sebastian R. (sebastian_r569)


Lesenswert?

Hmmm schrieb:
> Das gehört zur Konfiguration des echten STK500 und ist bei ISP
> irrelevant.

Aber wird bei ISP nicht auch die Betriebsspannung gemessen, damit die in 
einem Bereich liegt, in dem der Flash beschrieben werden kann?

von Christoph (mrbbi)


Angehängte Dateien:

Lesenswert?

Ben K. schrieb:
> Die Signatur des IC ist falsch, sagt AVR dude ja. Sicher das es sich um
> einen ATmega328P handelt und nicht um einen ATmega328PB z.B.? Die haben
> eine andere Signatur und dann geht es nicht. Lösung dann: MiniCore
> installieren und den richtigen Chip wählen.

Crazy H. schrieb:
> Wollte ich noch anhängen/editieren, aber da war wer schneller ....
> wenn
> der wirklich Spannung hat und er nicht den DOF (death of fuses)
> gestorben ist, ein Mega328 ist nicht das gleiche wie ein Mega328P,
> zumindest was die Signatur betrifft.

Habe mal Fotos von den Megas gemacht, die ich vom Chinesen bekommen 
habe. Das ist ein 328PU-TH (?)... Habe aber auch noch 2 andere P-AU im 
Schrank. Könnte es wirklich daran liegen? Die MiniCore Library bietet 
mir die Optionen 328P/328PA, 328/328A und 328PB. Mit keiner klappts, hab 
die schon durchprobiert.

von Christoph (mrbbi)


Lesenswert?

Daniel C. schrieb:
> Kann es sein, dass der Controller um 180° verdreht aufgelötet wurde?
>
> Der Markierungspunkt vom uC soll laut dem hier Richtung Stecker zeigen,
> wenn ich das richtig deute.
> https://www.mikrocontroller.net/attachment/590914/render.png
>
> Nach dem Foto hier befindet sich der Punkt aber genau gegenüber.
> https://www.mikrocontroller.net/attachment/590916/IMG_1103.JPG
>
>
> Ein besseres Foto vom uC wäre cool :)

Den Punkt soll Orientierung für den ISP-Stecker sein, nicht für den uC 
;) Orientierung passt.

von H. H. (Gast)


Lesenswert?

Christoph schrieb:
> Habe mal Fotos von den Megas gemacht, die ich vom Chinesen bekommen
> habe.

Du hast dir Fälschungen andrehen lassen.

von Crazy Harry (crazy_h)


Lesenswert?

H. H. schrieb:
> Christoph schrieb:
>> Habe mal Fotos von den Megas gemacht, die ich vom Chinesen bekommen
>> habe.
>
> Du hast dir Fälschungen andrehen lassen.

Ja schaut so aus, der U-TH wird auch als QFN verkauft und das kann nicht 
sein, daß es die gleiche Bezeichnung für unterschiedliche Gehäuse gibt.

https://forum.allaboutcircuits.com/threads/what-is-atmega328p-u-th.189896/

von Veit D. (devil-elec)


Lesenswert?

Hallo,

messe mal bitte direkt an den Controllerpins, nicht Pad sondern Pin, 
ohne Programmieradapter nach ob die 5V anliegen. Denn wenn Vtarget 0V 
meldet geht es nicht weiter. Was hast du für einen Programmieradapter? 
Ein Programmieradapter dient in der Regel nicht dafür den Controller zu 
versorgen.
Mit meinem avrISPmkII mache ich für einen ersten Verbindungstest nur
avrdude -c avrispmkII -p m328p -v
Wenn alles okay ist wird Signatur und Vtarget angezeigt.

von H. H. (Gast)


Lesenswert?

Crazy H. schrieb:

> Ja schaut so aus, der U-TH wird auch als QFN verkauft und das kann nicht
> sein, daß es die gleiche Bezeichnung für unterschiedliche Gehäuse gibt.
>
> https://forum.allaboutcircuits.com/threads/what-is-atmega328p-u-th.189896/

Das allerdings ist Unsinn.

https://www.richis-lab.de/uC01.htm

von Christoph (mrbbi)


Lesenswert?

H. H. schrieb:
> Christoph schrieb:
>> Habe mal Fotos von den Megas gemacht, die ich vom Chinesen bekommen
>> habe.
>
> Du hast dir Fälschungen andrehen lassen.

Crazy H. schrieb:
> H. H. schrieb:
>> Christoph schrieb:
>>> Habe mal Fotos von den Megas gemacht, die ich vom Chinesen bekommen
>>> habe.
>>
>> Du hast dir Fälschungen andrehen lassen.
>
> Ja schaut so aus, der U-TH wird auch als QFN verkauft und das kann nicht
> sein, daß es die gleiche Bezeichnung für unterschiedliche Gehäuse gibt.
>
> https://forum.allaboutcircuits.com/threads/what-is-atmega328p-u-th.189896/

Oh verdammt... Gute Hinweise! Vielen Dank schon mal! Hatte da schon ein 
paar mal was drüber gelesen. Sind das dann wohl nachgemachte oder 
einfach nur "leere" Chips?
Da hier noch keiner aufgeschrien hat, dass meine Schaltung kompletter 
Murks ist, gehe ich mal davon aus, dass das eigentlich funktionieren 
sollte...?
Dann würde ich das Ding mal rauslöten und ersetzen. Sehen die P-AU denn 
legitim aus?
Gibt es noch andere Indikatoren als zu prüfen, welche Bezeichnungs- und 
Package-Kombination passen?

von Crazy Harry (crazy_h)


Lesenswert?

H. H. schrieb:
> Crazy H. schrieb:
>
>> Ja schaut so aus, der U-TH wird auch als QFN verkauft und das kann nicht
>> sein, daß es die gleiche Bezeichnung für unterschiedliche Gehäuse gibt.
>>
>> https://forum.allaboutcircuits.com/threads/what-is-atmega328p-u-th.189896/
>
> Das allerdings ist Unsinn.
>
> https://www.richis-lab.de/uC01.htm

Da der bei Richard von einem Arduino stammt, ist dessen genaue Herkunft 
auch ungeklärt. Außerdem findet sich das Marking in keinem der 
Dateblätter 328/328P/328PB

von Gerald B. (gerald_b)


Lesenswert?

Bevor ich TQFPs in die Zielschaltung einlöte, kommen die in einen 
Yamaichi Programmiersockel mit einem USBasp als Programmierer.
Keine Ahnung, ob der Sockel original ist, aber er tut sein Ding.
Als Software verwende ich eXtremeburner. eXtremeburner mault zwar eine 
falsche ID an, kann man aber wegklicken, was ein nicht zu 
unterschätzender Vorteil ist.
Bei Erstprogrammierung ist es ratsam, das Kommunikationstempo 
runterzusetzen, sonst stellen die die Atinnys und Atmegas auch gerne mal 
tot.
Ich löte die Dinger schon fertig geflasht in die Zielschaltung. Den ISP 
Anschluß nutze ich dann nur noch für Softwareupdates. Ich habe aus 
ersten Problemen von 328ern im DIL gehäuse gelernt, wo ich mal eine 
kalte Löstelle am Quarz hatte und mir nen Wolf gesucht habe, weil das 
Ding partout nicht mit mir reden wollte ;-)

von Crazy Harry (crazy_h)


Lesenswert?


: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Ich sehe keine GND-Verbindungen.
Wird denn der USB-Chip erkannt?

von Crazy Harry (crazy_h)


Angehängte Dateien:

Lesenswert?

Christoph schrieb:
> Sehen die P-AU denn
> legitim aus?

Den gibts tatsächlich auch laut DB

von H. H. (Gast)


Lesenswert?

Crazy H. schrieb:
> Da der bei Richard von einem Arduino stammt, ist dessen genaue Herkunft
> auch ungeklärt.

Das Die ist unzweifelhaft ein Original.

von Christoph (mrbbi)


Lesenswert?

Veit D. schrieb:
> Hallo,
>
> messe mal bitte direkt an den Controllerpins, nicht Pad sondern Pin,
> ohne Programmieradapter nach ob die 5V anliegen. Denn wenn Vtarget 0V
> meldet geht es nicht weiter. Was hast du für einen Programmieradapter?
> Ein Programmieradapter dient in der Regel nicht dafür den Controller zu
> versorgen.
> Mit meinem avrISPmkII mache ich für einen ersten Verbindungstest nur
> avrdude -c avrispmkII -p m328p -v
> Wenn alles okay ist wird Signatur und Vtarget angezeigt.

Danke für deine Antwort! Messe heute Abend noch einmal nach. Hatte 
bisher aber immer schon direkt an den Pins gemessen. Ich benutze ich 
einen Arduino UNO als ISP, habe aber auch einen MKII Nachbau, dann nur 
mit externen 5V.

von Sebastian W. (wangnick)


Lesenswert?

Crazy H. schrieb:
> Externen Takt anschliessen und nochmal versuchen.

Schon probiert?

LG, Sebastian

von Christoph (mrbbi)


Lesenswert?

Peter D. schrieb:
> Ich sehe keine GND-Verbindungen.
> Wird denn der USB-Chip erkannt?

Ja, USB wird erkannt. GND ist auf der Rückseite, da gehen die Vias hin.

von Crazy Harry (crazy_h)


Lesenswert?

Für die ganzen Negativbewerter hab ich jetzt extra das letzte verfügbare 
DB vom Hersteller runter geladen .... es gibt diese Chipbezeichnung 
NICHT.

von Hmmm (hmmm)


Lesenswert?

Sebastian R. schrieb:
> Aber wird bei ISP nicht auch die Betriebsspannung gemessen, damit die in
> einem Bereich liegt, in dem der Flash beschrieben werden kann?

Laut AVR068 (beschreibt das STK500v2-Protokoll) wird Vtarget 
ausschliesslich vom STK500 (also nicht vom AVRISP) unterstützt, um die 
Ausgangsspannung einzustellen.

Der AVRISP kann zwar theoretisch die Spannung messen (ADC7 hängt über 
einen Spannungsteiler an VCC), scheint das aber nur zu nutzen, um HVSP 
zu verweigern, wenn die Target-Spannung nicht zwischen 4.5V und 5.5V 
liegt.

Anders sieht's beim AVRISP mkII (mit USB-Interface) aus, da ist Vtarget 
read-only und dürfte die gemessene Spannung liefern.

von Christoph (mrbbi)


Lesenswert?

Sebastian W. schrieb:
> Crazy H. schrieb:
>> Externen Takt anschliessen und nochmal versuchen.
>
> Schon probiert?
>
> LG, Sebastian

Jau - mit und ohne externen Quarz dasselbe Bild.

von Sebastian W. (wangnick)


Lesenswert?

Christoph schrieb:
> Jau - mit und ohne externen Quarz dasselbe Bild.

Nein, externen Takt, nicht externen Quarz!

LG, Sebastian

Beitrag #7365994 wurde vom Autor gelöscht.
von Christoph (mrbbi)


Lesenswert?

Sebastian W. schrieb:
> Christoph schrieb:
>> Jau - mit und ohne externen Quarz dasselbe Bild.
>
> Nein, externen Takt, nicht externen Quarz!
>
> LG, Sebastian

Sorry - mein Fehler. Habe leider keinen Taktgenerator zur Hand. Werde 
ich mir wohl aber mal zulegen.

von Cristi P. (nico_2010)


Lesenswert?

Hi, you've got fake chip! Check original marking vs your chip marking.

von Stefan F. (Gast)


Lesenswert?

Probiere mal

avrdude.exe -v -V -patmega328p -cstk500v1 -PCOM6 -b19200 -B20

(ohne Hex Datei) Der Parameter -B20 ist bei jungfräulichen AVR nötig, 
die mit den initialen 1 MHz getaktet werden. Siehe dazu auch:

http://stefanfrings.de/isp_programmieradapter/index.html
http://stefanfrings.de/avr_verfused/index.html

von Christoph (mrbbi)


Lesenswert?

Stefan F. schrieb:
> Probiere mal
>
> avrdude.exe -v -V -patmega328p -cstk500v1 -PCOM6 -b19200 -B20
>
> (ohne Hex Datei) Der Parameter -B20 ist bei jungfräulichen AVR nötig,
> die mit den initialen 1 MHz getaktet werden. Siehe dazu auch:
>
> http://stefanfrings.de/isp_programmieradapter/index.html
> http://stefanfrings.de/avr_verfused/index.html

Leider derselbe Fehler...
1
"C:\Users\chris\AppData\Local\Arduino15\packages\MiniCore\tools\avrdude\7.1-arduino.1/bin/avrdude" -v -V -patmega328p -cstk500v1 -PCOM6 -b19200 -B20
2
3
avrdude: Version 7.1-arduino.1
4
         Copyright the AVRDUDE authors;
5
         see https://github.com/avrdudes/avrdude/blob/main/AUTHORS
6
7
         System wide configuration file is C:\Users\chris\AppData\Local\Arduino15\packages\MiniCore\tools\avrdude\7.1-arduino.1\etc\avrdude.conf
8
9
         Using Port                    : COM6
10
         Using Programmer              : stk500v1
11
         Overriding Baud Rate          : 19200
12
         Setting bit clk period        : 20.0
13
         AVR Part                      : ATmega328P
14
         Chip Erase delay              : 9000 us
15
         PAGEL                         : PD7
16
         BS2                           : PC2
17
         RESET disposition             : possible i/o
18
         RETRY pulse                   : SCK
19
         Serial program mode           : yes
20
         Parallel program mode         : yes
21
         Timeout                       : 200
22
         StabDelay                     : 100
23
         CmdexeDelay                   : 25
24
         SyncLoops                     : 32
25
         PollIndex                     : 3
26
         PollValue                     : 0x53
27
         Memory Detail                 :
28
29
                                           Block Poll               Page                       Polled
30
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
31
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
32
           eeprom                 65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
33
           flash                  65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
34
           lfuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
35
           hfuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
36
           efuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
37
           lock                    0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
38
           signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00
39
           calibration             0     0     0    0 no          1    1      0     0     0 0x00 0x00
40
41
         Programmer Type : STK500
42
         Description     : Atmel STK500 version 1.x firmware
43
         Hardware Version: 2
44
         Firmware Version: 1.18
45
         Topcard         : Unknown
46
         Vtarget         : 0.0 V
47
         Varef           : 0.0 V
48
         Oscillator      : Off
49
         SCK period      : 0.1 us
50
51
avrdude: AVR device initialized and ready to accept instructions
52
avrdude: device signature = 0x00ffe0
53
avrdude main() error: expected signature for ATmega328P is 1E 95 0F
54
        double check chip or use -F to override this check
55
56
avrdude done.  Thank you.

von Reinhard R. (reirawb)


Lesenswert?

Crazy H. schrieb:
> Hier ist noch was .... gleicher uC nicht programmierbar
> 
https://forum.allaboutcircuits.com/threads/problem-flashing-atmega328p-u-th-mcu.178853/
>
> und Beitrag "ATMEGA 328PU-TH Fälschung"
Man sollte aber auch den letzten Beitrag vom OP in dem genannten Thread 
lesen:

Beitrag "Re: ATMEGA 328PU-TH Fälschung"

also keine Fälschung.

Reinhard

von Stefan F. (Gast)


Lesenswert?

Christoph schrieb:
> SCK period      : 0.1 us

Ich hoffe, diese Angabe stimmt nicht, denn das wären 10 Mhz. Dafür 
bräjcze man ein Target, das mit mindestens 40 MHz getaktet wird. So 
schnelle AVR gibt es gar nicht (glaube ich).

Probiere mal -cstk500v2 (nicht v1) und -B20

von Christoph (mrbbi)



Lesenswert?

So...
Ich habe jetzt einfach mal eine weitere Platine bestückt - diesmal nur 
mit uC, Reset-Pullup und ISP-Header. Dafür habe ich auch die "anderen" 
Megas benutzt, die ich noch hatte *. Leider hat das alles gar nichts 
gebracht. Selber Fehler, krumme Signatur, nichts funktioniert. 
Spaßeshalber mal das Atmel Studio installiert und mit dem MKII noch mal 
probiert. Direkt eine Target Voltage von 0V, Kommunikation mit dem uC 
geht auch nicht (s. Screenshot).
Irgendwas scheint also gewaltig nicht zu stimmen. Entweder ich habe 
zufällig 2 kaputte China-uCs von 2 unterschiedlichen Händlern oder in 
meiner Schaltung ist irgendwas kaputt oder es ist ein Layer 8 Problem...

Habt ihr Ideen, was das sonst vllt noch sein könnte? Passt meine 
Platine/Schaltung wirklich so?

* die hier: 
https://www.mikrocontroller.net/attachment/590923/IMG_1112.JPG

von Stefan F. (Gast)


Lesenswert?

Christoph schrieb:
> und mit dem MKII noch mal
> probiert. Direkt eine Target Voltage von 0V

Der Atmel ISP mkII muss von der Zielschaltung mit Spannung versorgt 
werden. Und wenn VCC anliegt, dann zeigt er sie auch korrekt an.

Stefan F. schrieb:
> Dafür bräjcze man ein Target, das mit mindestens 40 MHz getaktet wird.

Korrektur: bräuchte

von Crazy Harry (crazy_h)


Lesenswert?

Du hast in deinem Schaltplan nur einen GND, was ist mit Pin 5 und 21? 
Ebenso gibts 2 VCC (+AVCC).
Der PB hat nur einen VCC und 2x GND.

von Christoph (mrbbi)


Lesenswert?

Stefan F. schrieb:
> Christoph schrieb:
>> SCK period      : 0.1 us
>
> Ich hoffe, diese Angabe stimmt nicht, denn das wären 10 Mhz. Dafür
> bräjcze man ein Target, das mit mindestens 40 MHz getaktet wird. So
> schnelle AVR gibt es gar nicht (glaube ich).
>
> Probiere mal -cstk500v2 (nicht v1) und -B20

Damit bekomme ich einen Timeout...
1
"C:\Users\chris\AppData\Local\Arduino15\packages\MiniCore\tools\avrdude\7.1-arduino.1/bin/avrdude" -v -V -patmega328p -cstk500v2 -PCOM6 -b19200 -B20
2
3
avrdude: Version 7.1-arduino.1
4
         Copyright the AVRDUDE authors;
5
         see https://github.com/avrdudes/avrdude/blob/main/AUTHORS
6
7
         System wide configuration file is C:\Users\chris\AppData\Local\Arduino15\packages\MiniCore\tools\avrdude\7.1-arduino.1\etc\avrdude.conf
8
9
         Using Port                    : COM6
10
         Using Programmer              : stk500v2
11
         Overriding Baud Rate          : 19200
12
         Setting bit clk period        : 20.0
13
avrdude stk500v2_recv() error: timeout
14
avrdude stk500v2_recv() error: timeout
15
avrdude stk500v2_recv() error: timeout
16
avrdude stk500v2_recv() error: timeout
17
avrdude stk500v2_recv() error: timeout
18
avrdude stk500v2_recv() error: timeout
19
avrdude stk500v2_getsync() error: timeout communicating with programmer

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

Christoph schrieb:
> Irgendwas scheint also gewaltig nicht zu stimmen.

Du musst alle GND Pins anschließen: 3, 5, 21

Dir fehlt auch ein VCC Pin: 4, 18, 18

von Christoph (mrbbi)


Lesenswert?

Stefan F. schrieb:
> Christoph schrieb:
>> Irgendwas scheint also gewaltig nicht zu stimmen.
>
> Du musst alle GND Pins anschließen: 3, 5, 21
>
> Dir fehlt auch ein VCC Pin: 4, 18, 18

Crazy H. schrieb:
> Du hast in deinem Schaltplan nur einen GND, was ist mit Pin 5 und 21?

Ist in dem KiCad-Symbol zusammengelegt. Auf der Platine sind 3, 5 und 21 
an GND.

Crazy H. schrieb:
> Du hast in deinem Schaltplan nur einen GND, was ist mit Pin 5 und 21?
> Ebenso gibts 2 VCC (+AVCC).
> Der PB hat nur einen VCC und 2x GND.

4, 6, 18 liegen an +5V. AREF ist hier irrelevant, richtig?

: Bearbeitet durch User
Beitrag #7366146 wurde von einem Moderator gelöscht.
von Christoph (mrbbi)


Lesenswert?

Stefan F. schrieb im Beitrag #7366146:
> Pin 18 ist im Layout nur mit dem ISP Stecker verbunden, aber nicht mit
> der 5V Versorgung. Deswegen zeigt dein Atmel ISP mkII korrekt Null Volt
> an

Ja genau - beim ISP geht der nach hinten durch und von dort durch das 
Via unterm Mega an die anderen Pins.

von Stefan F. (Gast)


Lesenswert?

Christoph schrieb:
> Ist in dem KiCad-Symbol zusammengelegt

Blöde Idee. Hast du dir das ausgedacht?

Wie viel Volt hast du wirklich am VCC/GND am ISP Stecker? Wenn dein 
Atmel ISP mkII 0.0 anzeigt, dann wird das wohl stimmen, oder er ist 
defekt.

Christoph schrieb:
> beim ISP geht der nach hinten durch

Das hatte ich übersehen. Habe meinen Beitrag daher inzwischen wieder 
gelöscht.

von Stefan F. (Gast)


Lesenswert?

Ich sehe noch etwas, was aber wohl auch gerade nicht die akute 
Problemursache ist:

An jedes VCC/GND Pärchen gehört ein eigener Abblock-Kondensator. Und 
zwar ganz nahe an das IC. Vor allem auf Seite des ISP Steckers vermisse 
ich ihn.

Darf ich davon ausgehen, dass die ganzen GND Pins über eine unsichtbare 
Plane miteinander verbunden sind?

Messe doch mal (ohne angesteckten Programmieradapter) die Spannung an 
VCC/GND und Reset/GND am ISP Anschluss. Das muss beides 5V sein.

von Christoph (mrbbi)


Lesenswert?

Sorry für die "späten" Antworten, ich darf mit dem frischen Account noch 
nicht spammen ;-)

Stefan F. schrieb:
> Christoph schrieb:
>> Ist in dem KiCad-Symbol zusammengelegt
>
> Blöde Idee. Hast du dir das ausgedacht?
>
> Wie viel Volt hast du wirklich am VCC/GND am ISP Stecker? Wenn dein
> Atmel ISP mkII 0.0 anzeigt, dann wird das wohl stimmen, oder er ist
> defekt.
>
> Christoph schrieb:
>> beim ISP geht der nach hinten durch
>
> Das hatte ich übersehen. Habe meinen Beitrag daher inzwischen wieder
> gelöscht.

Nein, das Symbol hab ich nicht selbst gebastelt.

Multimeter sagt 4,95V zwischen VCC und GND und auch zwischen RST und 
GND, beides ohne MKII.

Ich hab jetzt den MKII an den ISP gehängt, VCC und Masse zusätzlich noch 
an einen Arduino, den ich hier rumfliegen hab zur Spannungsversorgung. 
So ganz grundsätzlich passt das, richtig?

Trotzdem 0V... Ist "nur" ein Klon, den hatte ich vorgestern für 35€ 
geschossen, aber wird im Studio erkannt.

Stefan F. schrieb:
> Ich sehe noch etwas, was aber wohl auch gerade nicht die akute
> Problemursache ist:
>
> An jedes VCC/GND Pärchen gehört ein eigener Abblock-Kondensator. Und
> zwar ganz nahe an das IC. Vor allem auf Seite des ISP Steckers vermisse
> ich ihn.
>
> Darf ich davon ausgehen, dass die ganzen GND Pins über eine unsichtbare
> Plane miteinander verbunden sind?
>
> Messe doch mal (ohne angesteckten Programmieradapter) die Spannung an
> VCC/GND und Reset/GND am ISP Anschluss. Das muss beides 5V sein.

Okay, guter Punkt. Danke dir! Würde schätzen, dass es trotzdem erstmal 
funktionieren sollte...? Und ja, richtig, GND liegt auf der Rückseite.

von Uwe B. (uwebre)


Lesenswert?

Christoph schrieb:
> weg, weswegen ich die ISP-Pins herausgeführt
> habe. Nun bekomme ich das Ding aber einfach nicht angesprochen. In der
> Konsole sehe ich immer nur "Invalid Device Signature" mit Signaturen,
> die für mich nach falscher Verdrahtung aussehen.

Zieh mal den SS-Pin (PB2) über einen Widerstand hoch. Möglicherweise ist 
der Controller bei unbeschaltetem SS-Pin im Slave Modus. Im Programm 
dann den Pullup einschalten.

Uwe

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Christoph schrieb:
> Ist "nur" ein Klon

Ich würde es eher als schlechte Fälschung bezeichnen. Wenn es ein 
nachgebauter Atmel ISP mkII wäre, würde er die Spannung korrekt 
anzeigen.

> für 35€

Wow, soviel habe ich für das Original bezahlt.

Also: Versorgung liegt an allen Pins (auch am Programmieradapter) an. 
Reset wird per Pull-Up auf HIGH gezogen und ist mit dem ISP Stecker 
verbunden. Zumindest ein Abblock-Kondensator ist vorhanden. Damit sind 
alle Voraussetzungen erfüllt, die mir einfallen.

von Uwe K. (ukhl)


Lesenswert?

Ist der ISP Stecker richtig herum aufgesteckt?

von Hmmm (hmmm)


Lesenswert?

Christoph schrieb:
> Ich hab jetzt den MKII an den ISP gehängt

Welche Meldungen kommen damit denn genau? STK500v1 und COMx passt nicht 
zum AVRISP mkII, das muss noch ein anderer gewesen sein.

von Sebastian W. (wangnick)


Lesenswert?

Christoph schrieb:
> Sorry - mein Fehler. Habe leider keinen Taktgenerator zur Hand.

Jeder Arduino kann einen 1MHz Takt über PWM erzeugen.

LG, Sebastian

von Uwe K. (ukhl)


Lesenswert?

Uwe K. schrieb:
> Ist der ISP Stecker richtig herum aufgesteckt?

Na großartig, ein Negativer Klick. Manchmal ist es so banal!

Wenn die Masse nicht verbunden ist, kann es auch zu dem Phänomen kommen.

Oder der Tackt ist zu hoch.

von M. K. (sylaina)


Lesenswert?

Stefan F. schrieb:
> Wow, soviel habe ich für das Original bezahlt.

Vor wieviel Jahren? ;)

Zum Thema:

Ist denn der ISP-Stecker auch richtig rum drin? Einfach mal versuchen 
die Versorgungsspannung zu messen, das muss auf jeden Fall gehen, auch 
wenn gar kein µC verbaut wurde.

: Bearbeitet durch User
von Reinhard R. (reirawb)


Angehängte Dateien:

Lesenswert?

Hallo Christoph,

es klemmt scheinbar an der nicht vorhandenen/gemessenen 
Betriebsspannung. Versuch doch mal folgendes:

Direkt am ISP-Stecker des Programmieradapters nur die Spannung anlegen 
und im AVR-Studio zu messen, siehe Bilder. In dem Fenster irgendeinen 
Prozessor eintragen und die beiden Buttons in der Reihenfolge betätigen. 
Wenn dein MKII dort nichts anzeigt, scheint er nicht richtig kompatibel 
zu sein, mein Beispiel funktioniert mit einem JTAGICE3, was anderes habe 
ich nicht.

Meine Erfahrungen dazu: Früher hatte ich einen Eigenbau-Programmierklon 
hier aus dem Forum. Der funktionierte mit AVR-Studio V4.X ohne 
Spannungsmessung. Dann konnte ich recht günstig hier im Markt den 
JTAGICE3 bekommen. Habe nun auch Studio 7 imnstalliert und es 
funktionierte ... nichts. Ich hatte in meinen bisherigen Projekten an 
dem ISP-Stecker den Vcc-Anschluß nie belegt, war ja bisher nicht nötig. 
Nachdem ich das nachgeholt hatte, funktionierte die Programmierung auch.

Meine Vorschläge, wenn das mit der Spannungsmessung nicht funktioniert:

 - Anderer Programmieradapter, möglichst ein Original
 - Mal mit AVR-Studio V4.x versuchen

Reinhard

von Steve van de Grens (roehrmond)


Lesenswert?

M. K. schrieb:
> Vor wieviel Jahren?

Viele, ich bin alt.

von Reinhard R. (reirawb)


Lesenswert?

Steve van de Grens schrieb:
> Viele, ich bin alt.

Merke: Du bist alt, wenn du nichts Neues mehr anfängst.

Also, immer am Ball bleiben und neue Ideen verwirklichen, dann wird das 
schon...

Reinhard

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.