Forum: Mikrocontroller und Digitale Elektronik ATMega32 tot programmiert


von Peter (Gast)


Lesenswert?

Ich habe hier ein merkwürdiges Problem. Der ATMega32 wird ja von Werk 
geliefert mit den Clockfuses programmiert für 1MHz internen Takt. Ich 
habe in der Schaltung einen externen Clockeingang, welche von einem 
anderen ATMega128 kommt der auch läuft.
Jetzt habe ich alle Clockfuses auf 0 programmiert (Externer Takt), und 
der ATMega32 ist tot, man kann auf ihn nicht mehr zugreifen per 
Programmer. Takt liegt definitiv an.
Kennt jemand dieses Problem

von Peter (Gast)


Lesenswert?

Wollte mal Entwarnung geben, wie üblich Dummheit des Anwenders. Der 
taktgebende ATMega hatte die CKOPT Fuse nicht gesetzt, obwohl sie 
eigentkich die ganze Zeit gesetzt war, und damit keinen full Swing Takt.
Nach Setzen der Fuse war alles OK

von Peter (Gast)


Lesenswert?

Auch auf die Gefahr hin langweilig zu werden so einfach ist es nicht. 
Schreibfehler, der taktgebende ist ein ATMega2561. Die Fuse für full 
Swing war gesetzt, das Signal hat full Swing, aber der ATMega32 mag es 
nicht.
Beim ATMega128 gab es nie Probleme das Clocksignal zu nutzen.

von Peter (Gast)


Lesenswert?

Um diesen Monolog mal fortzuführen, ich habe jetzt beim ATMega32 die 
Fuses so programmiert als würde ein Quartz dranhängen, jetzt geht es.
Das aus dem ATMega2561 rauskommende Signal war offenbar nicht gut genug.

von Sonic (Gast)


Lesenswert?

Um diesen Monolog mal zu unterbrechen,
>Das aus dem ATMega2561 rauskommende Signal war offenbar nicht gut genug.
Kann ja fast nicht sein. Wie hoch ist denn die Frequenz? Und wie hoch 
die ISP-Frequenz? Und wenn Fuses trotz richtiger Einstellung in der 
Software nicht richtig gesetzt werden tippe ich mal auf Ponyprog o.Ä.
In diesem Fall kann ich nur zum STK500 oder AVRISP raten.
Ansonsten: ISP-Frequenz muss kleiner 1/4 der Taktfrequenz sein!

von Peter (Gast)


Lesenswert?

Ganz so einfach ist es nicht. Die Clock des ATMega2561 ist 16MHz. Man 
kann am Oszilloskop sehen, das sich je nach Fuse die Amplitude ändert. 
Der ATMega2561 programmiert über SPI(125 KHz) den ATMega32.
Sobald ich dem ATMega32 ein externes Taktsignal gebe, kann ich die Fuses 
auslesen. Und die sind richtig. Wenn ich nun über Fuses sage da hängt 
ein Quartz dran, geht es. Wenn ich den internen Takt nutze, geht es 
auch. Es geht nur nicht mit dem vom ATMega2561 erzeugten Takt.
Das gleiche Problem habe ich übrigens auch mit ATMega128 und ATMega8, 
hier ist das gleiche.
Da das Projekt fertigwerden muss, habe ich keine Zeit 
Grundlagenforschung zu betreiben. Ein paar hundert von den ATMega128 / 
ATMega8 Platinen laufen seit Monaten ohne Probleme mit der pseudo Quartz 
Programmierung.

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.