Guten Abend! Seit mehreren Wochen versuche ich verzweifelt, zwei atmega8 (tqfp auf Adapterplatine gelötet) zu flashen, doch ich scheitere jedes mal beim Programmieren. Also dachte ich, dass meine Lötkünste vielleicht keine SMD Chips einschließen, also auf zu Conrad und drei atmega8 im dil28 gehäuse gekauft. Mit einem probiert -> selbes Problem :( Ein paar Tage zuvor habe ich mit dem gleichen USB Lab einen attiny2313 erfolgreich geflasht, doch der hatte zu wenige Pins, um die zweite Farbe der Matrix zu steuern. Das Programm lief am tiny super, also habe ich ein neues Projekt im AVR Studio erstellt, das Programm um eine weitere Farbe erweitert und kompiliert -> kein Fehler :) Auf den Button "Con", den AVR-ISP-mkII ausgewählt und mal testweise die Signatur ausgelesen -> "Signature matches selected device" :) In den Fuse Settings den Quarz auf 8MHz umgestellt -> auch kein Problem Die anderen Fuses konnten auch problemlos gelesen werden. Auf den "Program" Tab geklickt, dann auf "Erase Device" -> Kein Problem Auf "..." in der Gruppe "Flash" und dann die richtige .hex Datei ausgewählt, dann auf Program. ==> Dies dauert einige Sekunden und endet dann mit "Programming FLASH ..... FAILED!" "Leaving ...... OK!" Und nebenbei poppt auch noch die Warnmeldung "ISP Mode Error" auf, die mir sagt, dass ich die ISP Frequenz auf weniger als 1/4 des Taktes stellen soll. Das sind momentan 8MHz, also sind 125kHz ISP Takt doch auch wenig genug. Ich habe bereits einen ähnlichen Thread gefunden (Beitrag "Atmega8-Programmierung mit AVR USB Lab funktioniert nicht"), doch auch das hilft mir nicht weiter, da die STK500v2 Firmware von meinem AVR Studio nicht erkannt wird. (Kann auch am Windows 7 x64 liegen). Die Firmwares spiele ich über einen Linux (Ubuntu) PC drauf, weil mir das mit der Treibersignatur unter Windows zu umständlich wäre. Ich dachte auch schon, dass vielleicht die rundum-Hardware stört, doch erstens ging es mit dem tiny ja auch und zweitens habe ich alles abgehängt (Steckbrett) und trotzdem kann ich den Prozessor noch nicht flashen. Die Pinbelegung habe ich momentan so: ______________ | \ / | RESET -| 1 --- 28 |- -| 2 27 |- -| 3 26 |- -| 4 25 |- -| 5 24 |- -| 6 23 |- +5V -| 7 22 |- GND GND -| 8 21 |- -| 9 20 |- +5V -|10 19 |- SCK -|11 18 |- MISO -|12 17 |- MOSI -|13 16 |- -|14 15 |- |_____________| Wäre dankbar, wenn jemand einen Tipp für mich hätte. MfG Michael
Ist die Standardbeschaltung (Abblockkondensatoren, Widerstand am Reset) vorhanden? Ist ein externer Quarz mit seinen Kondensatoren angeschlossen? Mit diesem USB Lab habe ich keine Erfahrung, wird über den auch die Spannungsversorgung hergestellt beim programmieren?
Wenn die Signatur lesbar ist, ist zuerst einmal die ISP-Schnittstelle OK. Dann kann man als Nächstes die Fuses und die security-bits lesen. Haben die wirklich alle Werte, die das Programmieren erlauben/erfordert ? Dann, als nächstes, ein Primitivprogramm auf den Kontroller schreiben: Zum Beispiel: start: ldi r16,0xff ;r16 = ff out ddrb,r16 :port b als Ausgänge Schleife: inc r16 out portb,r16 rjmp Schleife akzeptiert der Kontroller dieses Programm ? Wenn ja, liefert er an port b Rechteckspannungen, Frequenz von bit zu bit um den Faktor 2 ansteigend. die sind zwar nur mit dem Scope zu kontrollieren,fürs Multimeter kommmt ja U/2 raus Eine kleine Falle ist, dass beim Assemblieren ein Fehler erkannt wird und gar kein hex-file entsteht. Das System tut zwar so als ob es programmieren würde und meldet "ISP...." obwohl der eigentliche Fehler schon beim erarbeiten des .hex- file stattfand.
Johannes M. schrieb: > Ist die Standardbeschaltung (Abblockkondensatoren, Widerstand am Reset) > vorhanden? > Ist ein externer Quarz mit seinen Kondensatoren angeschlossen? > Mit diesem USB Lab habe ich keine Erfahrung, wird über den auch die > Spannungsversorgung hergestellt beim programmieren? Keine Abblockkondensatoren, 1k5 Widerstand am Reset (Der ist zwar recht klein, sollte sich aber problemlos vom Programmer auf Masse ziehen lassen, funktioniert auf jeden Fall beim tiny) Kein externer Quarz, hab nur die Fuse vom Clock auf intern 8MHz 64ms umgestellt. Nein, auf der Platine wäre zwar ein Jumper, um das zu aktivieren, aber ich versorge die Schaltung über die 5V vom USB Port. > Haben die wirklich alle Werte, die das Programmieren erlauben/erfordert ? Anbei ein Screenshot der Fuse-Bits > Dann, als nächstes, ein Primitivprogramm auf den Kontroller schreiben: Hab ich versucht, aber beim kompilieren gab es keine Fehler und das Hex-File wurde erstellt, doch beim programmieren ging die grüne LED aus (Was sich auch beim lesen oder schreiben der Fuse-Bits etc. tut) und dann kam die Fehlermeldung wieder und die grüne LED ging wieder an. Interessanter weise kommen am PortB trotzdem 2,3 - 2,5V raus. Seltsam, oder? Klicke ich wieder auf "Erase Device", dann liegen nur nich 0,2V an. Das .hex-File wurde also erstellt und dürfte auch den Weg auf den IC gefunden haben, aber seltsamer Weise gibt das AVR-Studio trotzdem einen Fehler aus. Das Matrix-Programm läuft aber dennoch nicht. Vielleicht mal das alte .hex File löschen und nochmal probieren. Auf jeden Fall schon mal Danke. Wenn noch jemand weis, wo der Fehler liegen könnte... MfG Michael
Wenn die Anschlüsse 2,3 .. 2,5V zeigen,lässt das schließen, dass der Kontroller das Primitivprogramm ausführt und daher an den Bits von port b toggelt. Gerade wenn nach Programmieren auch verify gemacht wird, wirds dann ganz rätselhaft. Dann könnte es noch an Einbrüchen der Betriebsspannung liegen: Stützkondensatoren und Leitungsführung überprüfen. oder auch an Störsignalen an reset: mit 0,1uF und externem pullup beschalten, damit reset weniger empfindlich wird.
Habe wie bereits erwähnt einen 1,5k Ohm Widerstand und jetzt auch noch einen 100nF Folienkondensator zwischen Reset und 5V gehängt. Gleicher Fehler. EDIT: Auch ein 100nF Abblockkondensator zwischen pin 7 und 8 sind wirkungslos.
Hatte jetzt mal Zeit zu testen, ob die Spannung abfällt und nein, der USB-Port liefert dann während dem Programmieren statt 5,09V gleich 5,11V, also leider geht die Fehlersuche weiter. Hat denn sonst niemand eine Idee? Sonst keiner ein USB-Lab und das gleiche Problem?
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.