mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Input Capture maximale Frequenz


Autor: Rico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich möchte gern die Input Capture Funktion nutzen. Jedoch ist meine zu 
messende Frequenzhöher als der Controller Takt, da ich ihn sparsam 
betreiben möchte.
Dazu die Frage: Kann der Input Capture eine höhere Freuquenz haben als 
der Prozessortakt ist? Im Datenblatt hab ich dazu leider nichts 
gefunden.


Danke und Grüsse
Rico

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rico wrote:
> ich möchte gern die Input Capture Funktion nutzen. Jedoch ist meine zu
> messende Frequenzhöher als der Controller Takt, da ich ihn sparsam
> betreiben möchte.
> Dazu die Frage: Kann der Input Capture eine höhere Freuquenz haben als
> der Prozessortakt ist? Im Datenblatt hab ich dazu leider nichts
> gefunden.
Wie soll das gehen? Wenn der Timer langsamer läuft als das zu messende 
Signal, dann kannst Du kein Input Capture verwenden. Und der Timer kann 
nunmal im Prinzip nicht schneller laufen als der CPU-Takt...

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Rico (Gast)

>Dazu die Frage: Kann der Input Capture eine höhere Freuquenz haben als
>der Prozessortakt ist?

Nein. Minimale Pulsebreite 2 CPU-Takte.
Workaround. Externes Toggle-FlipFlop, z.B. 74HC74.

MFG
Falk

Autor: Rico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
The Input Capture is updated with the counter (TCNTn) value each time an 
event occurs on the ICPn pin.
Also wenn ich das so lese, sollte das schon gehen...
Nur ich bin mir eben nicht sicher. Wenn ich z.B. bei 10000 Events einen 
Interrupt auslösen lasse, dann kann die CPU vorausgesetzt sie läuft mit 
halber Taktrate wie das zu messende Signal, auf einem anderen Timer bis 
5000 zählen.
Oder liege ich da ganz falsch?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beschreibe bitte mal exakt, was Du eigentlich machen willst.

Die Input Capture Unit dient dazu, bei Auftreten einer Flanke am ICP-Pin 
den Inhalt vom Timer-Zählregister zu sichern, so dass man z.B. die Zeit 
zwischen zwei Flanken messen kann. Kommen die Flanken an ICP schneller 
als der Timer zählen (und v.a. das Programm das Capture-Register 
auslesen) kann, dann macht das ganze überhaupt keinen Sinn!

Ich vermute fast, Du verwechselst da was (und liegst somit tatsächlich 
ganz falsch) und möchtest eigentlich eine Compare-Einheit nutzen und 
kein Capture...

Dann kann es auch Sinn machen, den Timer mit einer höheren als der 
CPU-Frequenz takten zu wollen, was in einem gewissen Rahmen vermutlich 
sogar funktionieren könnte.

Du hast aber immer noch nicht erzählt, mit was für einem µC Du das 
machen willst (ich vermute mal, dass es sich um einen AVR handelt...)

EDIT:
Ich habe mal einen Blick ins Datenblatt eines AVR (ATMega32) geworfen 
und festgestellt, dass sich die Timer nicht höher als CPU-Takt takten 
lassen, weil der externe Takteingang auf CLK_IO synchronisiert ist... 
Genaugenommen muss der externe Timertakt kleiner als der halbe I/O-Takt 
sein.

Autor: 6637 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was spricht gegen einen externen Teiler ? zB einen 8Bit Teiler, der 
Div256 macht. Dann ist man wieder im Bereich. Moeglicherweise.

Autor: Jojo S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und wenn man periodische Signale mit dem ICP ausmessen will dann muß man 
ja noch regelmässig in einer ISR den kopierten Timer ICR1 auslesen, das 
dauert nochmal einige zig Takte bevor die nächste Flanke kommen darf. 
Die Dauer der ISR ist da das limitierende Element.

Autor: Rico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahh ich hab mein Fehler bei der Beschreibung erkannt.
Ich nutze erst mal einen ATMega16.
Ich möchte gern diesen externen Takt als Taktquelle für einen Zähler 
nutzen, um nach einigen Flankenwechsel einen ISR auslösen zu lassen, 
z.B. nach 200 Takten. Dann mit einem Timer vergleichen der mit 
Systemtakt läuft. Und dazu nun die Frage noch mal:
Kann dieser externe Takt an dem Timer größer sein als der Systemtakt? 
Ich glaube so ist es richtig ausgedrückt.   ;o)

Autor: Rico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach und die Frage hat ja Johannes schon beantwortet, Danke!!!

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.