Forum: Mikrocontroller und Digitale Elektronik Audiosignal für ADC aufbereiten


von Dominique G. (dgoersch)


Lesenswert?

Hallo zusammen,

ich plane aktuell eine "Meterbridge" mit mehreren Peakmetern. Durch 
googeln habe ich bereits herausgefunden, dass ich das Audiosignal 
gleichrichten und verstärken muss, hierzu wurde an mehreren Stellen der 
LM358 genannt. Wie müsste konkret eine solche Schaltung aussehen, um den 
Line-Pegel (max 1V AC) für den internen ADC des ATmega16 passend 
anzuheben?

Hat da jemand Tipps oder Links mit weiterführenden Infos? Ich bin 
gestern während meiner Suche auf einen Plan gestossen, der beide Amps 
des LM358 je Kanal nutzt, einen wohl zum Gleichrichten, den zweiten dann 
zum Verstärken. Leider finde ich den nichtmehr, auch das durchforsten 
der Chronik ist bei mehreren tausend angesurften Seiten je Tag nicht 
hilfreich gewesen.

Ebenfalls suche ich nach einem Weg ein symmetrisches Audiosignal zu 
"entsymmetrieren". Ein Übertragertrafo wäre bei dem Einsatzzweck 
absoluter Overkill, da ich das Audiosignal ja nicht akustisch verwerten 
möchte, sondern nur ausmessen will. Dafür gibts ja dann auch Lösungen 
mit OpAmps, tuts da auch der LM357? Wie sähe hierzu der Plan aus?

Danke und Gruß
Dominique Görsch

von Michael L. (Gast)


Lesenswert?

Hallo Dominique,

> ich plane aktuell eine "Meterbridge" mit mehreren Peakmetern. Durch
> googeln habe ich bereits herausgefunden, dass ich das Audiosignal
> gleichrichten und verstärken muss, hierzu wurde an mehreren Stellen der
> LM358 genannt. Wie müsste konkret eine solche Schaltung aussehen, um den
> Line-Pegel (max 1V AC) für den internen ADC des ATmega16 passend
> anzuheben?
Ich dachte, Du willst ihn gleichrichten. Dazu kannst Du einen 
Meßgleichrichter (anderer Name: Präzisionsgleichrichter) verwenden.
http://en.wikipedia.org/wiki/Precision_rectifier

> Hat da jemand Tipps oder Links mit weiterführenden Infos?
Ja, schau Dir am besten mal die Operationsverstärker-Grundschaltungen 
an.
http://de.wikipedia.org/wiki/Operationsverst%C3%A4rker

Insbesondere das, was unter "Addierverstärker" und 
"Subtrahierverstärker" zu finden ist. Damit dürftest Du Dein 
symmetrisches Signal recht einfach in ein massebezogenes Signal wandeln 
können.


Gruß,
  Michael

von Axel R. (Gast)


Lesenswert?

Hallo,
da Du das sowieso(denke ichmal) in db anzeigen lasen willst, kannst Du 
es gleich soweit treiben, mit der gezeigten Schaltung das NF Signal 
gleichzurichten und logarithmisch zu verstärken.

Gruß
Axelr.

von Axel R. (Gast)


Lesenswert?

http://www.mikrocontroller.net/attachment/18228/log-amp.png

Die Schaltung - hatte ich vergessen ;-))
Den hellen Bereich nachbauen. Sollte funktionieren...

von Johannes R. (jor)


Lesenswert?

aber im Datenblatt steht:
Up to 15 kSPS at Maximum Resolution

ich weiss nicht in wieweit du die maximale Auflösung brauchst und wie 
schnell du sampeln kannst wenn du nicht die maximale Auflösung 
benutzt... auf jeden Fall musst du noch nen Tiefpass vor den ADC-Eingang 
der dir das Signal auf eine Bandbreite von 7,5kHz beschränkt... und das 
ist irgendwie etwas wenig für eine Meterbridge... ob man mehr brauch ist 
die Frage aber ist auf jeden Fall der Standard bis 20kHz

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Externe Gleichrichter kann man sich sparen. Man muß lediglich den Pegel 
etwas anheben und einen Tiefpaß vorschalten. Alles andere kann man in 
Software implementieren. Nutzen sollte man auf jeden Fall die vollen 10 
Bit Auflösung, die etwa 60db Dynamik erlauben.

von Dominique G. (dgoersch)


Lesenswert?

Klar kann man 'ne Menge in Software machen, aber ich glaube wenn ich 
zuviel in die Software verlagere wirds eng 8 ADC (4 Stereo-Paare) in 
akzeptabler Zeit auszulesen, das ganze aufzubereiten und auf die 
LED-Ketten zu schicken. Oder sollte ich ohnehin besser einen externen 
ADC nehmen (SPI, I²C, ...)?

Gruß
Dominique Görsch

von Günti (Gast)


Lesenswert?

> ich plane aktuell eine "Meterbridge" mit mehreren Peakmetern.

was hast du denn gegen dieses, als Basis ???

http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=6101
http://www.elv-downloads.de/service/manuals/VU19/47486-VU-Meter-VU19.pdf

von Dominique G. (dgoersch)


Lesenswert?

Günti schrieb:
> was hast du denn gegen dieses, als Basis ???

Erwünschte präzision hätte ich dagegen. Bei dem Preis kann das Teil nix 
taugen, brauchbare Peakmeter liegem im mittleren bis oberen 3stelligen 
Bereich[1]. Für die paar Euro bekomme ich ein paar lustig zappelnde 
LEDs, aber sicher kein Studio-taugliches Peakmeter. Das auch bei Thomann 
günstig zu findende "T.Meter PCM 223 Stereo" ist übrigens auch nur ein 
nett leuchtendes Schätzeisen laut Aussagen von Radiokollegen.

Die Qualität und genauigkeit von RTW's Peakmeter mit 
201-Segment-Gasplasma Displays werde ich wohl kaum erreichen, aber etwas 
mehr als die üblichen Zappellichter sollte es schon sein.

Gruß
Dominique Görsch

[1] http://www.thomann.de/de/anzeigeinstrumente_sichtgeraete.html

von Johannes R. (jor)


Lesenswert?

warum schaust du nicht ins Datenblatt des LM3916 sondern schmeisst hier 
so subjektive Aussagen in den Raum... wenn dir so etwas nicht genügt 
dann würde ich mir erst einmal klare Vorgaben machen und danach 
überlegen welche Bauteile ich benutzen will.

von Holger S. (strabe)


Lesenswert?

Hallo Dominique,
nachvollziehbar für mich ist es, dass Du gerne eine, der Genauigkeit 
entsprechend hochwertige, Anzeige haben möchtest. Die Genauigkeit 
liefert dir aber nicht das anzeigende Modul ( LEDs,LCDs,Plasmas etc.. 
)sondern die vorgelagerte Messwert-Aufbereitung. Hier liegt der 
Schweiß...
Gruß und viel Erfolg Strabe

von Christian W. (christian_w)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

möcht mich hier mal dran hängen.

Ich habe vor, ein LED-VU-Meter mit einem Atmega8 zu realisieren, und 
habe dabei den Audioeingang auf einen ADC Eingang gelegt. Bevor das 
Signal in den ADC gelangt, wird es noch von Gleichspannungsanteilen 
befreit und außerdem soll ein Spannungsteiler gegen VCC verhindern, dass 
negative Halbwellen in den µC gelangen. Eingangspegel liegt etwa um die 
1Vpp.

Habe jetzt allerdings einen Widerstand des C-R-Hochpasses mit einem 
anderen Widerstand des Spannungsteiler kombiniert...

Die Frage wäre nun, ob diese Schaltung so funktioniert und ich den 
Audiopegel mit dem ADC messen, und auf LEDs ausgeben kann?

Geht das so?

Christian

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Das geht so. Allerdings passt die Referenz nicht dazu, denn 5V/2 sind 
2.5V und das liegt oberhalb Deiner Referenz von 1.63V. Am besten ist es, 
wenn die Referenz genau doppelt so hoch ist, wie das vorgespannte 
ADC-Signal. Dann brauchst Du in der Software nur noch die Abweichung der 
ADC-Werte vom virtuellen Nullpunkt (um ADC-Wert 512 herum) nehmen, diese 
Abweichung maximieren und mit einem Rücklaufwert verknüpfen. Schon hast 
Du ein komplettes VU-Meter realisiert, welches man auch auf sehr vielen 
LEDs oder einem LCD darstellen kann.

von Christian W. (christian_w)


Lesenswert?

Ok vielen Dank.

Nur das verstehe ich noch nicht 100 %:

Knut Ballhause schrieb:
> diese
> Abweichung maximieren und mit einem Rücklaufwert verknüpfen.

Was ist genau mit "maximieren" und "Rücklaufwert" gemeint?

Danke!

Christian

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Christian W. schrieb:
> Was ist genau mit "maximieren"

Spitzenwerte der Messwerte nehmen und nur wenn diese durch neue 
Messwerte übertroffen werden, erneut übernehmen. Die direkt vom ADC 
kommenden Messwerte kannst Du nicht anzeigen, da sie stetig zwischen 
allen Extremwerten der ankommenden Spannungsamplitude schwanken.

Christian W. schrieb:
> und "Rücklaufwert" gemeint?

Damit werden pro Zeiteinheit die Maximalwerte wieder vermindert. Treffen 
neue Spitzen ein, werden die Werte, wie gesagt, nach oben korrigiert. 
Treffen keine neuen Werte ein, werden die Maximalwerte bis auf 0 
vermindert. Die Zeiteinheit in kombination mit einem bestimmten Betrag, 
um den eine Verminderung der Werte stattfinden, ist der Rücklaufwert. 
Wenn Du Dir einen LED-Bargrafen vorstellst, so läuft dieser beim 
Eintreffen von Siognalen schnell voll, um dann langsam wieder 
leerzulaufen. So kann das menschliche Auge der (akkumulierten) 
Lautstärke des Signals folgen.

von Christian W. (christian_w)


Lesenswert?

ok, verstanden, danke ;)

gäbe es da eventuell irgendwo ein codebeispiel für c, an dem ich mich 
etwas orientieren kann?

christian

von Karl H. (kbuchegg)


Lesenswert?

Christian W. schrieb:
> ok, verstanden, danke ;)
>
> gäbe es da eventuell irgendwo ein codebeispiel für c, an dem ich mich
> etwas orientieren kann?

Kannst du einen ADC auslesen?
(Wenn nicht: Im AVR-GCC-Tutorial gibt es dazu Democode)

Und der Rest, das mit der Steuerung: Na ja so schwer ist das dann auch 
wieder nicht. Wenn der neue Messwert größer als der angezeigte ist, wird 
er sofort übernommen, damit hast du den Maximalwert automatisch. Und das 
Absenken: in regelmässigen Zeitabständen einfach vom aktuell angezeigten 
Wert etwas abziehen. Das kann man mit einem Timer machen, man kann aber 
auch ganz einfach sagen: Nach jedem 500.ten Durchlauf durch die 
Hauptschleife vermindere ich den Wert.
1
  ....
2
3
  while( 1 ) {
4
5
    value = GetADC( 0 );
6
7
    if( value > actual )
8
      actual = value;
9
10
    delay++;
11
    if( delay == 500 ) {
12
      delay = 0;
13
      if( actual > 20 )
14
        actual -= 20;
15
      else
16
        actual = 0;
17
    }
18
19
    LightLedBar( actual );
20
  }

Die Zahlenwerte (500, 20) muss man dann anpassen, so das sie den eigenen 
Vorstellungen entsprechen, wie sich das alles verhalten soll.

von Christian W. (christian_w)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Kannst du einen ADC auslesen?

Ja, kann ich, hab ich mit einem Versuchsaufbau und einem Poti schon 
öfter getestet, das klappt prima. Nur mit Audiosignalen hatte ich bisher 
noch keine Erfahrung.

Danke!

;-)

von Karl H. (kbuchegg)


Lesenswert?

Christian W. schrieb:
> Karl Heinz Buchegger schrieb:
>> Kannst du einen ADC auslesen?
>
> Ja, kann ich, hab ich mit einem Versuchsaufbau und einem Poti schon
> öfter getestet, das klappt prima. Nur mit Audiosignalen hatte ich bisher
> noch keine Erfahrung.

Ist auch nur eine Spannung, die sich laufend im Wert ändert.

von Micha (Gast)


Lesenswert?

Dominique Görsch schrieb:
> Ebenfalls suche ich nach einem Weg ein symmetrisches Audiosignal zu
> "entsymmetrieren". Ein Übertragertrafo wäre bei dem Einsatzzweck
> absoluter Overkill, da ich das Audiosignal ja nicht akustisch verwerten
> möchte, sondern nur ausmessen will. Dafür gibts ja dann auch Lösungen
> mit OpAmps, tuts da auch der LM357? Wie sähe hierzu der Plan aus?

INA 134 oder INA137 von Burr Brown (jetzt TI), wenns genau werden soll. 
Wenn man das mit OPV bauen will, braucht man sehr eng tolerierte 
Widerstände.

Gruß Micha

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
Noch kein Account? Hier anmelden.