Moin Leuts. Ich betreibe eine Signalerfassungkette dessen Ergebnis ich mir auf dem Monitor ansehen kann. Sensor ---> I/U-Wandler ---> ADC ---> DSP ---> MAX23 ---> PC (LabView zur Darstellung) Ich nehme von meinem Sensor ca. 3000 Werte und stelle mir auf dem Monitor mit Hilfe von LabView eine FFT dar. Das Sensorsignal selbst ist DC. Im Spektrum sind allerdings deutlich zwei Peaks bei ca. 34kHz und bei ca. 16kHz zu sehen. Nun meine Frage: Wo könnte das herkommen? Folgende Komponenten habe ich auf meinem Board: MAX232 mit 28.800Baud 25MHz Quarz für DSP, DSP läuft intern mit 125 MHz 1x DSP (TI 320F2810) 1x ADC (Abtastfrequenz 95kHz, 16Bit +/-5V Range) 7x DAC (Daisy-Chain) zahlreiche OPV und 2x IN-AMP. Mich wundert es, dass ich diese Peaks auf einem Oszi mit FFT am ADC-Eingang nicht sehe. Vielleicht habt ich ja ein paar Tipps für mich. Grüße Marcusius
Frequenz der Ladungspumpe vom MAX232, Taktsignal für ADC oder DAC, Aliasingsignal welches entsprechend weiter "oben" zu suchen ist (Clock, SPI-Takt etc.pp), Programmierfehler der Kurzzeit-FFT (Stichwort Fensterung) Viele Grüße, Martin L.
ca. 31 kHz ist auch die Horizontalfrequenz eines VGA-Monitors, die ist sehr niederohmig und stört immer.
Christoph Kessler wrote: > ca. 31 kHz ist auch die Horizontalfrequenz eines VGA-Monitors, die ist > sehr niederohmig und stört immer. Eine niederohmige Frequenz? klingt spannend, was kann man sich darunter vorstellen?
Wenn es nur ca. 16kHz ist, dann könnte es auch genau 15625 Hz sein, was die Horizontalfrequenz eines normalen Röhrenfernsehers ist. Vielleicht steht so ein Teil irgendwo in der Nähe aktiv herum ...
> Mich wundert es, dass ich diese Peaks auf einem Oszi mit FFT am > ADC-Eingang nicht sehe. > Vielleicht habt ich ja ein paar Tipps für mich. Heißt das du hast ein FFT-fähiges Oszi und das zeigt diese peaks nicht? Wenn ja, dann würde ich den Fehler in d. programmierung suchen. Das nach dem Oszi dein Signal noch irgendwie gestört wird ist unwahrscheinlich. Zumindest sollte dann dein Oszi dann auch diese Störfrequenzen anzeigen. Nimm doch mal einen Datensatz und mach die FFT mit LabView. Dann kannst du erstmal überprüfen ob dein Algorithmus das macht was er soll. Was hast du für eine Fensterung genommen? gruß Georg
@Christoph Vom Monitor kommt es leider nicht. Den habe ich eben ausgeschaltet und mir die Sachen auf meinem TFT angesehen. @Martin L. Wenn durch den Seriellen Treiber Fehler entstehen, wo kann ich da Filter (z.B. LC-Filter) einsetzen? Zwischen DSP und MAX232 oder MAX232 und PC? Marcusius
Georg Bauerfeind wrote: > > Wenn ja, dann würde ich den Fehler in d. programmierung suchen. Das nach > dem Oszi dein Signal noch irgendwie gestört wird ist unwahrscheinlich. ich meine natürlich nach dem ADC, sorry
@Georg: Ich habe ein Tektronix TDS2012. Da schaue ich mir eine FFT an (Messspitze direkt am Eingang vom ADC) und kann keine Peaks sehen. In LabView schaue ich mir dann 3000 Messwerte an und mache eine FFT damit und sehe die besagten Peaks. Fenster jeweils Hanning. Kann es sein, dass diese Peaks Aliasingfehler sind? Marcusius
> Kann es sein, dass diese Peaks Aliasingfehler sind? Sofern du keinerlei Tiefpassfilterung vornimmst (entweder mit nem diskreten TP im analog-teil deiner Schaltung oder digital vor der FFT, zb. mit FIR-Filter) ja. Also es ist wichtig dass die FFT immer von einem Bandbegrenztem Signal durchgeführt wird. Es ist sicher denkbar, dass dein Oszi eine solche Bandbegrenzung eingebaut hat. Wenn du keine hast, dann kannst du ja schnell mal einen einfachen RC-Tiefpass vor deinen ADC hängen und nachschauen was passiert. Für die meisten sachen ist der http://de.wikipedia.org/wiki/Tiefpass#Tiefpass_1._Ordnung schon völlig ausreichend. Den Verlust an Signalamplitude kannst du dann später mit einer aktiven Version ausgleichen. Aber für Testzwecke probier erstmal die passive Variante. Theoretisch kann auch noch ein Baudratenfehler durch die Anbindung des MAX232 an den DSP auftreten (zumindest war das bei falscher Taktung eines Atmel AVrs so). Die Fehlerrate der UART von deinem DSP findest du sicher im Datenblatt. Ich hab grad keine Zeit mich durchs Datenblatt zu klicken, vllt. guckst du selber mal ob du was findest. georg
@Georg Vor dem ADC-Eingang befindet sich ein RC-Filter (49R9, 1uF). Ich habe eben in die RX- und TX-Leitung MAX<-->PC je einen Serienwiderstand eingebracht. Nun habe ich Peaks bei ca. 8,7kHz, 17,5kHz und einen kleineren bei 26kHz. Das hat wohl etwas bewirkt. Sind SMD-Ferrite an der Stelle geeigneter zusammen mit einem C gegen Masse? Marcusius
Ich habe eben mit dem Oszi noch einmal gemessen. Dort sieht man die Peaks doch. Sehen etwas breitbandiger aus. Daher habe ich sie zunächst übersehen. Also: Peaks bei 8,7kHz, 17,5kHz 26kHz. Vor dem ADC-Eingang nach Filterung mit RC-Tiefpass (siehe oben). Der RC-Filter bringt also nichts?! ODer noch ein SMD-Ferrit in Reihe zum Widerstand? Marcusius
Marcusius wrote: > Filterung mit RC-Tiefpass (siehe oben). Der RC-Filter bringt also > nichts?! ODer noch ein SMD-Ferrit in Reihe zum Widerstand? Doch bringt er, deine 26kHz werden zb. fast um 20dB gedämpft. Bevor du anfängst dich in wilden Filterorgien zu verheddern würde mich mal interessieren warum du überhaupt von einem "DC-Signal" eine FFT machst? Was ist denn überhaupt Sinn und Zweck dieser ganzen Übung? Was ist das für ein Sensor? Was ist falsch mit dem Spektrum, dein ermitteltes stimmt doch mit dem auf dem Oszi überein, also alles gut oder? Eine Induktivität in Reihe zum Widerstand bringt weitere Bedämpfung höherer Frequenzen und führt zum TP 2. Ordnung... ABER die Frage deshalb erstmal, was möchtest du überhaupt messen? Warum willst du die Frequenzen die da sind nicht sehen? grüße Georg!
Finde erst mal die Quelle der Störung. Schau mit dem Oszi nach ob sie vor dem Tiefpass mit höherer oder niedriger Amplitude erscheinen. Schau, wo in deinem System die niedrigste Frequenz welche Du gemessen hast auftaucht. (Der Rest sind vermutlich Harmonische). Wenn sie vor dem Filter stärker sind als dahinter kommen sie von extern. Dann musst Du dort suchen. Ansonsten wird das Signal wohl irgendwie über den digitalen Teil in den ADC gelangen. Das entsteht meistens durch ein schlechtes Layout und dort insbesondere der niederohmigen Anbindung von den GND-Pins. Aber bevor ich das alles machen würde, würde ich erst mal den MAX232 temporär abschalten und nachsehen ob dann alles gut ist. Viele Grüße, Martin L.
@Georg: Nun, die 3000 Werte werden gemittelt. Ich wollte mir nur einmal das Rohsignal ansehen und dabei bin ich auf die Peaks gestoßen. Der Mittelwert dürfte doch genauer (d.h. Standardabweichung geringer werden), wenn die Peaks verschwinden, oder? Bzw. das Rauschen allgemein abnimmt. Bei dem Sensor handelt es sich um eine Elektrode (Clark-Typ) mit Polarisationsspannung. Beim PCB-Layout habe ich mich an die Vorgaben von Analog gehalten. AGND getrennt von DGND. Innere Lage als Massefläche. Und sonst auch alle Cs usw. gesetzt. Den MAX kann ich nicht abschalten, denn dann funktioniert mein Board nicht mehr. Eine Kommunikation mit einem PC ist erforderlich. Grüße Marcusius
Warum sucht Ihr immer nur in diese eine Richtung ? a) Evtl. bringt eine andere räumliche Anordnung schon neue Erkenntnisse? b) Ob Marcusius schon mal eine anderes Labornetzteil als Spannungsquelle versucht hat ? Auch Schaltnetzteile sind manchmal interessante Fehlerquellen.
Du kannst dem MAX abschalten und mit dem Oszi nachgucken ob die Störung immer noch da sind. Wenigstens kannst Du die Frequenz vom der Ladungpumpe messen und vergleichen... Ansonsten ist es manchmal gar nicht so gut die Masseflächen zu trennen weil der "Analogstrom" u.U. zum "Digital-GND" fließen muss. Da gibt es eine gute Application Note von Analog oder Linear zu. Martin
> Ansonsten ist es manchmal gar nicht so gut die Masseflächen zu trennen > weil der "Analogstrom" u.U. zum "Digital-GND" fließen muss. Da gibt es > eine gute Application Note von Analog oder Linear zu. @Martin Ja, nur ist das doch nicht weiter problematisch, da der digital teil relativ "robust" ist, gegenüber den Analogsignalen. Viel störender ist der doch der Fakt, dass die Ströme über dem digitalen Schaltungsteil auf den analogen einkoppeln, bzw. die Ströme durch die endliche kleine Impedanz des GNDs zu Potenzialverschiebungen von eben diesem führen und dafür sorgen dass exaktes messen z.b. mit A/D Wandler nicht mehr möglich ist. @Marcusius In welcher Intensität treten denn deine "Peaks" auf? Wie ist der Sensor an das Board angekoppelt? Geschirmtes/verdrilltes Kabel... Kabel sind ja immer recht verdächtig wenn es um sowas geht^^ g georg
> Beim PCB-Layout habe ich mich an die Vorgaben von Analog gehalten. > AGND getrennt von DGND. Analog schreibt allerdings auch folgendes: http://www.analog.com/library/analogDialogue/Anniversary/12.html Ich hab selber keine genauen Erfahrungen mit getrennten Grounds, bin eher ein Jünger der Alles-auf-eine-durchgängige-Massefläche Religion. Randy
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.