Forum: Mikrocontroller und Digitale Elektronik Mega48 prescaler auf 125kHz gestellt und Programieren geht nicht mehr


von Christian S. (roehrenvorheizer)


Lesenswert?

Hallo,

gerade habe ich am Mega48 die Prescaler-Bits verändert. Zunächst so, daß 
aus 8 MHz 4 Mhz oder 1 Mhz werden. Da konnte man nur beobachten, daß das 
Programm langsamer läuft, wie erwartet. Nur seit die Einstellung im 
Programm durch 64 lautet, ist keinerelei Zugriff zum Programmieren des 
Flashs über das SPI-Interface möglich. Nur Resetten geht noch. Nach wie 
vor läuft das zuletzt heruntergeladene Programm schön in Zeitlupe im M48 
ab...

Ich habe bereits in der Ponyprog-Initialisierungsdatei die Parameter auf 
langsameres Verhalten gestellt durch Erhöhung der Zahlen, ohne Erfolg.

Weiß jemand Rat?


mit freundlichem Gruß

von Michael U. (amiga)


Lesenswert?

Hallo,

Ponyporg ist bei mir lange her...
Du muß zumindest mit dem Programmiertakt auf weniger als 1/4 der 
AVR-Taktes kommen, also irgendwo unter 30kHz.

Gruß aus Berlin
Michael

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


Lesenswert?

Christian S. schrieb:
> Weiß jemand Rat?

Bei den meisten Programmern kann man per Kommandozeile oder GUI die ISP 
Frequenz soweit herunterdrehen, das selbst mit 128kHz getaktete MC, bei 
denen auch noch die CLKDIV8 Fuse gesetzt ist (resultierend in 16kHz MC 
Takt) wieder programmiert werden können.
Mein AVRISP MkII kann dazu im Dialog von AVR Studio händisch auf z.B. 
1kHz ISP Frequenz gesetzt werden - die Auswahlvorschläge erlauben das 
allerdings nicht, muss per Hand eingetragen werden.

Das geht sicher auch in PonyProg.

: Bearbeitet durch User
von Christian S. (roehrenvorheizer)


Lesenswert?

Hallo,

schon mal danke für die Antworten. Dann liege ich mit meiner 
Einschätzung richtig. Ich muß "nur" das Programmier-Programm langsam 
genug bekommen.


Mit einem solchen Fehler habe ich gar nicht gerechnet, als ich das 
umstellte, denn die Einstellung wird ja zu Beginn von "main" gemacht 
ausgehend von 8 MHz. Also müßte doch bei Reset der Takt wieder auf 8MHz 
sein. Ist aber anscheinend nicht so.

Vielleicht finde ich in AVRdude die richtige Einstellung zur 
Verlangsamung. Dort habe ich noch nicht geschaut. In Ponyprog.ini kann 
man etliches einstellen, nur die Wirkung ist nicht direkt ersichtlich.

mit freundlichem Gruß

von Peter D. (peda)


Lesenswert?

Christian S. schrieb:
> Also müßte doch bei Reset der Takt wieder auf 8MHz
> sein. Ist aber anscheinend nicht so.

Ja, das CLKPR wird bei einem Reset nicht geändert. Ist zwar nicht 
dokumentiert, aber logisch. Sonst würde ja ein Reset die Voreinstellung 
durch die CKDIV8-Fuse wieder zurück setzen. Das CLKPR wird daher nur bei 
einem Power-On entsprechend der CKDIV8-Fuse rückgesetzt.

Für einen langsamen Takt würde ich daher ein Delay 5s bis zur 
Umschaltung machen. Dann kann man den Programmer vorher starten.

von roehrenvorheizer (Gast)


Lesenswert?

Hallo,

so, mittels AVRDude habe ich es wieder hin bekommen. Der M48 ist wieder 
normal benutzbar. Hier die notwendigen Befehle:


Erster Versuch war ohne Verlangsamung und funktionierte nicht.

Zweiter Versuch war mit -i 1000    also mit ISP clock delay und 1000 µs 
Verzögerung

drittens Löschen



C:\Dokumente und Einstellungen\erster\Eigene 
Dateien\AVRDUDE_Fuses_setzen>
avrdude -p m48 -c stk200 -u -t

avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.


C:\Dokumente und Einstellungen\erster\Eigene 
Dateien\AVRDUDE_Fuses_setzen>
avrdude -p m48 -c stk200 -u -t -i 1000

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.08s

avrdude: Device signature = 0x1e9205
avrdude>



Löschen des Flash mit verlangsamtem ISP-Takt:



C:\Dokumente und Einstellungen\erster\Eigene 
Dateien\AVRDUDE_Fuses_setzen>
avrdude -p m48 -c stk200 -u -t -i 1000 -e

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.08s

avrdude: Device signature = 0x1e9205
avrdude: erasing chip
avrdude>


Zum Glück ging das so einfach!

mit freundlichem Gruß

von S. Landolt (Gast)


Lesenswert?

Peter Dannegger schrieb:
> ... logisch ...

Das verstehe ich nicht, weshalb kann der Controller nicht bei einem 
Reset CLKPR gemäß CKDIV8 vorbesetzen, also mit /1 oder /8?

von Christian S. (roehrenvorheizer)


Lesenswert?

Danke für den Hinweis.  ....nicht dokumentiert....

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.