Donnerstag, 24. Januar 2013

ADC misst "so gut" wie Oszi

Während der Christian mit den LED-Messungen fleißig war, hab ich alle anwesenden Personen im Labor mit ständigem Klatschen geärgert ;-)

Um die aufgenommenen ADC Werte zu validieren habe ich einen 24 Bit breiten Blockram im FPGA angelegt, welcher 16384 Werte speichern kann, um einen Zeitraum von 16,3ms aufzuzeichnen.

Momentan wird beim einschalten der Spannungsversorgung für 1s ein Mittelwert über die gemessene Spannung am Mikrofon gebildet und gespeichert. Anschließend wird ständig kontrolliert ob die Spannung bei einem der beiden Mikrofone 200mV über diesem Mittelwert liegt. Falls dies der Fall ist wird in einem Fenster von 4 ms ein Maximalwert gesucht.

Der Blockram ist als Ringspeicher angelegt, der ständig mit neuen Werten gefüllt wird. Falls ein Mikrofon die Schwelle überschreitet, werden noch 14384 Werte gesichert, so dass ich 2ms "in die Vergangenheit" blicken kann, um zu sehen wie die Mikrofone angeschwungen sind.

Auf dem Oszi sieht das ganze beispielsweise so aus, wenn man zentrisch im Abstand von ca. 40cm klatscht:


Den RAM lese ich über die "RS232" Schnittstelle (hardwaretechnisch beim Eva-Board als USB realisiert) aus und speicher die Rohdaten mit hterm ab. Anschließend kann ich die Daten mit einer kleinen Software die ich in C++ geschrieben habe laden und anzeigen lassen. Hier will ich dann verschiedene Algorithmen zur Laufzeitmessung testen und wenn sich ein geeigneter gefunden hat, diesen dann im FPGA umsetzen.


Gut zu erkenne ist, dass der ADC Wert mit dem Oszibild gut übereinstimmt. Die vertikalen gestrichelten schwarzen Linien sind die 4ms in denen der Maximalwert ermittelt wird. Die horizontalen gestrichelten Linien sind jeweils die 200mV grenzen nach oben und unten, wobei momentan nur bei +200mV eine Messung gestartet wird.
Der Abschnitt zeigt allerdings nur 8,8ms vom aufgezeichneten Klatschen. Hier entspricht jetzt 1 Pixel in der x-Achse 8µs und 1 Pixel in der y-Achse 6,4mV.

Über die Scrollbars an der Seite kann ich die beiden Signale verschieben und somit übereinander legen:


oder aber auch die Position des angezeigten Ausschnits im "Maßstab 1:1" verändern (0,8mV bzw. 1µs pro Pixel:


Ich hab noch ein Bild mit realer Auflösung von 16384 x 4096 Pixel (67 Megapixel!) generiert, allerdings kam leider eine Fehlermeldung beim Upload, obwohl es als png nur 263KB groß ist.

Morgen gehts dann weiter... ich freu mich schon :D

Keine Kommentare:

Kommentar veröffentlichen