Forum: Mikrocontroller und Digitale Elektronik STK500v2 128kHz ISP 1/4 Frequnezgrenze


von mgolbs (Gast)


Lesenswert?

Hallo,

ich habe einen ATTiny45 und möchte diesen mit 128kHz laufen lassen. Wenn 
ich nun per Fuse 0x44 0xdf 0xff einstelle, kann ich im AVR Studio 4 die 
Kommunikation mit max. 4kHz laufen lassen - alles soweit i.O.

Zum programmieren werden aber 5kHz gefordert. Mit 5kHz kommt aber keine 
Kommunikation mehr zustanden. Die 25% Regel CPU Takt und ISP Frequenz 
halte ich doch deulich ein. Wenn ich wieder auf 0x62 0xdf 0xff stelle, 
geht alles wie gewohnt. Was habe ich da bis jetzt nicht verstanden?

Über Tipps und Infos wäre ich sehr dankbar.

Gruß Markus

: Verschoben durch Moderator
von c-hater (Gast)


Lesenswert?

mgolbs schrieb:

> ich habe einen ATTiny45 und möchte diesen mit 128kHz laufen lassen.

Dann tue das auch.

> Zum programmieren werden aber 5kHz gefordert. Mit 5kHz kommt aber keine
> Kommunikation mehr zustanden.

Dann läuft er nicht mit 128kHz, sondern mit 16. 128/16=8, also liegt die 
Vermutung nahe, daß die CKDIV8-Fuse fälschlicherweise programmiert ist.

Die Hexzahlen für die Fuses sagen übrigens garnix, solange du nicht auch 
angibst, welchen Controller du programmierst.

von syn (Gast)


Lesenswert?

>ATTiny45 Fuse 0x44 0xdf 0xff

Wie "c-hater" schon richtig erkannte ist die div8 fuse gesetzt dadurch 
werden die 128kHz nochmal intern durch 8 geteil.
Somit darf die ISP Frequenz maximal 4kHz in der Theorie betragen,
in der Praxis sollten es weniger als 4kHz sein da die 128kHz von 
Temperatur und Spannung abhängen!
Die 128kHz sind eigentlich nur 120Khz bei 5Volt und 25 Grad Temperatur, 
somit muss die ISP Frequenz dementsprehend niedriger sein.
(Siehe Datenblatt Seite 191, Figure 22-38)

Zusätzlich hast du die Fuse "ungeschickt" eingestellt, soll heißen du 
hast die Wartezeit (SUT[1:0]) die nach einem Power_on eingelegt wird um 
Stabieles Arbeiten zu gewährleisten auf Brown-Out eingestellt aber 
selbigen nicht eingeschalten.
Der Avr abeitet schon bei einer niedrigeren Spannung als im Datenblatt 
angegeben jedoch sehr unstabiel (z.b. Rechenfehler), erst bei der 
mindest Spannung von 2,7 Volt läuft er auch stabiel.
Also entweder Brown-Out einschalten oder z.b. "Slowly rising power" bei 
den Fuse einstellungen um zu gewährleisten das der Avr erst mit der 
arbeit beginnt wenn die Spannung auch hoch genug ist.

von mgolbs (Gast)


Lesenswert?

Hallo,

danke für die vielen hilfreichen Infos. Es war wirklich die div8 fuse. 
Komisch war nur, dass ich mit dem Atmel Studio 5.1 die Programmierung 
vornehmen konnte, mit dem 4er nicht.

Nun funktioniert alles wie gewünscht. Arbeite jetzt mit AVRDude unter 
Linux.

Gruß und nochmal Dank!

Markus

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.