Forum: Mikrocontroller und Digitale Elektronik Taktproblem im USB AVR Lab / AVR ISP Mode


von Thomas F. (tomfy)


Lesenswert?

Hallo,

ich hätte da mal eine Frage. Ich benutzte seit Kurzem das USB AVR Lab 
mit dem Programmierer im AVRISP Mode. Geniales System! Alles klappt 
wunderbar bis auf ein kleines Problem.

Ich versuche, einen ATTiny25 zu programmieren, der am 128kHz Watchdog 
Oszillator läuft. Daher muss ich einen recht niedrigen ISP-Takt 
einstellen. Im AVR-Studio habe ich die Wahl zwischen 51,1 Hz, 100 Hz, 
6,48kHz und dann den höheren Taktraten ab 125kHz, die hier natürlich 
nicht funktionieren.

Mit 6,48kHz kann ich z.B. Fuses lesen und schreiben oder die Signatur 
lesen. Prima.

Aber den Flash-Speicher kann ich nicht schreiben, denn das AVR-Studio 
meldet, dass die Takt-Rate mindestens 5kHz sein muss. Tatsächlich lese 
ich die ISP-Frequenz als 0,000kHz! Das ist der Fall für alle drei 
niedrigeren Frequenzen. Bei Auswahl von 125kHz kann ich diese Frequenz 
korrekt schreiben und lesen.

Ist das ein Bug im AVR-Studio? Oder in der Firmware vom USB AVR Lab? Ich 
verwende Version 4.19. Oder hat jemand sonst einen Hinweis für mich?

Über einen Umweg geht es übrigens: Internen 8MHz-Oszillator über die 
Fuses setzen, dann Flash programmieren und anschliessend Fuses wieder 
zurück auf 128khz WD Oszillator.

von [Frank] (Gast)


Lesenswert?

Hallo Thomas,

Das liegt daran, das als Rückgabewert vom USBLAB beim Takt <=6.48KHz 
immer 0xFE zurückgegeben wird, was eben vom AVR-Studio als 0Hz 
interpretiert wird. Die Tabelle habe ich mal 2009 erstellt.

USBLAB-MKII
AVR-Studio  Readback:
8MHz  0x00  0x01  4MHz
4MHz  0x01  0x01  4MHz
2MHz  0x02  0x02  2MHz
1MHz  0x03  0x03  1MHz
500KHz  0x04  0x04  500KHz
250KHz  0x05  0x05  250KHz
125Khz  0x06  0x06  125KHz
6.48KHz  0x3E  0xFE  0Hz
100Hz  0x95  0xFE  0Hz
51.1Hz  0xA3  0xFE  0Hz

Die STK500 Firmware gibt auch einen falschen Wert, nämlich 0x3E zurück, 
anstatt 0x3B. 0x3E entspricht 4.889KHz und AVR-Studio meckert, das die 
ISP-Frequenz mindestens 5KHz betragen muss.

Wenn die Rückgabewerte gepatcht werden klappts auch beim 128KHz Clock.

Frank

von Thomas F. (tomfy)


Lesenswert?

Ha! Genau das ist es. Danke für die Info. Ich dachte schon, ich mache 
was falsch oder so. Auch das mit der STK500 hatte ich genau so.

Jetzt habe ich as Forum vorwärts und rückwärts durchsucht, aber nichts 
zu deinem Patch gefunden.

Hast Du direkt das Hex-File gepatcht?

von [Frank] (Gast)


Lesenswert?

Ja, ich habe die Firmware mit einem anderen Programmer ausgelesen und 
dann gepatcht.

MKII-Firmware
nach 8EEF 09C0 86E0 07C0 suchen
und  8EE3 ersetzen

STK500V2-Firmware
nach 8EE3 03C0 82E0 01C0 suchen
und  8BE3 ersetzen

Frank

von Thomas F. (tomfy)


Lesenswert?

Super! Das hat geklappt. Jetzt kann ich meinen ATTiny auch mit 6,48kHz 
programmieren. Danke für die Unterstützung.

Jetzt habe ich nur noch eine Frage: Wie kommt man auf sowas? Dass man 
das falsch Byte für die Geschwindigkeit findet, kann ich mir ja noch 
vorstellen. Aber in der Firmware die Stelle zu finden, die man patchen 
muss?...

Idealerweise würde das jetzt auch in die Original-Firmeware übernommen 
werden. Aber ich vermute, da gibt es beim Autor kein Interesse (mehr)?

von stevven (Gast)


Lesenswert?

Der Autor , glaube Christian Ulrich, schwirrt hier immer wieder im Forum 
herum. Vielleicht weiß er ja gar nicht von dem Problem? Als ich mit dem 
programmer mal n Problem hatte, wurde mir schon zeitnah geholfen...

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.