Atmega644 lässt sich nicht mehr ansprechen.

OP #2632681
Lesenswert?

Hi Leute,

ich hab mal wieder ein Problem beim Programmieren eines AVR. Ich möchte 
ein kleines Programm auf einen Atmega644 flashen (mit einem mySmartUSB 
light). Zuerst hatte ich den uC mit dem internen Takt am laufen. Da hat 
noch alles funktioniert. Jetzt wollte ich die fuses so setzen, dass der 
uC mit dem extertn angeschlossenen 4MHz Takt läuft und hab die fuses wie 
folgt gesetzt:
1
lfuse = 0xfd
2
hfuse = 0xd9
3
efuse = 0xff

Danach hab ich die fuses zur Kontrolle mit avrdude ausgelesen, was auch 
noch funktioniert hat. Seitdem kann ich auf den uC aber nicht mehr 
zugreifen. Ich bekomme immer folgende Fehlermeldung:
1
avrdude: stk500_2_ReceiveMessage(): timeout

Wo könnte da nun das Problem liegen? Hab ich mir den AVR verfused? Was 
mich etwas irritiert ist, dass ich unmittelbar nach dem setzen der fuses 
diese noch einmal auslesen konnte.

lg much

PS: Das Programm das im flash liegt läuft nach wie vor.
(Firma: fritzler-avr.de) #2632713
Lesenswert?

>Michael N. schrieb:
>> Wo könnte da nun das Problem liegen?

>Dass der ISP Takt für 4MHz zu hoch ist.

Der 644 läuft im Auslieferungszustand auf 8MHz/8 -> 1MHz.
Wenn er den ISP Takt nach dem fusen nicht hochgeschraubt hat kanns daran 
nicht liegen.

Die Fuses sehen gut aus, miss doch ma ob das ISP Signal noch ankommt und 
der Quarz schwingt.
OP #2632864
Lesenswert?

MWS schrieb:
> Wo steht im Post des TO etwas von Auslieferungszustand ?

Sorry, das hatte ich vergessen zu erwähnen. Das JTAGEN bit war bereits 
von mir verändert. Alle anderen bits - also auch jene die den Takt 
betreffen - waren noch wie im Auslieferungszustand.

Bzgl. ISP Takt: Der Programmer hat eigentlich einen Auto Detect und 
sollte daher automatisch den richtigen Takt verwenden. Daher denke ich 
nicht, dass es daran liegt.

Ob das ISP Signal ankommt werd ich mal nachmessen. Ich hab allerdings 
kein Oszi um zu überprüfen ob der Quarz schwingt. Gibt es da 
irgendwelche anderen Methoden wie man das überprüfen kann? Kann man das 
evtl. auch mit dem Multimeter machen? Laut Beschreibung kann mein 
Multimeter bis zu 10MHz messen. Allerdings bezweifle ich, dass man damit 
eine Quarzfrequenz messen kann.

lg much
#2632926
Lesenswert?

hi,
du kannst einen extern erzeugten Takt von ca. 100KHz an den AVR anlegen, 
dann ist's erstmal egal, wie die Fuses gesetzt sind. Die Kommunikation 
läuft dann zwar grottenlahm, aber dafür sehr betriebssicher.
Nach Setzen der Fuses in den Originalzustand solltest du ihn dann wieder 
'normal ansprechen' können.
Kannst den Takt auch höher wählen, aber man muss vermeiden, dass der 
Quarz in irgendeiner Weise drauf reagiert, sonst bekommt man lustige 
Schwingszenarien, die für nix gut sind, deswegen 100KHz, erprobt und 
stabil bei jedem Quarz außer 31,5KHz.
Grüssens, harry
(Firma: fritzler-avr.de) #2633177
Lesenswert?

Hm auto detect, dann kanns vielleicht doch am Takt liegen ;)
Gibts ne Möglichkeit den ISP Takt manuell auf das niedrigst mögliche zu 
schalten?

Wenn kein Oszi vorhanden ist, kannste wenigstens mitm Multimeter messen 
von den Pins des AVR zum Quarz ne elektrische Verbindung herscht und zum 
ISP.
die Kondis sind aber am Quarz?
OP #2633267
Lesenswert?

Hi,

ich hab das Ding jetzt wieder ansprechen können. Hab die Platine 
ausgebaut, alle Steckverbinder die nicht umbedingt benötigt werden 
gelöst und das ganze am Schreibtisch noch mal aufgebaut. Daraufhin hats 
sofort funktioniert. Die Ursache für den Fehler ist noch unbekannt, wird 
sich jetzt aber wohl finden lassen.

vielen Dank für eure Beiträge.

PS: Vielleicht lags ja auch nur daran, dass der PC (Windows) beim Umzug 
zum Schreibtisch neu gestartet wurde ;).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren