Forum: Mikrocontroller und Digitale Elektronik Programmer spinnt mit mega8 - alle möglichen Fehler abwechselnd


von Philipp L. (flip7)


Angehängte Dateien:

Lesenswert?

Hallo :)
Ich bin langsam am Verzweifeln! Ich möchte einen atmega8 programmieren, 
bekomme aber alle möglichen Fehler, wenn ich versuche, mit avrdude das 
Ding zu flashen. Zuerst hab ich versucht, es direkt in der Schaltung zu 
programmieren. Mein Programmer ist einer aus dem Ebay, der das Protokoll 
stk500v2 nutzt und bei meinem mega32 super funktioniert hat. In der 
Schaltung hats nicht geklappt, da hab ich einfach mal den Programmer 
direkt an den Controller "drangepfuscht" - siehe Bild. So müsste es doch 
auf jeden Fall gehen, sofern die Pins stimmen? (und da bin ich mir zu 
99.9% sicher)
Aber nein, die gleichen Fehler wie ich auch in der Schaltung hab. 
Nämlich folgende. Und jedes Mal wenn ich den avrdude anschmeisse, gibts 
ne andere Meldung:

-avrdude: Device signature = 0x009307
 avrdude: Expected signature for ATMEGA8 is 1E 93 07
-avrdude: stk500v2_command(): command failed
 avrdude: initialization failed, rc=-1
-avrdude: verifying ...
 avrdude: verification error, first mismatch at byte 0x0001
         0xc0 != 0x80
 avrdude: verification error; content mismatch
-avrdude: verification error, first mismatch at byte 0x0000
         0x12 != 0xff
 avrdude: verification error; content mismatch

-avrdude: safemode: Verify error - unable to read lfuse properly.
 Programmer may not be reliable.
-avrdude: safemode: Verify error - unable to read hfuse properly.
 Programmer may not be reliable.
- ....

Ich hab hier mal einen Ausschnitt (so weit das Fenster ging) der Ausgabe 
mit -vvvv kopiert: http://nopaste.php-q.net/264637

Mir scheint, ich hab total viel Störung oder nen Wackler auf der 
Leitung, weil er kriegt viele Bits richtig, aber auch einige falsch 
rein. Was kann ich noch tun? Hab auch schon einen anderen mega8 
ausprobiert, gleicher Mist. Hab die baudrate auf 1200 gehabt. Hab mit -i 
rumgespielt. Alles nix gebracht.
HILFE!
...danke schon mal! ;)
gruß, Philipp

von Simon K. (simon) Benutzerseite


Lesenswert?

Wo ist denn die Spannungsversorgung am Prozessor?

von Philipp L. (flip7)


Lesenswert?

die kommt ausm Programmer - funktioniert auch, grad nachgemessen: 5V

von Simon K. (simon) Benutzerseite


Lesenswert?

Ich mein ja nur, weil in deinem AVRDude Log was von VTarget: 0.0V steht.
Hast du auch VCC und AVCC angeschlossen?

von Philipp L. (flip7)


Lesenswert?

das fand ich auch seltsam.. da sollte eigentlich 5V stehen, oder? Stehts 
bei dir drin, wenn du was flashst?

edit: ich hab bei der Pfusch-Schaltung Reset, SCK, Mosi, miso, vcc und 
gnd angeschlossen .. in der richtigen aber noch n paar andere, einige 
Ports und nat. auch avcc, das zweite gnd, ..

von Simon K. (simon) Benutzerseite


Lesenswert?

Dann schließ doch erst mal alle (A)GNDs und alle (A)VCCs korrekt an.

von bix (Gast)


Lesenswert?

Du solltest einen Abblockkondensator (100nF) zwischen Vcc und GND 
schalten. Vielleicht ist das Dein Problem.

von Philipp L. (flip7)


Lesenswert?

okay, das hab ich gemacht: avcc und agnd angeschlossen und auch einen 
100nF-Kerko zwischen VCC und GND gelötet - nix gebracht :(

von nils (Gast)


Lesenswert?

Controller kaputt?

von Philipp L. (flip7)


Lesenswert?

nils schrieb:
> Controller kaputt?

hab zwei Atmega8 hier, beide probiert, bei beiden das gleiche Problem :s 
könnten höchstens beide kaputt sein..

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Naja bei dem Aufbau: Keine Kondensatoren, keine Pullups und wie es 
aussieht auch noch nichtmals vollstaendig beschaltet (keine Verbindungen 
zwischen den Pins selber).

von nils (Gast)


Lesenswert?

Also ein AVR kommt ohne Probleme ohne Kondensatoren aus, habe selbst 
Jahrelang aufm Steckbrett und frei verdahtete Controller zum Basteln 
verwendet.

Solange die Versorgungsspannung dran ist und Reset nicht frei in der 
Luft baumelt, laufen die Dinger 1A.

Was aber auch sein kann, dass du sie "verfuset" hast, nämlich auf 
externen Takt/Quarz umgestellt. Wenn du dir da nicht sicher bist, 
einfach mal ausprobieren.

von Simon K. (simon) Benutzerseite


Lesenswert?

nils schrieb:
> Also ein AVR kommt ohne Probleme ohne Kondensatoren aus, habe selbst
> Jahrelang aufm Steckbrett und frei verdahtete Controller zum Basteln
> verwendet.
>
> Solange die Versorgungsspannung dran ist und Reset nicht frei in der
> Luft baumelt, laufen die Dinger 1A.
Ich will ja jetzt nicht bestreiten, dass es bei dir lief, aber die 
Aussage ist so pauschal, wie sie da jetzt steht blanker Unsinn!
Es ist schlichtweg falsch die Kondensatoren wegzulassen.

von Philipp L. (flip7)


Lesenswert?

Verfused dürften die keinesfalls sein, weil ich beide zum ersten Mal im 
Gebrauch hab und noch gar nix an den Fuses gedreht hab..
lfuse E1 und hfuse D9 sollte Auslieferungszustand sein..

und @Michael G. : Ich weiss, dass der Aufbau auf dem Foto nicht ideal 
ist. Ich wollte einfach nur schauen, ob der Fehler in meiner kompletten 
Schaltung (wo natürlich PullUp's und Kondensatoren sind) liegt. Also 
wollte ich einfach nur gucken, ob ich eine Kommunikation zum uC 
herstellen kann, mit einfachsten Mitteln. Aber anscheinend ist meine 
Komplettschaltung okay, denn die Fehler sind überall die gleichen.

Das einzige, was ich grad noch festgestellt hab, ist folgendes: Wenn ich 
das Kabel recht lang ausstrecke und nicht zusammengerollt lasse, dann 
kommt der avrdude in seiner Übertragung viel weiter, und hat nicht schon 
bei 0x0003 oder so einen VerificationError, sonder z.B. erst bei 0x00ae 
oder so.. bringt uns das irgendwie weiter?

edit: und ich hab ja grad auch in die freiluftverdrahtung einen 
100nF-Kerko zwischen VCC und GND gelötet .. hat nix gebracht

von Peter R. (gelb)


Lesenswert?

nils schrieb:

> Also ein AVR kommt ohne Probleme ohne Kondensatoren aus

Millionen Jahre Entwicklungserfahrung sprechen dagegen.

> Jahrelang aufm Steckbrett und frei verdahtete Controller zum Basteln
> verwendet.

Du wirst deswegen bei einem deiner nächsten Projekte stundenlang nach 
einem sporadischen Fehler suchen und anschließend nie wieder den 
Kondensator weglassen.

> Solange die Versorgungsspannung dran ist und Reset nicht frei in der
> Luft baumelt, laufen die Dinger 1A.

Laut AVR-Spezifikation muss der Reset nicht beschaltet sein. Schadet 
aber nicht.

Grüße, Peter

von (prx) A. K. (prx)


Lesenswert?

Philipp L. schrieb:

> Das einzige, was ich grad noch festgestellt hab, ist folgendes: Wenn ich
> das Kabel recht lang ausstrecke und nicht zusammengerollt lasse, dann
> kommt der avrdude in seiner Übertragung viel weiter

Wieviele Meter sind das? In der Kürze liegt die Würze.

von Philipp L. (flip7)


Lesenswert?

A. K. schrieb:
> Philipp L. schrieb:
>
>> Das einzige, was ich grad noch festgestellt hab, ist folgendes: Wenn ich
>> das Kabel recht lang ausstrecke und nicht zusammengerollt lasse, dann
>> kommt der avrdude in seiner Übertragung viel weiter
>
> Wieviele Meter sind das? In der Kürze liegt die Würze.

Najaa .. so viel nicht, so ein Standard-USB-Kabel eben, vielleicht 1m? 
1,5m? und ca. 10cm Flachbandkabel dazu. sollte eigentlich überhaupt kein 
Problem sein, und wie gesagt bei meinem mega32 hab ich genau die gleiche 
Ausrüstung gehabt und der lief wie ne Eins!

von Philipp L. (flip7)


Lesenswert?

Hallo nochmal :)

Ich hab den fehler gefunden - es lag nicht an irgendwelchen 
Kondensatoren oder Pullups oder sonstiges Kram!
Ich musste den avrdude anscheinend nur auf ganz ganz langsam stellen, 
und zwar mit dem Befehl -B 22 die ISP-Frequenz runterstellen.
Allerdings bin ich mir nicht ganz sicher, mit welcher Frequenz ich jetzt 
flashe? Heisst die 22, dass jeder Pegel 22ms (us?) ansteht?
Und warum kann ich meinen neuen mega8 nicht mit der normalen ISP-freq. 
flashen? ist das normal?

...fragen über fragen ... aber schön dass es geht :)

von Thomas R. (tinman) Benutzerseite


Lesenswert?

Philipp L. schrieb:
> Hallo nochmal :)
>
> Ich hab den fehler gefunden - es lag nicht an irgendwelchen
> Kondensatoren oder Pullups oder sonstiges Kram!

falsch, die Fehler summieren sich. Hier ein kondensator vergessen, da 
ein zu langes kabel usw. Je mehr "aufbaufehler und störungen" desto 
kleiner die ISP frequenz die noch "durchgehen" wird, bis es irgendwann 
gar nicht geht.

von Simon K. (simon) Benutzerseite


Lesenswert?

Thomas R. schrieb:
> Philipp L. schrieb:
>> Hallo nochmal :)
>>
>> Ich hab den fehler gefunden - es lag nicht an irgendwelchen
>> Kondensatoren oder Pullups oder sonstiges Kram!
>
> falsch, die Fehler summieren sich. Hier ein kondensator vergessen, da
> ein zu langes kabel usw. Je mehr "aufbaufehler und störungen" desto
> kleiner die ISP frequenz die noch "durchgehen" wird, bis es irgendwann
> gar nicht geht.

Ich fürchte eher, dass die Programmierfrequenz für den Prozessor zu hoch 
war. Also der Prozessor eine zu niedrige Taktrate hatte ;) 15cm 
Flachbandkabel sind idR für das Programmieren von AVRs problemlos.

Soweit ich weiß ist B die Bitclock (in µs). 22µs entsprächen also 45kHz.
Der Controller läuft standardmäßig mit 1Mhz. Du musst beim ersten mal 
Programmieren also mindestens -B 4 benutzen. (250kHz, 1/4 der 1MHz).

von Ben _. (burning_silicon)


Lesenswert?

die neuen AVRs werden mit sehr geringer taktfrequenz ab werk 
ausgeliefert. da ist die programmierfrequenz dann oft zu hoch. keine 
ahnung wieso atmel das gemacht hat, wirklich sinnvoll finde ich es 
nicht. kann mir das nur so vorstellen, daß die dinger mit sehr geringer 
spannung noch laufen sollen.

von Thomas R. (tinman) Benutzerseite


Lesenswert?

Ben _ schrieb:
> die neuen AVRs werden mit sehr geringer taktfrequenz ab werk
> ausgeliefert. da ist die programmierfrequenz dann oft zu hoch. keine
> ahnung wieso atmel das gemacht hat, wirklich sinnvoll finde ich es
> nicht.

unsinn, was hat software bedinnungsfehler mit dem was Atmel 
einprogrammiert hat zu tun. Ich würde eher sagen "warum ist avrdude mit 
900Khz voreingestellt", ist aber im prinzip egal.


Was die logs angeht, line 537, ist das nicht der Bitclock ?

SCK period      : 1.1 us

von Ben _. (burning_silicon)


Lesenswert?

wahrscheinlich weil avrdude in dieser (alten?) version auf 
geschwindigkeit ausgelegt war. und wenn atmel jetzt das jetzt plötzlich 
die taktfrequenz so drastisch absenkt kann die software recht wenig 
dafür. die nächste version wird dann wieder besser funktionieren.

von Simon K. (simon) Benutzerseite


Lesenswert?

Die Dinger laufen schon immer auf 1MHz ab Werk.

von Ben _. (burning_silicon)


Lesenswert?

waren das nicht mal 4MHz?

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.