Forum: Mikrocontroller und Digitale Elektronik ATMEGA328P-PU mit Arduino als ISP funktioniert nicht mehr - bricht Upload ab


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Klaus V. (klausvalse)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Liebe MikrocontrollerInnen!

Ich habe ein mittlerweile schon wirklich nervtötendes Problem: alle 
heiligen Zeiten entschließt sich mein Arduino, der eigentlich als ISP 
fungieren soll, mein Programm nicht mehr hochzuladen. Das bizarre daran 
ist, dass dieses Problem willkürlich aufzutreten scheint, soll heißen 
ohne dass ich etwas an der Verkabelung verändert hätte.
Offenbar stürzt der Arduino als ISP ab, denn nachdem er abgebrochen hat 
mit der üblichen Meldung
1
 avrdude: stk500_recv(): programmer is not responding
pulsiert die LED auf dem Arduino Pin 9 nicht mehr, sondern leuchtet 
konstant. Erst wenn ich den Reset-Button auf dem Arduino Uno Board 
drücke, fängt sie wieder an zu pulsieren, was übrigens anzeigen soll, 
dass das "ArduinoISP" Programm funktioniert. Wie gesagt habe ich schon 
tausende Male verschiedene Programme hochgeladen und nichts an der 
Verkabelung verändert und habe auch den 10uF Kondensator an den Reset 
angeschlossen.
Ich arbeite mit Makefiles und meine Regel "make fuse" scheint zu 
funktionieren, bzw. löst keine Fehlermeldung beim avrdude aus.
Ich bin schön langsam wirklich ratlos, weil das Problem ohne erkennbarem 
Muster auftritt, aber vielleicht liegt es ja wirklich an mir. Die 
Fusebits sind so eingestellt dass ein externer 16MHz Quarz den Takt gibt 
- hat bis jetzt auch funktioniert.
Hier eine Kostprobe, was in der Kommandozeile beim Upload steht. Wie man 
sehen kann wurde das Programm bis 6% hochgeladen und dann abgebrochen.
1
Klaus-Valse:MegaMIDI klausvalse$ make clean; make flash
2
rm -f main.hex main.elf main.o ATMEGA_USART.o
3
avr-gcc -Wall -Os -mmcu=atmega328p -Wl,-Map,main.map,--cref -c main.c -o main.o
4
avr-gcc -Wall -Os -mmcu=atmega328p -Wl,-Map,main.map,--cref -c ATMEGA_USART.c -o ATMEGA_USART.o
5
avr-gcc -Wall -Os -mmcu=atmega328p -Wl,-Map,main.map,--cref -o main.elf main.o ATMEGA_USART.o
6
avr-objcopy -j .text -j .data -O ihex main.elf main.hex
7
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avrdude -C /Applications/Arduino.app//Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf -c arduino -P /dev/tty.usb* -b 19200  -p atmega328p -U flash:w:main.hex:i
8
9
avrdude: AVR device initialized and ready to accept instructions
10
11
Reading | ################################################## | 100% 0.08s
12
13
avrdude: Device signature = 0x1e950f
14
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
15
         To disable this feature, specify the -D option.
16
avrdude: erasing chip
17
avrdude: reading input file "main.hex"
18
avrdude: writing flash (2020 bytes):
19
20
Writing | ###                                                | 6% 0.18savrdude: stk500_recv(): programmer is not responding
21
make: *** [flash] Error 1

von tommy (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich tippe auf fehlende Abblockkondensatoren.

von Patrick (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Klaus V. schrieb:
> Wie gesagt habe ich schon
> tausende Male verschiedene Programme hochgeladen und nichts an der
> Verkabelung verändert und habe auch den 10uF Kondensator an den Reset
> angeschlossen.

10uF sind hier falsch, Nanofarad ist die richtige Größenordnung. Der 
Programmer wird sich bedanken, wenn er micht mehr jedes mal einen Elko 
kurzschließen muss.
Ansonsten schließe ich mich tommy an, Kondensatoren wirken manchmal 
Wunder (derer man sich bewusst wird, wenn man sie mal vergessen und 
einen blöden Fehler erzeigt hat).
Zeig uns doch mal deinen Schaltplan und knipse mal deinen 
Versuchsaufbau. Ansonsten kann dir hier keiner vernünftig weiter helfen.

von Arduino Fanboy D. (ufuf)


Bewertung
-2 lesenswert
nicht lesenswert
Patrick schrieb:
> 10uF sind hier falsch,
Nein, sind sie nicht.
Auch 100 oder 1000µF sind an der Stelle voll ok.

Dieser Kondensator verhindert, dass der "Arduino as ISP" in/durch den 
Reset geht.

> Der Programmer wird sich bedanken,
> wenn er micht mehr jedes mal einen Elko
> kurzschließen muss.
Muss er nicht.
Keiner muss das.

: Bearbeitet durch User
von Klaus V. (klausvalse)


Bewertung
0 lesenswert
nicht lesenswert
tommy schrieb:
> Ich tippe auf fehlende Abblockkondensatoren.

Sollte ich denn noch wo einen Kondensator dranhängen? Weil 10uF hab ich 
gegen den Reset gehängt (nur falls du das überlesen hast).
LG, Klaus

von tommy (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Klaus,
da sollten je ein 100nF Keramik-Vielschicht von Vcc nach GND
und von AVcc nach GND.

Wie Patrick schon schrieb wären Schaltbild und Foto hilfreich.

von Klaus V. (klausvalse)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
tommy schrieb:
> Hallo Klaus,
> da sollten je ein 100nF Keramik-Vielschicht von Vcc nach GND
> und von AVcc nach GND.
>
> Wie Patrick schon schrieb wären Schaltbild und Foto hilfreich.

Hallo Leute! Hallo Tommy!

Hier ist mein Steckbrett-Aufbau. Ich hoffe die Verkabelung ist halbwegs 
ersichtlich. Bis jetzt habe ich es nicht geschafft ein Programm 
hochzuladen. Es ist wie verhext. Hab es n
un auch mit zwei anderen 328ern probiert - nichts. Das höchste der 
Gefühle ist dass er bis zu 6% schreibt, wobei er 100% lesen kann. Dann 
bricht der Programmer ab (siehe oben).
Hat irgendjemand eine Idee. Ich komm gar nicht mehr weiter, da ich nicht 
mal mehr ein LED-Blinkprogramm mehr flashen kann.

LG, Klaus

von Arduino Fanboy D. (ufuf)


Bewertung
0 lesenswert
nicht lesenswert
Da fehlen noch einmal Vcc und GND!
Und die beiden Kerkos an den Versorgungpins.

: Bearbeitet durch User
von Klaus V. (klausvalse)


Bewertung
0 lesenswert
nicht lesenswert
Arduino F. schrieb:
> Da fehlen noch einmal Vcc und GND!
> Und die beiden Kerkos an den Versorgungpins.

Okay. Werd ich beim nächsten Spinner probieren. Interessanterweise 
funktioniert es jetzt wieder. Ich hab das ArduinoISP Programm noch 
einmal draufgespielt und nun kann ich auf einmal wieder flashen. Der 
Witz ist: das hab ich schon einmal gemacht und erst jetzt hat es was 
gebracht. Somit kann daraus leider keine Erkenntnis gewonnen werden.
Danke für die Hilfe, vielleicht erwecke ich ja den Thread wieder mal zum 
Leben, wenn sich der 328er wieder mal entscheiden sollte, dass er nicht 
mehr funktionieren mag...

Guten Abend!

von tommy (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Klaus V. schrieb:
> Das höchste der
> Gefühle ist dass er bis zu 6% schreibt, wobei er 100% lesen kann.

Weil ihm dann die Luft... ääähhh Spannung ausgeht, weil ihm immer noch
die Abblockkondensatoren fehlen.

Klaus V. schrieb:
> Okay. Werd ich beim nächsten Spinner probieren. Interessanterweise
> funktioniert es jetzt wieder. Ich hab das ArduinoISP Programm noch
> einmal draufgespielt und nun kann ich auf einmal wieder flashen. Der
> Witz ist: das hab ich schon einmal gemacht und erst jetzt hat es was
> gebracht. Somit kann daraus leider keine Erkenntnis gewonnen werden.

Doch!
Und zwar die Erkenntnis, dass es ohne Abblockkondensatoren funktionieren
kann, aber nicht immer zuverlässig.

Arduino F. schrieb:
> Da fehlen noch einmal Vcc und GND!
> Und die beiden Kerkos an den Versorgungpins.

Mach doch einfach mal was Arduino Fanboy und ich die raten.

von tommy (Gast)


Bewertung
0 lesenswert
nicht lesenswert
... dir raten.

von Klaus V. (klausvalse)


Bewertung
0 lesenswert
nicht lesenswert
Okay, danke für die Diskussion, werde ich ausprobieren! Wäre nur 
interessant warum genau es eines Kondensators bedarf. Also falls es 
jemand erklären möchte, ich bin ganz Ohr bzw. Auge!

LG, Klaus

von Karl M. (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen,

wurde schon die Vcc, Gnd Verbindung komplett, für Port C usw., 
hergestellt ?

von Joachim B. (jar)


Bewertung
0 lesenswert
nicht lesenswert
Klaus V. schrieb:
> Okay, danke für die Diskussion, werde ich ausprobieren! Wäre nur
> interessant warum genau es eines Kondensators bedarf. Also falls es
> jemand erklären möchte, ich bin ganz Ohr bzw. Auge!
>
> LG, Klaus

wie wäre es mit Grundlagen lernen?

ganz oben auch von hier
http://www.lothar-miller.de/s9y/categories/14-Entkopplung

http://rn-wissen.de/wiki/index.php/Abblockkondensator
https://de.wikipedia.org/wiki/Blockkondensator
http://www.munz-udo.de/FTE1/Abblockkondensatoren.pdf
http://www.elektronik-kompendium.de/forum/forum_entry.php?id=142189&page=105&category=all&order=time


reicht das erst mal?

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
> warum genau es eines Kondensators bedarf

Weil der Kondensator die Stromversorgung stabilisiert. Und das ist 
nötig, wiel die Stromaufnahme des Mikrochips sehr sprunghaft wechselt. 
Diese Lastsprünge dürfen nicht zu Sprüngen der Spannung führen.

Elkos eignen sich nicht, weil sie zu träge reagieren.

Es funktioniert oft aber nicht immer ohne Kondensatoren. man vermeidet 
eine Menge Stress, wenn man die Kondensatoren IMMER einbaut. Du willst 
ja auch kein Auto haben, dass nur dann anspringt, wenn es gerade gute 
Laune hat.

von Klaus V. (klausvalse)


Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank!
Ich wusste nicht, dass der Strom da so stark variiert. Jetzt ist alles 
klar.

LG, Klaus

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
CMOS Elektronik benötigt Strom, wenn Signale von High nach Low wechseln. 
Ohne Signalwechsel ist die Stromaufnahme annähernd null.

Der Mikrocontroller braucht bei jedem Taktimpuls (steigende und fallende 
Flanke) eine Menge Strom und zwischen den Takten fast gar keinen.

von Klaus V. (klausvalse)


Bewertung
0 lesenswert
nicht lesenswert
Stefan U. schrieb:
> CMOS Elektronik benötigt Strom, wenn Signale von High nach Low wechseln.
> Ohne Signalwechsel ist die Stromaufnahme annähernd null.
>
> Der Mikrocontroller braucht bei jedem Taktimpuls (steigende und fallende
> Flanke) eine Menge Strom und zwischen den Takten fast gar keinen.

Ist eigentlich logisch. Danke für die Diskussion, wieder was gelernt.
LG, Klaus

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.