Forum: Mikrocontroller und Digitale Elektronik Atmega644 lässt sich nicht mehr ansprechen.


von Michael N. (much)


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.

von MWS (Gast)


Lesenswert?

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

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

von Mw E. (Firma: fritzler-avr.de) (fritzler)


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.

von MWS (Gast)


Lesenswert?

Martin Wende schrieb:
> Der 644 läuft im Auslieferungszustand auf 8MHz/8 -> 1MHz.

Wo steht im Post des TO etwas von Auslieferungszustand ?

von Michael N. (much)


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

von Harry U. (harryup)


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

von Bernd xFF (Gast)


Lesenswert?

Harry Up schrieb:
> sonst bekommt man lustige
>
> Schwingszenarien, die für nix gut sind, deswegen 100KHz, erprobt und
> stabil bei jedem Quarz außer 31,5KHz.

Kannst du deine Erkenntnisse bezügl. 31,5kHz mit uns teilen?

von Harry U. (harryup)


Lesenswert?

jepp,
das Ding wird heiss, war mal ein Versehen. Ob's schadet, weiss ich 
nicht, aber ich denke, der soll das nicht werden.
Die MHz Dinger reagieren nicht auf den externen Takt.
Grüssens, harry

von Mw E. (Firma: fritzler-avr.de) (fritzler)


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?

von Michael N. (much)


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 ;).

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
Noch kein Account? Hier anmelden.