PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hohe Frequenzen messen



Grenade
31.01.2009, 18:53
Hallo,
ich arbeite derzeit an einem Projekt in der Schule. Es soll ein Oszilloskop für den PC werden. Dazu haben wir einen AT90USBKey zur Verfügung. Auf diesem befindet sich ein AT90USB1287. Wir möchten Signale mit Hilfe des ADC´s messen und anschließend über die USB Verbindung an den PC senden. Auf dem PC befindet sich dann eine grafische Benutzeroberfläche auf dem der User Einstellungen treffen kann.

Meine Frage ist jetzt, wie ich die Sampling geschwindigkeit des ADC´s erhöhen kann. Ich habe mir überlegt den ADC Vorteiler zu verkleinern. Dadurch verliere ich 2 bit bei der Auflösung. Also 8bit statt 10bit. Das würde mich nicht stören.

Mein zweiter Ansatz wäre die Undersampling Methode. Jedoch weis ich nicht wie sowas zu programmieren ist. Hat da vielleicht jemand Erfahrung damit?

Es sollen nicht nur Sinusgrößen gemessen werden, sondern auch Dreieck und Rechteck.

Ist es bei höheren Frequenzen nötig einen Filter vor den ADC zu schalten?

Ich bitte um Hilfe

askazo
31.01.2009, 21:26
Die Frage ist, was für Dich hohe Frequenzen sind.
Die maximale Takfrequenz für den ADC bei Deinem Controller ist afaik 200kHz. Um die Kurvenform eines gemessenen Signals korrekt ermitteln zu können (Unterscheidung zwischen Sinus, Dreieck und Rechteck), bräuchtest Du mindestens 6 Messpunkte pro Periode. Maximal könntest Du also Signale bis etwa 30 kHz messen. Dann kann der PC anhand der Messpunkte errechnen, um welches Signal es sich handelt und die für die vernünftige Darstellung fehlenden Punkte nachberechnen.

Signale jenseits dieser 30 kHz mit einem AVR richtig zu messen und darzustellen halte ich für unmöglich. Ich kenne zwar diese Undersampling Methode nicht, kann mir aber nicht vorstellen, wie sowas funktionieren soll.

Gruß,
askazo

Besserwessi
31.01.2009, 23:26
Bis 1000 kHz ADC sind im Datenblat vorgesehen. Allerdings hat man dann nichtmehr die ganz 10 Bit Auflösung. Eetwa mehr könnte auch noch gehen, bei weniger als 8 Bit Auflösung.

Es gibt da aber so etwa wie eine Grenze in der analogen Bandbreite. die bei knapp 40 kHz liegen soll. Ist aber irgendwie nicht so ganz konsistent mit der Abtastzeit. Da wird man also eifach propiereb müssen. Die Zeit in der Abgetastet wird liegt bei 1-1,5 ADC Zyklen was bei 1 Mhz ja 1-1,5 µs sind. Mit einer niederohmigen Quelle könnte damit die Unterabtatsung noch bis rund 500 kHz gehen.


Zur reinen Frequenzmessung sollte man aber überlegen nicht den AD als Eingang zu nehmen, sondern den ICP pin. Da breicht man zwar ein Digitales signal, kann dafür aber die Flanke Zykengenau vermessen. Bis etwa 500 kHz kann man so sehr gut Frequenzen Messen.

Grenade
03.02.2009, 16:32
für den Anfang würde mir einmal reichen einen Sinus mit 20kHz messen und darstellen zu können

Und zur Undersamplingmethode:
Bei dieser Methode werden Signale über mehrere Perioden gemessen und anschlie0end zu einer Funktion zusammgestellt.

Besserwessi
03.02.2009, 20:29
Mit 1 MHz ADC takt kriegt man ein Sample alle 13 µs. Viel mehr solle nicht gehen, das sollte aber für 20 KHz zumindestens als Sinus reichen, ein Rechteck wird man da aber kaum noch erkennen können. Die Geschwindigkeit sollte man auch noch per USB übertragen können.

Das mit der Unterabtastung erfordert dann noch etwas Aufwand mit dem Trigger. Mit dem internen Sample and hold ist man da wohl auf die etwa 1 µs an Samplingzeit begrenzt, schneller geht dann auch nicht. Mit einem externen S&H Verstärker ginge es auch schneller.

Grenade
07.02.2009, 22:22
OK danke mal fürs erste, ich werde das mal probieren...