AVR reagiert nicht

OP #5852076
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
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
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
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?
OP
Natürlich hab ich einen Abblock-Kondensator.

Aber das darüber hab ich nicht verstanden:

Muss ich die Reset Leitung dann wieder von GND trennen nachdem ich die 
Versorgungsspannung wieder angeschlossen habe oder an GND dran lassen?
Gast
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?
Gast
Also mich irritiert etwas, dass der uC mit 16 MHz betrieben wird, der 
BOD aber nur auf 2.7 V steht. Mit welcher Spannung läuft er denn, und 
wurde diese direkt am uC nachgemessen?
OP
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.
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:
Gast
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?
OP
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
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/>;
OP
Karl M. schrieb:
> 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?

Den Port findet avrdude automatisch und - B2000 hab ich als Parameter 
eingegeben damit der die ISP Frequenz auf 500hz setzt
Gast
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
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.
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
Okay, akzeptiert.
Ich selbst aber bevorzuge die Einfachheit in der Bedienung bei meinen 
LP2950. Die Materialkosten des Platinchens liegen unter 10 EUR. Woraus 
man dieses dann speist, sei mal dahingestellt.
Gast
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
Ralph S. schrieb:
>> DDRC &= ~(1<<PORTC2) | (1<<PORTC3) | (1<<PORTC4) | (1<<PORTC5);

Ich verbessere mich:

PC2 als einziger Pin ist Eingang, alle anderen des PortC sind nach 
dieser Angabe Ausgänge !

~(1 << PORTC2)   => ~(0000.0010) => (1111.1011)

Eine nachfolgende Ver-ODER-ung anderer Bits als PC2 hat keinen weiteren 
Effekt
Gast
Hi

>  DDRC &= ~(1<<PORTC2) | (1<<PORTC3) | (1<<PORTC4) | (1<<PORTC5);

Beim ATMega324 und ATMega1284 liegen auf diesen PINs das JTAG-Interface. 
Du hast das hoffentlich ausgeschaltet.

MfG Spess
Gast
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?
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
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

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.