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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Christian S. (roehrenvorheizer)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Danke für den Hinweis.  ....nicht dokumentiert....

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.