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


von Klaus V. (klausvalse)


Angehängte Dateien:

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)


Lesenswert?

Ich tippe auf fehlende Abblockkondensatoren.

von Patrick (Gast)


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 Einer K. (Gast)


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.

von Klaus V. (klausvalse)


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)


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:

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 Einer K. (Gast)


Lesenswert?

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

von Klaus V. (klausvalse)


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)


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)


Lesenswert?

... dir raten.

von Klaus V. (klausvalse)


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:

Lesenswert?

Guten Morgen,

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

von Joachim B. (jar)


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. (Gast)


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)


Lesenswert?

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

LG, Klaus

von Stefan F. (Gast)


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)


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

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.