mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Grenze bei Impulse zählen?


Autor: FlobiFlob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wo liegt die Grenze der maximal erfassbaren Impulse bei einem ATmega 644 
wenn man ihn mit 18 MHz betreibt?

Ich möchte über den 16bit Timer Impulse zählen...

GEht das dann bis 18 MHz oder wo ist die Grenze???

Danke für eine Antwort...

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja. Der Puls muss mindestens einen clock tief sein und mindestens 
einen clock hoch, allenfalls steht im Datenblatt mehr.

Autor: Florian Micro (micro-flo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du brauchst auch noch Rechenzeit, um die Impulse zu verarbeiten.

Ich weiß nicht genau, was Du machen willst aber für maximale 
Geschwindigkeit würde ich es so machen:

Timer starten mit Interrupt, der eine globale Variable (z.B. globvar) 
auf 0 setzt.

Eine Schleife mit while (globvar), in der Du die Impulse zählst.

Sobald der Timer abgelaufen ist, setzt er die Variable, deine Schleife 
endet und Du weißt, wieviele Impulse in der Timerzeit aufgetreten sind.

Jetzt kannst Du im Datenblatt schauen, wieviele Zyklen jede dieser 
Operationen braucht, die 18MHz dadurch teilen und Du hast deine maximal 
erfassbare Frequenz.
Ausm Bauch dürfte das weit unter 1MHz liegen.

Es gibt MCUs, die eine PWM automatisch lesen, wie z.B. der STM32.
Da der auch gleich mit 72MHz läuft, geht da einiges mehr.

Autor: FlobiFlob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

den Timer 2 kann man ja zum zählen von Flankenwechsel verwenden. Das 
würde ich gerne machen. Doch sicher gibt es irgendwo eine Grenze die 
durch den Takt der CPU begrenzt wird???

Werde wohl mit einer 18MHz CPU bestimmt nicht mehr als 18MHz zählen 
können oder? Also direkt ohne Vorteiler und der gleichen...

Ich habe das Datenblatt bereits mal angesehen aber wenn ich ehrlich bin 
habe ich keinen Schimmer unter welchen Punkt man da suchen muss. Timer2 
der 16bit Timer war mein Abschnitt bisher.

Vielen Dank!

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  FlobiFlob (Gast)

>den Timer 2 kann man ja zum zählen von Flankenwechsel verwenden.

Kann man machen.

>würde ich gerne machen. Doch sicher gibt es irgendwo eine Grenze die
>durch den Takt der CPU begrenzt wird???

Sicher.

>Werde wohl mit einer 18MHz CPU bestimmt nicht mehr als 18MHz zählen
>können oder? Also direkt ohne Vorteiler und der gleichen...

Es sind weniger als 9 MHz. Denn das externe Siganl wird mit dem CPU-Takt 
abgetastet und synchronisert. D.h. die LOW sowie HIGH Zeit muss 
MINDESTENS so lang wie ein Taktzyklus der CPU sein, eher noch etwas 
mehr.
Real eher 4MHz oder so.

>Ich habe das Datenblatt bereits mal angesehen aber wenn ich ehrlich bin
>habe ich keinen Schimmer unter welchen Punkt man da suchen muss.

Ist nirgendswo direkt beschrieben. Aber beispielsweise beim Thema 
externes Takten des SPI per XCK steht dort eindeutig, dass die externe 
Taktfrequenz max. 1/4 des internen Taktes betragen darf.
Genauso wie bei ISP bei Programmieren.

MFG
Falk

P S Um einen brauchbaren Frequenzzähler zu bauen braucht es aber noch 
mehr, denn man muss den Zähler definiert anhalten und auslesen könen.

Autor: MaxF (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo FLobi,

ich habe gerade nur das Datenblatt des ATMega8(L) vorliegen, aber 
grundsätzlich gilt das folgende für alle Counter Funktionen von den 
ATMega's (Kapitel Timer/Counter and Prescalers - External Clock Source):

"Each half period of the external clock applied must be longer than one 
system clock cycle to ensure correct sampling. The external clock must 
be guaranteed to have less than half the system clock frequency (fExtClk 
< fclk_I/O/2) given a 50/50% duty cycle. Since the edge detector uses 
sampling, the maximum frequency of an external clock it can detect is 
half the sampling frequency (Nyquist sampling theorem). However, due to 
variation of the system clock frequency and duty cycle caused by 
Oscillator source (crystal, resonator, and capacitors) tolerances, it is 
recommended/ that maximum frequency of an external clock source is less 
than fclk_I/2.5."

In deinem Fall bedeutet das also du kannst maximal (bei Verwendung der 
"Capture" Funktion (T0/T1 Pin)) 18MHz/2,5 = 7,2 MHz erfassen. 
Theoretisch aber durchaus 9MHz. Schneller kannst du mit externen dig. 
Bausteinen werden (ext. Zähler, etc.). Guck einfach mal hier im Forum.

Gruß,
Max

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Ich habe das Datenblatt bereits mal angesehen aber wenn ich ehrlich bin
>habe ich keinen Schimmer unter welchen Punkt man da suchen muss. Timer2
>der 16bit Timer war mein Abschnitt bisher.

Es gibt auch noch AppNotes:

http://www.atmel.com/dyn/resources/prod_documents/...

Unter 'External Clocking'.

MfG Spess

Autor: FlobiFlob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Besten Dank für Eure Hilfe!!!

Grüße FlobiFlob

Autor: oszi40 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man liest da oben "The CPU needs at least two cycles to detect a 
pin-change, so the maximum external clock frequency is therefore CK/2."

Wenn der Prozessor noch was tun soll, wird er dann wohl meeehr 
Rechenzeit brauchen...

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Wenn der Prozessor noch was tun soll, wird er dann wohl meeehr
>Rechenzeit brauchen...

Ein Timer zählt auch ohne Rechnen weiter.

MfG Spess

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Ein Timer zählt auch ohne Rechnen weiter.
Und ein Zähler zählt sogar ohne Timer weiter... ;-)

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.