ATMega als Impulszähle (µs-Bereich)

#1184696
Lesenswert?

Hallo,

Ich möchte mit einem µC gerne eine Schaltung realisieren, die einzelne 
Impulse zählt, die relativ schnell aufeinander kommen. (µs-Bereich) Die 
Impulse werden vorher mit einem Halteglied o.Ä. auf Rechteckform 
gebracht.

Die Frage die sich mir stellt ist ist die, wie lange der Highpegel bei 
den günstigeren, geläufigen µC's (ATMega8/16/32) am Eingang anliegen 
muss, damit er erkannt wird und wie weit die Impulse auseinander liegen 
müssen, damit sie noch als einzelne Impulse erkannt werden. (Zeitliches 
Auflösungsvermögen?)

Wie errechnen sich diese Werte? Oder stehen sie in den Datenblättern?

Grüße,
S.
#1184746
Lesenswert?

Hallo,

Ich kenne mich mit µC's überhaupt noch nicht aus und weiß daher auch 
nicht, an welcher Stelle des riesigen Datenblattes ich überhaupt 
nachsehen muss. Vorstellen könnte ich mir, dass die höchstmögliche 
zählbare Frequenz durch den eigentlichen Rechentakt begrenzt ist, 
allerdings wird die reale doch eine ganze Ecke tiefer liegen?
Vielleicht kann mir ja doch jemand helfen.

Grüße,
S.
Gast #1184763
Lesenswert?

Normalerweise (bestimmt!) stehen alle relevanten Angaben im Datenblatt.

Mit AVR uC kenne ich mich nicht speziell aus.
Aber:
Externe Frequenzen oder Impulse lassen sich mit der "Timer" Einheit 
messen.
Entweder als Zähler (counter mode) oder -wie wahrscheinlich in deiner 
Anwendung nötig, bei "unregelmäßigen Einzelimpulsen"- mit dem "input 
capture mode".
Die max. zulässige Frequenz bzw. Impulsbreiten stehen im Datenblatt.
Üblicherweise sind die generell niedriger als die interne Taktfrequenz 
des uC, ofmals z.B. nur max. 1/4 der internen Taktfrequenz.
Diese interne Taktfrequenz wiederum kann identisch zur einem 
angeschlossenen Quarz sein (direkter Oszillator), oder aber der uC hat 
eine "PLL", also eine höhere (mögliche) interne Taktfrequenz als der 
Quarz.
Als weitere Lösung könnte man die Impulse an den externen 
Interrupt-Eingang legen; das sinnvoll, wenn direkter "input capture 
mode" einer / der Timereinheit nicht vorhanden ist.

Mehr lässt sich nur aussagen, wenn du deutlich exakter beschreibst, 
welche Art von Impulsen erfasst werden müssen.
Ist es ein wiederholendes Signal?
Oder muss "exakt" jeder einzelne Impuls erfasst werden?
Sinnvoll wäre auch die Angabe, welchen exakten Typ von uC du momentan 
vorgesehen hast.
#1184803
Lesenswert?

Hallo,

Die Pulse kommen regelmäßig. Es geht darum, zu erfassen, wenn ein Impuls 
nicht gekommen ist.

Anwendung: Thema meiner Studienarbeit ist die Entwicklung einer Logik 
zur Erfassung von nicht-erfolgten Zündungen von Zündspulen, die vorher 
einigen Stress-/Alterungstests unterzogen wurden.
D.h. die Spule wird mit realistischer Geschwindigkeit mit Spannung 
versorgt (Bereich um 100Hz), der Lichtbogen wird optisch detektiert und 
anschließend auf Rechteckform gebracht.
Am Ende habe ich also 12 Spannungen (pegel high/low) (2 kommen immer 
gleichzeitig), deren Impulse ich zählen möchte, um sie anschließend auf 
dem Mikrocontroller mit dem Referenzimpuls zu vergleichen und damit 
schlussendlich auf den Zustand der Zündkerze zu schließen.

Da die Zahl der erfolgten Zündungen um ein vielfaches größer sein wird 
als die Zahl der nicht-erfolgten Zündungen wäre es sicher auch eine 
Möglichkeit, Referenztakt und Signal per XOR zur vergleichen und dann an 
den Controller zu geben, dann müsste man nur die fehlgeschlagenen 
Zündungen zählen. Allerdings hätte ich am liebsten auch die "Rohdaten" 
der einzelnen Impulse gezählt.

Einen konkreten µC habe ich noch nicht ausgewählt, da ich nicht weiß, 
wie ich ihn zu dimensionieren habe. Natürlich will ich nicht unnütz 
einen Mega128 einsetzen, wenn es auch der 8er tut... mal extrem 
ausgedrückt.
Da der 32 allerdings relativ günstig zu haben ist und die Ausgabeform 
(evtl LCD?) noch nicht feststeht, würde ich wohl auf den setzen, wenn er 
für die obigen Kriterien ausreicht.

Ach ja:
Die Auflösung im µs-Bereich habe ich zuerst angesprochen, da das für ein 
nachfolgendes Projekt interessant wäre, wofür man den Code eventuell nur 
erweitern müsste.

Ich hoffe, dass ihr mir helfen könnt,
S.
#1184947
Lesenswert?

Manfred Schön wrote:
> Hallöchen
>
> Denke hab' vor kurze mal gelesen :
>
> Der Pegel muss beim AVR mindestes 2.5 Taktzyklen anliegen damit z.B. der
> Timer den Takt erkennt.
> Also bei einem Qartz mit 10 Mhz wären das wohl 0.25 usec.
>
> hmg
> Mandi

Das würde ja bedeuten, dass ATMega 8/16/32 locker ausreichen selbst für 
den µs-Bereich. Korrekt?
Sind diese Typen für meine Anwendung in Ordnung?

Viele Grüße,
S.

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