Forum: Mikrocontroller und Digitale Elektronik ATMEGA168 lässt sich nicht mehr flashen


von Lukas H. (lukas1)


Lesenswert?

Hallo!

Hab ein Problem mit dem Flashen meines ATMEGA168.
Ich hab einen neuen ATMEGA168 eingelötet um zu schauen ob der alte 
defekt war.
Nun wollte ich eben mein bereits funktionierendes Programm wieder drauf 
spielen. Ging am Anfang überhaupt nicht.
Dann stellte ich alle mögliche Werte um wie ISP Frequenz und Clock 
generator.
Und von ATMEGA 168 auf ATMEGA168A.
Nach der Umstellung auf ATMEGA168A konnte ich auf einmal die SIgnature 
auslesen was davor nicht ging.
Danach wollte ich programmieren ist wieder nichts gegangen.

Hab dann wieder alles mögliche ausprobiert, bis ich mein Programm drauf 
spielen konnte (was auch normal lief). Bekam aber direkt danach einen 
Fehleraufruf, dass Frequenz usw. nicht passt.

Jetzt geht gar nichts mehr. Hat wer eine Ahnung was ich noch 
ausprobieren kann ?

LG Lukas

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Lukas Hub schrieb:
> Dann stellte ich alle mögliche Werte um wie ISP Frequenz und Clock
> generator.

Ja, super... Da wir nichts von dem wissen, was dein Programmer ist, wie 
hoch die MC Clock ist, ob du einen internen oder externen Oszillator 
benutzt oder gar einen Quarz, kann ich dir im Moment nur antworten:
* CLKDIV8 vllt. noch gesetzt und ISP Frequenz zu hoch?
* Vcc ordentlich abgeblockt am MC und auch AVcc angeschlossen?

von Peter L. (luidoltp)


Lesenswert?

Hallo Lukas,

ohne die Details zu kennen, kann man nur ins Blaue raten ...

Gehe einfach mal diese Liste durch:
http://www.mikrocontroller.net/articles/AVR_Checkliste

Liebe Grüße,
Lui

von Lukas H. (lukas1)


Lesenswert?

Habe bei den FUses einen internen Clock von 8MHz.
Programmer ist das STK500.

CLKDIV8 kann ich nicht verändern da ich wie gesagt keinen eingriff in 
den Programmmodus habe.

ISP Frequenz kann nicht zu hoch sein. Habe schon eine niedrigere 
ausprobiert.
Funktioniert nicht.

Hardwaremäßig ist alles korrekt.

LG Lukas

von Peter L. (luidoltp)


Lesenswert?

Hi Lukas,

> Habe bei den FUses einen internen Clock von 8MHz.
Kannst du die Fuses auslesen?

> Programmer ist das STK500.
Schon getestet ob du einen anderen µC damit programieren kannst?

> Hardwaremäßig ist alles korrekt.
Bist du dir da wirklich 100%ig sicher?! Es ist recht unwahrscheinlich, 
dass der µC defekt ist.

Was ich machen würde:
- Nochmals optisch prüfen ob du vielleicht doch irgendwo eine Lötbrücke 
hast.
- Die Reset-Leitung mit dem Ohmmeter auf Kurzschluss nach GND prüfen
- Die Verbindungen zwischen STK500 und den Pins des ATMEGA168 mit dem 
Durchgangsprüfer / Ohmmeter messen (vielleicht ist ein Kabel defekt).
- Die Signale mit einem Oszi (sofern du eines hast) prüfen. Damit meine 
ich: zumindest einmal die Flanken der Reset-Leitung anschauen.

Wenn ich dann noch nix gefunden hätte würde ich weiters:
- Den ATMEGA168 auslöten und ihn direkt im STK500 programmieren 
versuchen.

Liebe Grüße,
Lui

von Lukas H. (lukas1)


Lesenswert?

Hallo!

Nein kann die Fuses nicht auslesen.

Ja also die Sache ist ja so: Ich habe einen ATMEGA168 in meiner Platine 
eingelötet ghabt und mit dem hat es wunderbar funktioniert über das 
STK500 zu programmieren.

War mir aber nicht sicher ob der nicht vielleicht kaputt ist, wegen 
eines Softwarefehlers und wollte das ausschließen.
Deswegen habe ich einen neuen ATMEGA168 eingelötet.
Der hat dann nach etwaigen Einstellungen an der ISP Frequenz (und bei 
Auswahl eines ATMEGA168A obwohl es ein ATMEGA168 ist) sich  1 mal 
programmieren lassen.

Direkt nach diesem Programm ist gar nichts mehr gegangen. (Es ist jetzt 
das auch das richtige Programm oben, muss es aber ändern und wieder 
drauf programmieren). Kann nichts mehr auslesen und schreiben außer ISP 
Frequenz und Spannungen.

Nachdem Hardwaremäßig nichts geändert wurde außer der Chip ausgetauscht, 
zweifel ich daran dass es daran liegt (denn es hat hardwaremäßig schon 
alles funktioniert). Lötbrücken sind in Ordnung.

LG Lukas

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Lukas Hub schrieb:
> Habe bei den FUses einen internen Clock von 8MHz.
> Programmer ist das STK500.
>
> CLKDIV8 kann ich nicht verändern da ich wie gesagt keinen eingriff in
> den Programmmodus habe.

Das heißt ja wohl, dass Dein Controller mit 1>Mhz läuft. Die 
ISP-Frequenz darf dann also nur kleiner als 250kHz sein, also 
nächstniedrige Einstellung ist 125kHz.

Hast Du den kompletten ISP-Port mit auf der anderen Platine, also auch 
VTarget und Masse? Oder sitzt der Controller im STK500? Wenn ja, ist er 
auch in der richtigen Fassung?

von Peter L. (luidoltp)


Lesenswert?

Hi Lukas,

Lukas Hub schrieb:
> Es ist jetzt
> das auch das richtige Programm oben, muss es aber ändern und wieder
> drauf programmieren

nur zum Verständnis: Bedeutet das jetzt, dass dein µC ganz normal 
arbeitet (also das tut was er soll) und nur nicht programmiert werden 
kann?!

Liebe Grüße,
Lui

von F. F. (foldi)


Lesenswert?

Hallo Lukas,

die Idee, den auf dem SKT500 zu programmieren ist schon mal ganz gut, 
aber lösche die µC'S doch mal mit "High Voltage"!
Hat bei mir sehr gut funktioniert.
Ich hatte auch schon mal die Fuses mit Atmel Studio 6 richtig 
eingestellt (AVRMKII) und trotzdem waren sie falsch. Das ist schon 
einige Male passiert und ich bin mir sicher alles richtig eingestellt zu 
haben. Mit HV einen auf die Mütze und dann laufen die wieder.
Seit dem schreib ich die Fuses lieber gleich unten rein.

Gruß
Frank

von Lukas Hub (Gast)


Lesenswert?

Ja kompletter ISP Port ( 10 pin) . Wie gesagt ich hab daran nichts 
geändert an der Hardware und es hat ja alles schon super funktioniert. 
Wollte jetzt eben nur durch einlöten eines neuen chips ausschließen dass 
der alte chip schuld war an meinem I2C fehler.

Genau der neue eingelötete arbeitet ganz normal da ich es einmal 
geschafft habe etwas drauf zu programmieren aber es blieb eben bei dem 
einen mal. Jetzt gehts nimma :-(

Frank:
Meinst du einfach die spannung aufs höchstmögliche (6 V denk ich?!) 
einstellen im studio 4 und erasen? Also trotzdem über isp port?
Werd ich auf jeden fall probieren wenn du das meintest wie ichs 
verstanden hab.

LG
Lukas

von Spess53 (Gast)


Lesenswert?

Hi

>Meinst du einfach die spannung aufs höchstmögliche (6 V denk ich?!)
>einstellen im studio 4 und erasen? Also trotzdem über isp port?
>Werd ich auf jeden fall probieren wenn du das meintest wie ichs
>verstanden hab.

Nein . Lies dir bitte in der STK500-Hilfe das Kapitel

STK500 User's Guide->Hardware Description->High Voltage Programming

und

STK500 User's Guide->Hardware Description->Parallel High Voltage 
Programming

genau durch.

MfG Spess

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Was hast Du noch an die ISP-Pins in Deiner Schaltung angeschlossen? Also 
an MOSI, MISO und SCK?

von Lukas H. (lukas1)


Lesenswert?

Hallo !

So habs jez geschafft, dass sich mein ATMEGA168 normal flashen lässt.

Was ich geändert habe:

Im STK500 war eine Brücke beim BSEL2 Jumper gelegt die mir nicht 
aufgefallen ist( ich auch selber nicht gemacht hab, habs von wem 
übernommen). Hab die dann mal rausgezogen und siehe da er lässt sich 
flashen.

Hab dann den BSEL2 Jumper wieder gebrückt und funktioniert noch immer.

LG
Lukas

von spess53 (Gast)


Lesenswert?

Hi

>Hab dann den BSEL2 Jumper wieder gebrückt und funktioniert noch immer.

Den BSEL-Jumper brauchst du nur für Parallelprogrammierung. Normal ist 
der offen. Auf der Unterseite des STK findest du die Bedeutung und 
Defaultbelegung der Jumper.

MfG Spess

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.