PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : autonome Frequ.-Z.-Schaltung m. Mega8



tiller
14.10.2008, 13:27
Ich benötige eine autonome Schaltung (z.B.) auf Grundlage des ATMega8, die eine Frequenz bis ca. 25kHz (von einem TCS230 stammend) messen kann. Die Apparatur soll im Endeffekt darüber Auskunft geben, ob der Sensor eine bestimme Farbe (in meinem Fall erstmal Grün) "sieht" und dies dann über einen digitalen Ausgang an mein Mainboard melden.

Gearbeitet habe ich bisher lediglich mit dem Fertigboard RN-Control, weswegen ich mit der prinzipiellen Verschaltung der MCs wenig vertraut bin, auch wenn ich mir schon etwas Grundlegendes Wissen darüber über den Wissensbereich angeeignet habe. Leider habe ich allerdings keinen blassen Schimmer, weder hard- noch softwareseitig, wie ich dieses Projekt realisieren soll. Vielleicht hat ja der ein oder andere ein paar nützliche Links für mich, in denen das Thema anfängertauglich beschrieben ist, ein Schaltplan oder eine hiesige Erklärung der prinzipiellen Funktionsweise wären natürlich auch nicht verkehrt.

Schonmal vielen Dank, tiller

fhs
14.10.2008, 15:56
Hallo tiller,

werde mal versuchen, Dir ein paar Hinweise zu geben, so dass Du anhand der Stichworte selbst Material suchen kannst.

Prinzipiell gibt es 2 Möglichkeiten zur Frequenzmessung:
1. "gate" Methode: Du startest einen Timer, der eine bestimmte Zeitdauer lang läuft. Jetzt zählst Du die Impulse Deines Signals, die innerhalb dieser Zeit einfallen. Daraus berechnest Du die Frequenz. Mit den AVRs lässt sich das z.B. über die "input capture unit" (findest Du im Datenblatt) realisieren. Überlegungen zur Gate-Methode und ein kompletes Beispiel: http://sharon.esrac.ele.tue.nl/mirrors/zl1bpu/micro/CNTR/Technical.htm
2. Intervall-Methode: Du wartest auf eine definierte Flanke Deines Signals (z.B. die fallende) und startest einen Timer, wenn diese eintrifft. Der Timer läuft, bis die gleiche Flanke erneut eintritt. Damit hast Du die Periodendauer Deines Signals gemessen und kannst daraus die Frequenz berechnen. (Wenn das Tastverhältnis Deines Signals bekannt ist, genügt es natürlich, die nächste andersartige Flanke zu finden!)
Weitere Stichworte: "interrupt", "external interrupt", "sense control bits"

Dein Signal sollte eine für den Eingangspin zulässige und gleichzeitig ausreichend großen Amplitude besitzen (welche Amplitude bei welcher Betriebsspannung zu "H" und "L"-Erkennung am Eingangspin führt, findest Du im Datenblatt unter "electrical characteristics"). Die Anstiegssteilheit des Signals ist meist nicht sehr kritisch.

Gruß

Fred

Besserwessi
14.10.2008, 17:37
Die input capture einheit ist weniger für die "gate"-Methode, aber gut für die Intervallmethode geeignet. Die "gate" Methode geht am einfachsten über einen externen Zähleingang, z.B. T1.

Für niedrige Frequenzen ist die Intervallmethode besser. Über etwa 500 kHz geht die Intervall Methode nur mit einem externen Vorteiler.

tiller
15.10.2008, 13:18
Die Gate-Methode ist für höhere Frequenzen besser geeignet, das ist selbsterklärend. Die Lage des Eingangs für den TCS230 kenne ich jetzt genauso wie die Bedeutung von (externen) Interrupts, über sense control bits habe ich nichts gefunden. Ich denke es ist wohl am besten, wenn ich mir mal etwas Literatur besorge.
http://www.amazon.de/Programmieren-AVR-RISC-Microcontroller-BASCOM-AVR/dp/3907857046/ref=sr_1_1?ie=UTF8&s=books&qid=1224072728&sr=8-1
Das Buch soll ja ganz gut sein, hab auch schonmal reingeschaut, sah gut aus. Oder könnt ihr Besseres empfehlen?

fhs
15.10.2008, 13:24
Hi,

die meisten Begriffe, die ich oben genannt habe, findest Du im Datenblatt Deines Prozessors. Beim ATmega8 sind die "sense control bits" Teil von MCUCR.

Gruß

Fred