www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMega als Impulszähle (µs-Bereich)


Autor: Sören K. (fluxkompensator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hmm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Oder stehen sie in den Datenblättern?
Was hast Du denn bei Deinen Versuchen die Angaben im Datenblatt zu 
suchen gefunden?

Autor: ahem (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was koennte denn eine minimale Zeit fuer Pulslaenge und Abstans detn ?

Autor: Sören K. (fluxkompensator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Manfred Schön (mandinice)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Sören K. (fluxkompensator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sören K. (fluxkompensator)
Datum:

Bewertung
0 lesenswert
nicht 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

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.