Startup-Time und interner "Takt-Teiler"

Gast #1035670
Lesenswert?

Hi.

Kurze Frage zur Start-Up time. Diese lässt sich ja bekanntermassen über 
die SUT Fuses auf beispielsweise "1k CK", "16k CK" (abhängig vom uC Typ) 
einstellen.

Im Datenblatt (hier aus MEGA324P) ist das ganze so beschrieben:

---------------
The oscillator is required to oscillate for a minimum number of cycles 
before the clock is considered stable.
An internal ripple counter monitors the oscillator output clock, and 
keeps the internal reset active for a given number of clock cycles. The 
reset is then released and the device will start to execute.
---------------

Der MEGA324p verfügt über die CKDIV8 fuse welche einen extern angelegten 
Takt durch 8 teilt.

So, jetzt zur eigentlichen Frage:
Nehmen wir an ich verwende einen 8MHz Quarz mit aktivierer CKDIV8 Fuse,
berechnet sich dann die Start-Up-Time auf Basis des internen 1MHz Taktes 
oder auf Basis des "physikalischen" Taktes?

Also ist es dann bei "1k CK" 1ms (1MHz) oder nur 0.125ms?

Mfg,
Rev
Gast #1035795
Lesenswert?

>Also ist es dann bei "1k CK" 1ms (1MHz) oder nur 0.125ms?

Ich kenne die Antwort nicht, aber man könnte es recht einfach 
herausfinden, indem man einen AVR einen anderen AVRs schalten lässt: 
einen Outputpin des ersten AVR an den Resetpin des zweiten; einen 
Outputpin des zweiten an einen Inputpin des ersten.

Der zweite AVR muss nach dem Einschalten (Resetpin L --> H) 
schnellstmöglich irgendeine Änderung an irgendeinem Pin bewirken. Das 
lässt sich mit diesem Minimal-Programm (nur zwei Befehle) 
bewerkstelligen:

     ; (10 k Pullupwiderstand am betreffenden Pin)
     sbi  DDRD, 0       ; bewirkt H --> L am Pin PD0
     loop: rjmp loop

Der erste AVR misst die Zeit zwischen L --> H an seinem Outputpin und H 
--> L an seinem Inputpin.

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