mikrocontroller.net

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


Autor: Philipp L. (flip7)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo ist denn die Spannungsversorgung am Prozessor?

Autor: Philipp L. (flip7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die kommt ausm Programmer - funktioniert auch, grad nachgemessen: 5V

Autor: Simon K. (simon) Benutzerseite
Datum:

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

Autor: Philipp L. (flip7)
Datum:

Bewertung
0 lesenswert
nicht 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, ..

Autor: Simon K. (simon) Benutzerseite
Datum:

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

Autor: bix (Gast)
Datum:

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

Autor: Philipp L. (flip7)
Datum:

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

Autor: nils (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Controller kaputt?

Autor: Philipp L. (flip7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nils schrieb:
> Controller kaputt?

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

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

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

Autor: nils (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Philipp L. (flip7)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Roth (gelb)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Philipp L. (flip7)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Philipp L. (flip7)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Thomas R. (tinman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Ben ___ (burning_silicon)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas R. (tinman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ben ___ (burning_silicon)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Dinger laufen schon immer auf 1MHz ab Werk.

Autor: Ben ___ (burning_silicon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
waren das nicht mal 4MHz?

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.