AVR Atmega64-A ISP funktioniert nicht

OP #7310809
Lesenswert?

Hallo,

Ich versuche schon seit einiger zeit den Atmega64-A zu programmieren. Das ist das erste mal das ich eine Mikrocontroller direkt programmieren. Ich nutzte das Blink Sketch von Arduino und einen Arduino UNO als ISP. Ich habe mittlerweile auch einen Attiny85 geholt um zu testen ob ich das Prinzip verstehe, mit dem klappt das ohne Probleme. Der Atmega64-A ist mit einem Labornetzteil bei 5V versorgt, der zeiht zwischen 10mA-11mA. An den Fuses hab ich noch nichts verändert und so wie ich das Datenblatt verstanden habe ist der 1MHz interne Oszillator der Standard.

Die Verkabelung hab ich schon ein par mal neu verdrahtet. MOSI & MISO hab ich schon versucht zu tauschen. Ich habe 3 Chips rumliegen hab 2 schon versucht und auf das Breakoutboard gelötet.

Sollte ich beim nutzen des Internen Oszillators ein Signal an XTAL1 oder XTAL2 messen können?

Und wieso krieg ich keine Verbindung mit dem Chip hin?

Danke schonmal für Antworten :)

Folgend ist die Fehlermeldung die ich in Arduino erhalte:

1
avrdude: Version 6.3-20201216
2
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
3
         Copyright (c) 2007-2014 Joerg Wunsch
4

5
         System wide configuration file is "C:\Users\nutzer\AppData\Local\Arduino15\packages\MegaCore\hardware\avr\2.2.0/avrdude.conf"
6

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

27
                                  Block Poll               Page                       Polled
28
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
29
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
30
           eeprom         4    20    64    0 no       2048    8      0  9000  9000 0xff 0xff
31
           flash         33     6   128    0 yes     65536  256    256  4500  4500 0xff 0xff
32
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
33
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
34
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
35
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
36
           calibration    0     0     0    0 no          4    0      0     0     0 0x00 0x00
37
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
38

39
         Programmer Type : STK500
40
         Description     : Atmel STK500 Version 1.x firmware
41
         Hardware Version: 2
42
         Firmware Version: 1.18
43
         Topcard         : Unknown
44
         Vtarget         : 0.0 V
45
         Varef           : 0.0 V
46
         Oscillator      : Off
47
         SCK period      : 0.1 us
48

49
avrdude: AVR device initialized and ready to accept instructions
50

51
Reading | ################################################## | 100% 0.03s
52

53
avrdude: Device signature = 0x000000 (retrying)
54

55
Reading | ################################################## | 100% 0.02s
56

57
avrdude: Device signature = 0x000000 (retrying)
58

59
Beim Hochladen des Sketches ist ein Fehler aufgetreten
60
Reading | ################################################## | 100% 0.02s
61

62
avrdude: Device signature = 0x000000
63
avrdude: Yikes!  Invalid device signature.
64
         Double check connections and try again, or use -F to override
65
         this check.
66

67

68
avrdude done.  Thank you.
Angehängte Dateien:
Gast #7310834
Lesenswert?

R4 ist zu hochohmig.

Aus dem Datenblatt: "AVCC is the supply voltage pin for Port F and the A/D Converter. It should be externally connected to VCC, even if the ADC is not used. If the ADC is used, it should be connected to VCC through a low-pass filter."

Mit "low-pass filter" meinen die aber nicht ein R/C Glied mit 470 Ohm, sondern eher einen L/C Filter z.B. mit 10µH und 100nF.

OP #7310844
Lesenswert?

Stefan F. schrieb:

R4 ist zu hochohmig. AVCC dient zur Stromversorgung einiger I/O Pins.

Ich habe jetzt R4 rausgeworfen.

EAF schrieb:

Warum ist der zweite GND nicht angeschlossen?

Hab jetzt alle 3 GND angeschlossen.

EAF schrieb:

Fehlende Abblockkondensatoren und lange Strippen sind keine gute Kombination.

Ich weiß das das nicht das Optimalste ist, aber das ich nicht einmal die Device Signature bekommen? Ich will erstmal testen ob ich den Programmieren kann bevor ich mir die (noch unfertige) Platine bestelle.

Jürgen schrieb:

Außerdem sieht der Pin38 ab aus.

Soweit ich weis brauche ich Pin38 nicht zum Programmieren.

Stefan F. schrieb:

Nicht nur der, auch der zweite VCC Pin fehlt im Schaltplan.

Hab den auch jetzt angeschlossen.

Das Hochladen bringt trotzdem den selben Fehler.

#7310851
Lesenswert?

Christoph schrieb:

und einen Arduino UNO als ISP

Da gab es vor kurzem einen ähnlichen "Fall" hier im Forum, allerdings mit einem Arduino Mega 2560 als ISP. Anscheinend muss man, wenn man einen Arduino als ISP benutzt, dessen RESET mit einem Kondensator oder so verhindern, ansonsten bekommt man angeblich genau die Fehlermeldung die du beschreibst. Das ist allerdings Hörensagen, selbst hab ich das nie probiert.

LG, Sebastian

#7310880
Lesenswert?

Christoph schrieb:

EAF schrieb:

Fehlende Abblockkondensatoren und lange Strippen sind keine gute Kombination.

Ich weiß das das nicht das Optimalste ist, aber das ich nicht einmal die Device Signature bekommen? Ich will erstmal testen ob ich den Programmieren kann bevor ich mir die (noch unfertige) Platine bestelle.

Das ist eine Grundvoraussetzung, damit das überhaupt geht.

Also: Du hast folgende VCC/GND Paare: 21/22 52/32 64/63

Jedes einzelne Paar braucht einmal 100n keramisch, und zwar so dicht an die Prozessorpins, wie es irgendwie geht. Jeder mm zählt. Natürlich müssen alle Versorgungspins angeschlossen sein.

Dann einmal 100n zwischen AREF und GND, wo wir schon dabei sind. Reset will einmal 10k gegen VCC haben, 100n gegen GND ist optional.

ISP-Programming braucht zusätzlich: PB1(SCK), PE0(MOSI), PE1 (MISO), RESET, und einen funktionierenden Prozessortakt. Wenn Du die Fuses schon umprogrammiert bekommen hast, nimmst Du am besten einen externen Oszillator wie sowas hier:

https://www.reichelt.de/quarzoszillator-16-00-mhz-oszi-16-000000-p13686.html?&trstct=pol_0&nbc=1

Auch der möchte einmal 100n direkt zwischen seinem VCC und GND haben, und auch hier möglichst dicht an den Pins und nicht 5cm weit weg. Der Ausgang kommt an XTAL1.

Damit solltest Du Kontakt bekommen.

fchk

OP #7310927
Lesenswert?

EAF schrieb:

Der 10µC gehört, wenn, dann, an den Reset des UNO. So stehts in der AdruinoAsISP Anleitung. Und so sollte man es auch halten.

Ich habe jetzt den Kondensator direkt an den UNO geklemmt.

Jürgen schrieb:

24 bis 32 sind zumindest versetzt, beim Rest bräuchte man einen anderen Winkel.

Ich habe die Pins die ich zum Programmieren brauche durchgemessen und habe Pin 2&3 locker gefunden, alle anderen sind sonst in Ordnung. Ich hab sie jetzt festgelötet. Unter dem Mikroskops find ich sonst auch nix.

Ich habe für den Kondensator von Reset zu GND 10µC, 220pF und 10nF Probiert.

Frank K. schrieb:

Wenn Du die Fuses schon umprogrammiert bekommen hast, nimmst Du am besten einen externen Oszillator wie sowas hier:

Leider noch nicht, 16MHz Quartz hab ich schon daliegen.

Hab jetzt die 100nF auf das Breakoutboard gelötet. Reset ist jetzt mit 10K und 100nF(am UNO) angeschlossen.

Gleiche Fehlermeldung wie bisher. Ich habe bei MegaCore den Atmega64 ausgewählt, oder brauche ich extra eine Bibliothek für den Atmega64-A?

Gast #7311021
Lesenswert?

Christoph schrieb:

Ich habe jetzt den Kondensator direkt an den UNO geklemmt.

Nicht nur direkt an den Uno, sondern insbesonders zwischen GND und RESET des Uno, NICHT des Atmega64. Die Idee ist anscheinend, den ansonsten durch avrdude auf dem PC über DTR ausgelösten Hardware-Reset des Uno zu verhindern.

LG, Sebastian

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