AVR reagiert nicht

OP #5852076
Lesenswert?

Hallo,

ich habe letzten ein Programm auf meinen Atmega324PA geladen und wollte 
dann ein verbessertes Programm hochladen wobei mir dann angezeigt wurde 
das der AVR nicht antwortet. Daraufhin hab ich versucht die Fuses zu 
lesen aber er antwortet nicht.
Die Verkabbelung hab ich schon überprüft und auch ein 10 MHz Oscillator 
angeschlossen aber er antwortet nicht

Die Fuses die ich als letztes eingestellt hatte
Fuses L:0xEE H:0xD9 E:FD

Hat jemand eine Idee voran es liegen könnte?
Angehängte Dateien:
Gast #5852135
Lesenswert?

Konntest durch Tausch feststellen, ob der Defekt beim µC oder beim 
programmieradapter liegt? Eventuell ist auch ganz simpel dein Flackabel 
kaputt.

Du könntest LED's (oder einen Logic Analysator) an die Signal-Leitungen 
anschließen, um zu sehen, weche Seite sich tot stellt.
1
            1kΩ     LED
2
 /Reset o---[===]---|<|---o VCC
3

4
 MISO, MOSI und SCK: o---[===]---|>|---| GND
OP #5852168
Lesenswert?

Also ich hab den Atmega324PA durch ein Atmega1284P getauscht beim ersten 
hochladen des Programms hat es funktioniert und das Programm auch aber 
beim zweiten hochladen des Programms bekam ich ein Verifizierungsfehler 
an der Adresse 0x00 sollte 0x00 stehen, steht aber 0xCA, danach 
funktionierte er auch nicht mehr.

Als Takt benutze ich einen 16MHz Quarz.
Den ISP- Takt hab ich schon verändert zu 500hz, 4 khz , 32 khz, 1,5 MHz

Das mit den LED's werde ich jetzt ausprobieren
Gast #5852177
Lesenswert?

Es kommt gelegentlich vor, dass ein fehlerhaftes programm den µC so sehr 
zum Blockieren bringt, dass die ISP Schnitsttelle ausfällt. Dies kannst 
du verhindern, indem du den Rest-Pin fest mit GND verbindest und erst 
dann die Stromversorgung einschaltest.

Hast du eventuell den Abblock-Kondensator am Mikrocontroller vergessen?

> Also die Led's flackern alle bei 500hz ISP-Takt.

Dann kommunizieren sie miteinander. Spreche den mal mit "avrdude -v -v" 
an und poste die ganze Ausgabe.

> Bei der RESET Leitung ist die Led dunkler

Das ist komisch. Wird sie heller, wenn du Reset fest mit GND verbindest?
Gast #5852212
Lesenswert?

Leon W. schrieb:
> Muss ich die Reset Leitung dann wieder von GND trennen nachdem ich die
> Versorgungsspannung wieder angeschlossen habe oder an GND dran lassen?

Die ganze Zeit dran lassen, denn so verhinderst du, dass das eventuell 
störende Programm startet. Die ISP Schnittstelle ist aktiv, solange 
Reset auf LOW steht.

Nach dem Flashen musst du Reset natürlich wieder aufh HIGH gehen lassen, 
damit dein Programm starten kann.

Leon W. schrieb:
> Wenn ich RESET dauerhaft mit GND verbinde dann bleibt die LED hell

Vielleicht wird sie von deinem Programmieradapter nicht weit genug 
herunter gezogen. Das würde man auf einem Oszilloskop schön sehen. Hängt 
da noch etwas anderes dran? Eventuell ein zu niederohmiger Pull-Up 
Widerstand?
OP #5852267
Lesenswert?

Das ist das was avrdude mir ausgibt:
1
avrdude -pm1284p -cusbasp -v -v -B2000
2

3
avrdude: Version 6.3, compiled on Feb 17 2016 at 09:25:53
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:\WinAVR-20100110\bin\avrdude.conf"
8

9
         Using Port                    : usb
10
         Using Programmer              : usbasp
11
         Setting bit clk period        : 2000.0
12
avrdude: seen device from vendor ->www.fischl.de<-
13
avrdude: seen product ->USBasp<-
14
         AVR Part                      : ATmega1284P
15
         Chip Erase delay              : 55000 us
16
         PAGEL                         : PD7
17
         BS2                           : PA0
18
         RESET disposition             : dedicated
19
         RETRY pulse                   : SCK
20
         serial program mode           : yes
21
         parallel program mode         : yes
22
         Timeout                       : 200
23
         StabDelay                     : 100
24
         CmdexeDelay                   : 25
25
         SyncLoops                     : 32
26
         ByteDelay                     : 0
27
         PollIndex                     : 3
28
         PollValue                     : 0x53
29
         Memory Detail                 :
30

31
                                  Block Poll               Page                       Polled
32
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
33
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
34
           eeprom        65    10   128    0 no       4096    8      0  9000  9000 0xff 0xff
35
           flash         65    10   256    0 yes    131072  256    512  4500  4500 0xff 0xff
36
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
37
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
38
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
39
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
40
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
41
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
42

43
         Programmer Type : usbasp
44
         Description     : USBasp, http://www.fischl.de/usbasp/
45

46
avrdude: try to set SCK period to 0.002 s (= 499 Hz)
47
avrdude: set SCK frequency to 500 Hz
48
avrdude: error: program enable: target doesn't answer. 1
49
avrdude: initialization failed, rc=-1
50
         Double check connections and try again, or use -F to override
51
         this check.
52

53

54
avrdude done.  Thank you.
#5852788
Lesenswert?

Hi,
also, obwohl eine Fassung für das Target der 32-er MEGA-Serie nicht on 
board ist:
Das STK500 mit dem 6-poligen SPI-Konnektor treibt sogar den Reset-Pullup 
von 2,7 k / 100 nF ohne aufzumucken.
Nehme schwer an, dass es besser wäre, beim Flashen die VTarget vom 
Programmieradapter selbst zu nehmen.
Die VTarget wird beim STK500 mit LM317 und PWM erzeugt, bricht bei 
irgendwelchen Bugs sofort zusammen, so dass der Flashvorgang afaik erst 
garnicht losläuft.
Habe garnicht mitbekommen, welcher Programmieradapter da verwendet wird,
der mit einem 10A-Netzteil betrieben wird.
Nehme an, es ist in Ermangelung eines geeigneteren ein Labornetzteil 
verwendet worden.

ciao
gustav
Angehängte Dateien:
OP #5853028
Lesenswert?

Stefanus F. schrieb:
> Leon W. schrieb:
>> Ich habe den AVR aus der Schaltung entfernt und auf ein Steckbrett
>> gesteckt und benutze jetzt die Spannungsversorgung vom Usbasp di
>> ungefähr bei 4.9-4.8V liegt
>
> Netter Versuch. War er erfolgreich? Wenn nicht, mit welcher
> Fehlermeldung?

Dies gibt mir avrdude aus.
1
avrdude -pm324pa -cusbasp -F -v -v -B2000
2

3
avrdude: Version 6.3, compiled on Feb 17 2016 at 09:25:53
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:\WinAVR-20100110\bin\avrdude.conf"
8

9
         Using Port                    : usb
10
         Using Programmer              : usbasp
11
         Setting bit clk period        : 2000.0
12
avrdude: seen device from vendor ->www.fischl.de<-
13
avrdude: seen product ->USBasp<-
14
         AVR Part                      : ATmega324PA
15
         Chip Erase delay              : 55000 us
16
         PAGEL                         : PD7
17
         BS2                           : PA0
18
         RESET disposition             : dedicated
19
         RETRY pulse                   : SCK
20
         serial program mode           : yes
21
         parallel program mode         : yes
22
         Timeout                       : 200
23
         StabDelay                     : 100
24
         CmdexeDelay                   : 25
25
         SyncLoops                     : 32
26
         ByteDelay                     : 0
27
         PollIndex                     : 3
28
         PollValue                     : 0x53
29
         Memory Detail                 :
30

31
                                  Block Poll               Page                       Polled
32
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
33
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
34
           eeprom        65    10   128    0 no       1024    4      0  9000  9000 0xff 0xff
35
           flash         33     6   256    0 yes     32768  128    256  4500  4500 0xff 0xff
36
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
37
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
38
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
39
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
40
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
41
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
42

43
         Programmer Type : usbasp
44
         Description     : USBasp, http://www.fischl.de/usbasp/
45

46
avrdude: try to set SCK period to 0.002 s (= 499 Hz)
47
avrdude: set SCK frequency to 500 Hz
48
avrdude: error: program enable: target doesn't answer. 1
49
avrdude: initialization failed, rc=-1
50
avrdude: AVR device initialized and ready to accept instructions
51
avrdude: Device signature = 0x000000 (retrying)
52
avrdude: Device signature = 0x000000 (retrying)
53
avrdude: Device signature = 0x000000
54
avrdude: Yikes!  Invalid device signature.
55
avrdude: Expected signature for ATmega324PA is 1E 95 11
56

57
avrdude done.  Thank you.
Gast #5853037
Lesenswert?

Hallo Leon,

Lustig: "avrdude -pm1284p -cusbasp -v -v -B2000"

Wer kommt auf die Idee avrdude mit -B 2000 aufzurufen?
Und wo ist die Übergabe des Parameters -P <PORT> zu finden?

Hier die Syntax von avrdude version 6.2.
Usage: avrdude [options]
Options:
  -p <partno>                Required. Specify AVR device.
  -b <baudrate>              Override RS-232 baud rate.
  -B <bitclock>              Specify JTAG/STK500v2 bit clock period 
(us).
  -C <config-file>           Specify location of configuration file.
  -c <programmer>            Specify programmer type.
  -D                         Disable auto erase for flash memory
  -i <delay>                 ISP Clock Delay [in microseconds]
  -P <port>                  Specify connection port.
  -F                         Override invalid signature check.
  -e                         Perform a chip erase.
  -O                         Perform RC oscillator calibration (see 
AVR053).
  -U <memtype>:r|w|v:<filename>[:format]
                             Memory operation specification.
                             Multiple -U options are allowed, each 
request
                             is performed in the order specified.
  -n                         Do not write anything to the device.
  -V                         Do not verify.
  -u                         Disable safemode, default when running from 
a script.
  -s                         Silent safemode operation, will not ask you 
if
                             fuses should be changed back.
  -t                         Enter terminal mode.
  -E <exitspec>[,<exitspec>] List programmer exit specifications.
  -x <extended_param>        Pass <extended_param> to programmer.
  -y                         Count # erase cycles in EEPROM.
  -Y <number>                Initialize erase cycle # in EEPROM.
  -v                         Verbose output. -v -v for more.
  -q                         Quell progress output. -q -q for less.
  -l logfile                 Use logfile rather than stderr for 
diagnostics.
  -?                         Display this usage.

avrdude version 6.2, URL: <http://savannah.nongnu.org/projects/avrdude/>;
Gast #5853107
Lesenswert?

Leon W. schrieb:
> Dies gibt mir avrdude aus.
> avrdude -pm324pa -cusbasp -F -v -v -B2000

Jetzt sieht die Ausgabe etwas anders aus, so also ob eine Kommunikation 
sattfindet, aber fehlerhaft. Das passt auch zu deiner Aussage, dass die 
LEDs alle flackern.

Ich würde jetzt mal die Stromversorgung und die Signalqualität der ISP 
Schnittstelle (incl. Reset) mit einem Oszilloskop prüfen. Falls du keins 
hast, google mal nach DSO138. Das ist ein billiges Spielzeug, aber immer 
noch besser als gar keins zu haben.
Gast #5853203
Lesenswert?

an Leon W.:
Zu Ihrem konkreten Problem fällt mir erstmal nichts mehr ein, zumal der 
ATmega1284 plötzlich wieder funktioniert (die genannen Stromaufnahmen 
sind unauffällig). Aber tun Sie sich selbst einen Gefallen und kümmern 
Sie sich um eine vernünftige Stromversorgung (und ja, ich weiß, 
Ratschläge alter Männer sind so eine Sache, trotzdem):
  Ich versorge in der Regel die uCs aus einem kleinen Steckernetzteil, 
zwischengeschaltet ist eine Lochrasterplatine mit einem L200; dessen 
Ausgangsspannung lässt sich mit einem Trimmpotentiometer einstellen und 
ist abgreifbar für andere Zwecke. Die Strombegrenzung ist stufig 
geschaltet mit 10-20-50-100-200 mA. Dahinter folgen drei LP2950 mit 5.0, 
3.3 und 3.0 V. Und in den Stromschienen der Steckbretter sitzen fest 
Z-Dioden mit 6.2 V (und 5 W), falls ich mal versehentlich die 
L200-Spannung anlegen sollte - ist in all den Jahren zwar nur einmal 
passiert, war aber genau einmal zu viel.
#5853222
Lesenswert?

S. Landolt schrieb:
> Ratschläge alter Männer sind so eine Sache, trotzdem):
>   Ich versorge in der Regel die uCs aus einem kleinen Steckernetzteil

Jau...aber es spricht überhaupt nichts dagegen, ein "ordentliches" 
Labornetzteil zu verwenden. Allerdings gibt es eine alte Regel :-) Den 
Kandidaten nur mit GND verbinden, Netzteil einschalten und Spannung 
messen/einstellen, Strombegrenzung auf einen "passenden" Wert 
einstellen, durch Kurzschluß kurz prüfen, und dann die Plus-Versorgung 
anschließen. Ausschalten des Probanden geschieht durch Abklemmen der 
Plus-Versorgung. So kann (fast) nichts passieren.
Gruß Rainer
Gast #5853505
Lesenswert?

Leon W. schrieb:
> und wollte
> dann ein verbessertes Programm hochladen

und du traust diesem Programm?
Beginnt ja mal schon dubios:
1
  DDRC &= ~(1<<PORTC2) | (1<<PORTC3) | (1<<PORTC4) | (1<<PORTC5);
Ob da irgendwo eine Division durch 0 oder aehnliches folgt, will ich in 
dem Kothaufen nicht anschauen.

Schreib modularen, kommentierten und lesbaren Code, den du auch noch 
nach Monaten nachvollziehen kannst.

leo
Gast #5853754
Lesenswert?

S. Landolt schrieb:
> Bei mir ist es umgekehrt - das Labornetzgerät bleibt in 95 % aller Fälle
> im Schrank.

Bei mir auch.

> funktionierte es 30 s und dann kam auf einmal nur noch Blödsinn

Ich kann mich nur wiederholen: Überpüfe die Stromversorgung. Solche 
Verhaltensweisen sind typisch, wenn die Stromversorgung nicht in Ordnung 
ist. Dabei verliert man nicht selten Teile des Programms im Flash. Das 
EEprom ist noch empfindlicher.

Bekommen wir irgendwann mal Schaltplan und Fotos zu sehen, oder hast du 
Freude am Ratespiel?
#5853954
Lesenswert?

Leon W. schrieb:
> Atmega324PA

Leon W. schrieb:
> Der Atmega1284P funktioniert auf einmal wieder

Hi,
mit welchem Target wird nun eigentlich gearbeitet?
Ist Portierung 1:1 möglich zwischen den beiden ATMELS oder nicht?

Wie ist das Pinout?
Dann, wo beginnt das dseg? bei 0060 oder 0100 ?
Nur ein paar wahllose Stichworte, die ich hier in die Debatte werfen 
möchte.

Finde mich in der Tabelle nicht wirklich zurecht:
https://www.mikrocontroller.net/articles/AVR_Typen#ATmega_-_Reihe

ciao
gustav
OP #5854038
Lesenswert?

Karl B. schrieb:
> Leon W. schrieb:
>> Atmega324PA
>
> Leon W. schrieb:
>> Der Atmega1284P funktioniert auf einmal wieder
>
> Hi,
> mit welchem Target wird nun eigentlich gearbeitet?
> Ist Portierung 1:1 möglich zwischen den beiden ATMELS oder nicht?
>
> Wie ist das Pinout?
> Dann, wo beginnt das dseg? bei 0060 oder 0100 ?
> Nur ein paar wahllose Stichworte, die ich hier in die Debatte werfen
> möchte.
>
> Finde mich in der Tabelle nicht wirklich zurecht:
> https://www.mikrocontroller.net/articles/AVR_Typen#ATmega_-_Reihe
>
> ciao
> gustav

Also die Pinbelegung ist gleich, nur die SPI Register heißen anders.

Was meinst du mit dseg?

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