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
Wo ist denn die Spannungsversorgung am Prozessor?
die kommt ausm Programmer - funktioniert auch, grad nachgemessen: 5V
Ich mein ja nur, weil in deinem AVRDude Log was von VTarget: 0.0V steht. Hast du auch VCC und AVCC angeschlossen?
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, ..
Dann schließ doch erst mal alle (A)GNDs und alle (A)VCCs korrekt an.
Du solltest einen Abblockkondensator (100nF) zwischen Vcc und GND schalten. Vielleicht ist das Dein Problem.
okay, das hab ich gemacht: avcc und agnd angeschlossen und auch einen 100nF-Kerko zwischen VCC und GND gelötet - nix gebracht :(
nils schrieb:
> Controller kaputt?
hab zwei Atmega8 hier, beide probiert, bei beiden das gleiche Problem :s
könnten höchstens beide kaputt sein..
Naja bei dem Aufbau: Keine Kondensatoren, keine Pullups und wie es aussieht auch noch nichtmals vollstaendig beschaltet (keine Verbindungen zwischen den Pins selber).
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.
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.
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
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
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.
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!
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 :)
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.
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).
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.
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
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.
Die Dinger laufen schon immer auf 1MHz ab Werk.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.