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
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.
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.
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
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.
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
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!
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.
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
> 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.
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.
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