Ich möchte mit einer Mikrofonkapsel Lautstärke detektieren. Es muss nicht genau sein. Das Signal soll über den AD-Wandler eines AT90S8535 ausgewertet werden. Nach dem Schaltplan aus der Anleitung habe ich einen Vorverstärker aufgebaut und kann beim Klopfen des Mikrofons auf dem Tisch bereits Werte digitalisieren. Wie kann ich die Schaltung optimieren, so dass ich empfindlicher werde? Ist ein Gleichrichter zum AD-Wandler nötig? Kennt jemand für so etwas ein Patentrezept? Danke!
Noch empfindlicher? Die 1000er Verstärkung reicht wohl noch nicht? Aber egal, wenn Du (bzw. eher die Schaltung) empfindlicher werden soll, sicherlich noch einen Verstärker nachschalten. Allerdings dürfte dabei schon das Rauschen recht hoch werden - also die Verstärkung dezent wählen (vielleicht noch so 10fache Verstärkung oder so). Gleichrichter würde ich schon nachschalten mit Ausgangsfilter (so daß der ADC nicht direkt die Schallwellen sieht), am besten einen aktiven Gleichrichter.
Eine Lautsaerke kann man nur im Vergleich messen. Und das bei jeder Frequenz. Dh man kann sich zB einen Sinusgenerator nehmen und einen Lautsprecher. Bei einer festen Frequenz wird die Lautstaerke linear zu Strom oder Leistung ueber einen Bereich verlaufen. Gegen unten ist irgendwo eine Grenze und gegen oben auch. Geraeusche, wie Klopfen sind gaenzlich ungeeignet, da nicht reproduzierbar.
Beim sprechen in die Kapsel bekomme ich aus dem AD-Wandler "nur" 0, wenn ich die Kapsel auf den Tisch klopfe bekomme ich hohe Messwerte. Mir fehlt also die Reaktion bei normalen Geräuschen. Der Ausgang des Vorverstärkers ist direkt mit dem PINA0 verbunden. Mache ich hier etwas falsch? Ich will ja nur das Geräusch eines Wasserstrahls erkennen, ansonsten herrscht Ruhe. Also, ich will nicht das Geräusch an sich analysieren, nur ob es laut oder leise ist.
offensichtlich ist die Verstärkung einfach etwas zu gering, wenn nur das Klopfen etwas bringt. Also wie schon gesagt noch etwas mehr verstärken. Ansonsten wie schon von mir geschrieben.
>Der Ausgang des Vorverstärkers ist direkt mit dem PINA0 verbunden. >Mache ich hier etwas falsch? Ja. Der ADC kann nur Spannungen innerhalb 0V<Uin<AREF messen, wobei AREF maximal 5V betragen darf. Wenn Du Wechselspannungen messen willst, mußt Du deren Nullpunkt auf Vcc/2 abheben, dann kannst Du beide Halbwellen abtasten. Die maximale Bandbreite des ADC bei schnellster Wandlung beträgt um 35kHz. Übrigens hat der vorgestellte Verstärker eine viel zu hohe Ausgangsspannung, was bei voll aufgedrehtem Ausgangspoti zur Zerstörung des Controllers führen kann. Also entweder den Verstärker mit 5V betreiben und einen OV einsetzen, dar dann schon arbeitet, oder einen Strombegrenzungswiderstand 10kOhm zwischen Verstärker und ADC schalten.
@ Travel Rec. >Übrigens hat der vorgestellte Verstärker eine viel zu hohe >Ausgangsspannung, was bei voll aufgedrehtem Ausgangspoti zur Zerstörung >des Controllers führen kann. Also entweder den Verstärker mit 5V Die Gefahr sehe ich nicht so sehr, denn in Anbetracht der Tatsache, daß der LF351 bei RL=300Ohm lt. Diagramm im Datasheet gerate mal +-5V schafft, was nur 15mA macht, und der µC in der Regel Schutzdioden an den Eingängen hat, die beim AT90S8535 40mA verkraften, kann es ihn praktisch nicht erledigen. Allerdings kann es passieren, daß die Betriebsspannung des AT90S8535 über die internen Schutzdioden angehoben wird. Der LF351 wird sozusagen zur Spannungsquelle für den AT90S8535. Da hilft dann nur reichlich Last an der Betriebsspannung (min. 15nmA) auf AT90S8535-Seite. Aber ich stimme Travel Rec. zu - es ist nicht die feine Art, die Schaltung dahingehend zu designen, daß man einfach alles anklemmen will, und dabei diesen Punkt einfach zu ignorieren.
>...die beim AT90S8535 40mA verkraften,...
bist du sicher?
Die Schutzdioden in den MEGAS halten nur 1mA aus. Angabe von Atmel, bzw.
von einem App.Ing.
MW
1mA ist die maximale Stromstärke durch die Body-Dioden, 40mA ist die maximale Portlast.
@ Michael Wilhelm (Gast) >>...die beim AT90S8535 40mA verkraften,... >bist du sicher? >Die Schutzdioden in den MEGAS halten nur 1mA aus. Angabe von Atmel, bzw. >von einem App.Ing. naja, das datasheet sagt zumindest: Absolute Maximum Ratings* Operating Temperature ................................ -40°C to +105°C Storage Temperature .................................... -65°C to +150°C Voltage on Any Pin except RESET with Respect to Ground .............................-1.0V to VCC + 0.5V Voltage on RESET with Respect to Ground ....-1.0V to +13.0V Maximum Operating Voltage ............................................ 6.6V I/O Pin Maximum Current ........................................... 40.0 mA Maximum Current VCC and GND (PDIP package) ....................................... 200.0 mA Maximum Current VCC and GND (TQFP, PLCC package) ............................ 400.0 mA Bei I/O Pin Maximum Current steht nicht, ob als I oder O geschaltet. Daher interpretiere ich es mal als universelle Angabe (1mA erscheint mir dagegen schon wieder als etwas sehr niedrig für Schutzdioden, zumal bei meinen fliegenden Testaufbauten schon oft der Rest der Schaltung über diese Schutzdioden aus Versehen mit "versorgt" wurde - und das waren mit Sicherheit weit mehr als 1mA)
Hallo, also um zum eigentlichen Problem zurückzukommen: Es wäre hilfreich, zunächst den Ausgang des Vorverstärkers bzw. Eingang des AD-Wandlers zu oszilloskopieren, um sicher zu gehen, dass da wirklich eine auswertbare Spannung vorhanden ist. Besser wäre, einen Präz.-Gleichrichter nachzuschalten, zumal sich durch das Auskoppel-C am Vorverstärker und die Schutzdioden eine Arbeitspunktverschiebung einstellen kann. Gruß Dieter
Der Präzisionsgleichrichter ist überflüssig. Wenn man mittels R1=R2 (z.B. 2x 10kOhm) Spannungsteiler den ADC-Pin auf Vcc/2 einstellt und das Ausgangssignal des Verstärkers mittels C ankoppelt, verschiebt sich gar nichts. Durch messen der Werte, die von Vcc/2 abweichen, kann der ADC beide Halbwellen mit max. 9 Bit Auflösung auswerten. Wie gesagt, bis etwa 35kHz. Werden höhere Frequenzen eingekoppelt, muß ein Tiefpaß vorgeschaltet werden.
Eine präzise Lautstärkemessung geht so: http://www.theimann.com/Analog/Misc_Tech/Millivoltmeter/index.html mit einem echten Effektivwert-Mess-IC AD636, das einen dB-Ausgnag hat: http://www.analog.com/en/prod/0,2877,AD636,00.html kostet bei Reichelt 9,55€ http://www.reichelt.de/?;ACTION=3;LA=2;GROUP=A212;GROUPID=2909;ARTICLE=3831;START=0;SORT=artnr;OFFSET=16;SID=312AmD@6wQAR8AAEiihuY8527ea5c2bd8661dabc59bcf4ab4be08 aber so genau sollte es ja nicht werden
Man kann mit dem direkt vom ADC gewonnenen Signal eine Menge in Software anstellen, da braucht´s keinen speziellen Chip, wenn man nicht gerade auf Millivolt auflösen will. Eine log. LED-Anzeige mit 30 LEDs ist auf alle Fälle zu machen und mit netten Features wie Spitzenwert-Haltefunktion und Übersteuerungsblinken ein echter Hingucker.
@ Travel Rec. die Frage ist nur, ob unser Fragesteller wirklich alles in Software verwirklichen will, oder doch lieber die Gleichrichtung/Glättung via (Analog-)Hardware. Das müsste er irgendwann selbst entscheiden.
Gewiß. Das ist die ewige Frage: lieber löten oder lieber programmieren... 1en und 0en kosten kein Geld ;-)
Danke für Eure Unterstützung! Ich werde das mit dem Spannungsteiler ausprobieren, leuchtet mir ein und dürfte die Lösung für mein Problem sein. Ich berichte, ob es geklappt hat.
Ich weiß, es ist schon etwas her ;-) wollte mal nachfragen, ob und wenn ja wie du deine Idee nun umsetzen konntest? LG
Knut B. schrieb: > Durch messen der Werte, die von Vcc/2 abweichen, kann der ADC > beide Halbwellen mit max. 9 Bit Auflösung auswerten. Naja, das ist ja eigentlich nichts anderes, wie ein Softwaregleichrichter. :-)
Knut B. schrieb: > Gewiß. Das ist die ewige Frage: lieber löten oder lieber > programmieren... 1en und 0en kosten kein Geld ;-) Allerdings kann man ein Antialiasingfilter nicht perSoftware realisieren. Das sollte man schon analog aufbauen.
Harald W. schrieb: > Allerdings kann man ein Antialiasingfilter nicht perSoftware > realisieren. Das sollte man schon analog aufbauen. Nö. Heutige Soundchips (und auch schon die alte AD1848 Schleuder) haben AA-Filter, die sich je nach Sampling Frequenz mit eingestellt haben und brauchen dafür keine Unterstützung durch externe Filter - ausser vllt. einem externen C, der am Chip angeschlossen wird. Und auch der TAS3108 DSP Chip in meinem Bassverstärker hat das alles eingebaut. Mit ein bisschen Gefummel geht das sogar mit einem AVR oder STM32 ohne DSP Befehlssatz, siehe die Application Note AVR223: http://www.atmel.com/Images/doc2527.pdf
:
Bearbeitet durch User
Matthias S. schrieb: > Heutige Soundchips (und auch schon die alte AD1848 Schleuder) haben > AA-Filter, die sich je nach Sampling Frequenz mit eingestellt haben Du meinst, in diesen Soundchips ist ein analoges SC-Filter vor dem AD-Wandler mit eingebaut?
Harald W. schrieb: > Du meinst, in diesen Soundchips ist ein analoges SC-Filter vor dem > AD-Wandler mit eingebaut? Ich weiss nicht, was du mit SC Filter meinst, aber so stehts im Datenblatt des alten AD1848 Sauriers (Soundchip für ISA Karten):
1 | Analog-to-Digital Datapath |
2 | The AD1848K ∑Δ ADCs incorporate a fourth order modulator. |
3 | A single pole of passive filtering is all that is required for |
4 | anti-aliasing the analog input due to the ADC’s high 64 times |
5 | oversampling ratio. The ADCs include linear phase digital deci- |
6 | mation filters that low-pass filter the input to 0.45 × FS (“FS” is |
7 | the word rate or “sampling frequency.”) |
Matthias S. schrieb: > Ich weiss nicht, was du mit SC Filter meinst Er meint "Switched Capacitor Filter", kurz SCF. https://de.wikipedia.org/wiki/Switched-Capacitor-Filter
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.