PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : atmega88 Fusebit Problem, avrdude hängt sich auf.



hunni
30.08.2010, 18:17
Hallo Avr Gemeinde,
ich habe ein ziemlich ungewöhnliches Problem:

Ich habe, da Reichelt kurzzeitig keine Atmega8 hatte, einfach mal ein paar atmega88 gekauft. Nun wollte ich die Fuses auf Externel Takt setzten. Berechnet habe ich das mit dem "AVR Fuse Calculator". Ich das ganze per Avrdude in Linux unter Konsole eingetippt und was passiert: Der Progger schreibt, schreibt und schreibt....... ich dachte am Anfang, biste ja ein geduldiger Mensch, lässte den mal laufen. Naja ne 1/4 Stunde dachte ich mir; so langsam müsste der mal fertig sein. Naja ich schreiben unterbrochen und Atmega88 kaputtgefuset. Das gleiche habe ich mal testweise mit externen Quarz probiert, immer das gleiche Problem.
Manchmal gibt avrdude ne Fehlermeldung raus, vonwegen Divice: 0x9... und ob ich das zu 1f ändern möchte.
Solche Probleme hatte ich vorher noch nie gehabt.
Wenn jemand was damit anfangen kann und weiss wie man das Problem beheben kann, es wäre sehr nett mir das mitzuteilen.

Verwendet habe ich ganz genau diesen µC :
http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=A363;GROUPID=2959;ARTICLE= 68168;START=0;SORT=artnr;OFFSET=16;SID=15uQGuZawQA Q8AAEhAhzs3f6d618ac9d5bac64a9a417a42f54d62

gruß Hunni

Besserwessi
30.08.2010, 21:01
Es wäre interessant zu wissen, was für ein Programmer benutz wird. Das hört sich nämlich sehr nach einem nicht so zuverlässigen Programmer an. Bevor man an den Fuses was ändert sollte man sehen ob der Programmer auch einigermaßen zuverlässig arbeitet. Also lieber erst das Programm überragen und ein Verify, und nur wenn das ohne Problem klappt würde ich mich an die Fuses wagen.

Der Mega88 ist eventuell etwas empfindlicher gegen Störungen als der Mega8. Der neue ist einfach schneller und kann daher auch auf kürzere Störungen reagieren. Außerdem braucht der Mega88 wirklich Spannung an Vcc und Avcc - beim Mega8 waren die intern verbunden.

AVRDude probiert, wenn man es nicht extra abstellt, am Ende die Fuse Einstellungen zu korrigieren. Wenn das nicht klapt, könnte das Programm dabei auch hängen bleiben.

Wenn der µC wegen fascher fuses nicht mehr geht, ist es meistens ein fehlender Takt. Einen externen Takt kann man an XTAL1 anlegen. Auch wenn da doch ein Quarz oder so eingestellt ist, sollte das gehen.

hunni
31.08.2010, 08:09
ich verwende den USBASP von Ulrich Radig. Programme übertragen war bisher kein Problem, auch habe ich VCC und AVCC miteinander Verbunden. Das Problem ist ja, das ich dort ja einen externen Takt dran habe (10 MHZ).

In der Fehlermeldung stand auch irgendetwas von nicht zuverlässigen Progger. Blöd ist leider, das ich das jetzt nicht mehr testen kann, da ich beim auslöten die Platine kaputt gemacht habe und ich erstmal wieder Atmega8 bestellt habe. Zwar habe ich noch n paar Atmega88, aber zurzeit nichts, worauf ich die Packen könnte. Mich interessiert einfach halt nur, woran das liegen könnte, da ich noch nie solche Probleme hatte, ich mein klar habe ich schon ein paar zerfused, aber die konnte man alle wieder mit einem Takt am XTAL wieder zum laufen kriegen. Ich glaube ich werde einfach mal ne Testplatine machen und dann das mit unterschiedlichen proggern probieren.
Werde dann mal euch berichten.
Gruß Hunni

Besserwessi
31.08.2010, 17:25
Wegen der Probleme beim Auslöten sollte man wenn es irgend geht für ICs Sockel verwenden. Dafür das man meistens das IC ohnhin nur einmal reinmacht, tun es auch die billigen.

Mögliche Ursachen für einen unzuverlässigen Programmer sind:
- kalte Lötstellen / lose Lötstellen am Kabel
- zu langes Kabel vom Programmer zur Platine: schon ab 20 cm kann es zu viel sein
- fehlende Abblockkondensatoren (der Mega88 sollte 2 haben)
- zu viel Last auf einer der ISP Leitungen
- Masseschleife über Netzteil für die Schaltung und den PC
- Programmer mit zu steilen Flanken an der SCLK-Leitung
- unzuverlässiger Takt am Target
- Takt am Target zu niedrig, bzw. am Programmer zu hoch

hunni
31.08.2010, 18:51
Ohh das mit den Ablockkondis wusste ich net, das der 2 brauch. Wieviel Farad brauchen die (ich nehme immer 100 nf). Kann natürlich auch sein, das es am Kabel zwischen Progger und mega88 liegt.
# Zum Thema löten: Das war alles SMD ich habe da leider keinen Sockel ;) und kalte Lötstellen: da habe ich alle kontrolliert

Ich werde einfach noch mal ne Testplatine bauen, dann kann ich euch die genaue Fehlermeldung sagen, oder noch besser, ich mache die platine noch mal und löte nur den Prozessor drauf
Gruß Hunni

Besserwessi
31.08.2010, 20:59
Man sollte schon für jedes GND-VCC Paar einen extra Kondensator haben. 100 nF sind üblich, 10 nF würden aber wohl auch noch reichen, wenn etwas weiter ein Elko oder ähnliches ist. Meistens geht es aber auch mit nur einem Kondensator, oder sogar ganz ohne - es ist dann aber weniger zuverlässig und man verursacht wahrscheinlich mehr Funkstörungen.

Bei SMD erübrigt sich der Sockel in der Regel (außer PLCC). Und auslöten ist da auch nicht ganz einfach, wenn Chip und Platine heile bleiben sollen.

hunni
01.09.2010, 11:24
Mhh das Problem:Auslöten ja! Chip heile? Ja? Platine heile? NEIN!
;)