AtMega88 mit 128khz ausgesperrt.

Gast #1139825
Lesenswert?

Habe meinen Atmega88 leider verfused und auf den 128khz osci gestellt 
(der 8er prescaler war auch noch an). Nun läuft er also mit 16khz und 
mein AVR910 mit AVRDUDE ist leider nicht mehr in der lage ihn zu 
beschreiben.
Das Problem gab es hier anscheinend schon öffters. Wie habt ihr es 
geschafft die Fuses wieder umzustellen bzw den AVRDUDE langsamer laufen 
zu lassen?
#1139915
Lesenswert?

Hast du nen Programmer, mit dem du dein AVR910 umprogrammieren kannst?
Das Makro "PulseSCK" sorgt für den Takt:
1
.macro  pulse_SCK      ; pulse SCK
2
  sbi  PORTB,SCK
3
  ldi  temp2,(XTAL/750+1)  ; had to slow down for ATTiny2313 (internal clock) default was (XTAL/1500+1)  
4
m0:  dec  temp2
5
  brne  m0
6
  cbi  PORTB,SCK
7
  ldi  temp2,(XTAL/1500+1)  ; had to slow down for ATTiny2313 (internal clock) default was (XTAL/3000+1)  
8
m1:  dec  temp2
9
  brne  m1
10
.endm

Das wären etwa 90 kHz wenn ich das richtig sehe. Da dein AVR auf 9 kHz 
läuft, musst du am besten auf 1 kHz mit der Programmiergeschwindigkeit 
runter, zur Zeit ist der temp2 Wert bei nem 7.373 MHz Quarz auf 10 bzw. 
20, du kämst maximal auf 255 wenn du nur den Wait Wert änderst, das 
reicht nicht (7.373 MHz / (512 * 3) = 4.8 kHz. Das dürfte immernoch zu 
schnell sein.
Also musst du die Wait-Schleife noch vergrößern, noch ne 2. drumherum 
basteln.

Die einfachste Alternative dürfte ein kleiner 
Parallelport-2-Widerstands-Programmierer sein. Den kannst du per 
Software auch einfach auf 1 kHz runterstellen...

Matthias

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren