Mega8 Frequenz messen

Mike
 
Avatar
 
Subject:

Mega8 Frequenz messen

 · 
Posted: 28.12.2012 - 14:56  ·  #1
Hallo,

ich habe jetzt bereits einige Versuche mit AVRco und einem Mega8 auf meinem Testboard erfolgreich ausgeführt. Jetzt bin ich allerdings wieder mal auf Hilfe angewiesen. Für ein Projekt sollen zwei Frequenzen gezählt und ausgewertet werden. Das Messen einer Frequenz funktioniert bereits problemlos und auch ausreichend genau (mit FrequCount). Aber wie kann ich mit einem Mega8 zwei Frequenzen "gleichzeitig" messen? Würde ich beide Frequenzen abwechselnd auf den Timer1 legen und messen hätte ich (nach meiner momentanen Vorstellung) relative große Messpausen in denen Änderungen die nur in kurzen Impulsen auftreten nicht erfasst würden. Ist es überhaupt möglich, mit FrequCount, auch Timer0 zum Messen von Frequenzen zu verwenden? Wenn nicht gibt es eine andere einfache Möglichkeit?

Danke Mike
mc-electronic
Benutzer
Avatar
Gender: n/a
Location: Sauerland NRW
Posts: 372
Registered: 03 / 2008
Subject:

Re: Mega8 Frequenz messen

 · 
Posted: 28.12.2012 - 16:27  ·  #2
Hallo Mike,

1. Um welchen Frequenzbereich geht es denn?
2. Wie genau müssen die Ergebnisse sein?
3. Handelt es sich z.B. um symmetrische Rechteck-Signale?
Mike
 
Avatar
 
Subject:

Re: Mega8 Frequenz messen

 · 
Posted: 28.12.2012 - 16:51  ·  #3
Hallo,

1. 0 bis 100kHz (könnten im ungünstigen Fall noch auf 500kHz steigen)
2. 0,1%
3. Sinussignal das sich mit steigender Frequenz Richtung Dreieck ändert
mc-electronic
Benutzer
Avatar
Gender: n/a
Location: Sauerland NRW
Posts: 372
Registered: 03 / 2008
Subject:

Re: Mega8 Frequenz messen

 · 
Posted: 28.12.2012 - 18:25  ·  #4
Hallo Mike,

so, wie Du das schreibst, ist das fast unmöglich mit einem ATMega zu realisieren:
1. 0 Hz ist Dein Start-Bereich, d.h. z. B. eine Frequenz von 0.0001 Hz = 1 Impuls alle 10000 Sekunden muß genau so mit einer Genauigkeit von 0.1 % (2.) gemessen werden wie eine Frequenz von 100 kHz. Da kannst Du jeden Timer-Interrupt vergessen, die Timer laufen über, bevor der Flankenwechsel kommt. Sehr schwierig. Niedrige Frequenzen kann man im SysTick Interrupt mit einer guten Genauigkeit messen. Hohe Frequenzen eher über einen Timer-Interrupt.
3. Wird erst dann zum Problem, wenn die Dreiecks-Spitze so schmal wird, daß bei 100 kHz kaum noch die Schaltschwelle erreicht wird. Bei so kurzen Abständen kann nur ein Flankenwechsel-Interrupt funktionieren - bei Beachtung der Laufzeit der Interrupt-Routine.

Lange Rede, kurzer Sinn: Wenn die Anforderungen genau so sind, wie Du es schreibst, mußt Du um den ATMega herum andere Hardware bauen. Oder Du "weichst" Deine Anforderungen auf. (also präzisierst sie)

Btw: Welche Taktfrequenz hattest Du für den Prozessor vorgesehen?

Gruß, Michael
Mike
 
Avatar
 
Subject:

Re: Mega8 Frequenz messen

 · 
Posted: 28.12.2012 - 18:49  ·  #5
Es wird wohl eine Änderung der Anforderungen oder grundsätzlichen Umsetzung geben müssen. Das ist mir bei meiner, leider nicht erfolgreichen, Suche klar geworden. Oder ich habe etwas falsch verstanden / falsch interpretiert / falsch bei der Lösungssuche angegeben. Der µC sollte mit 16MHz betrieben werden.
Wenn die Anforderung z.B. auf 10Hz-100kHz begrenzt würde, wäre die Messung zweier Frequenzen mit dem Mega8 möglich?
Wahrscheinlich werde ich auch erst einmal mit einer Frequenz etwas weiter probieren, um mehr Verständnis für das Ganze zu bekommen. Das kann nicht schaden, egal wie es hiermit weiter geht.

Danke fürs erste
Mike
Mike
 
Avatar
 
Subject:

Re: Mega8 Frequenz messen

 · 
Posted: 29.12.2012 - 08:51  ·  #6
Hallo,

ich habe mir das Thema Frequenzmessung noch etwas angesehen und denke das ich mich da gestern etwas in die falsche Richtung bewegt habe.(eine Nacht drüber schlafen hilft manchmal). Jetzt messe ich erst einmal eine Frequenz mit den im Treiberhandbuch angegebenen Daten (100kHz, Auflösung 10Hz).
Eine Frage habe ich da im Moment trotzdem noch. Wie kann ich feststellen welche Zeit zwischem dem letzten erhaltenen und aktuellen Messwert vergangen ist? Das ist ja nicht nur die reine Torzeit von 0,1s. Es können in einem Programm ja weitere Aufgaben/Aufrufe erfolgen und in dieser Zeit würde keine Messung erfolgen.
In Messgeräten die verbrauchte/erbrachte Energie in Wh o.ä. angeben muss ja die Zeit bezogen zum Messwert ermittelt werden.

Danke
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   105   119 · Page-Gen-Time: 0.03918s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI