www.mikrocontroller.net

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


Autor: Dominique Görsch (dgoersch)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael Lenz (hochbett)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.mikrocontroller.net/attachment/18228/log-amp.png

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

Autor: Johannes R. (jor)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Dominique Görsch (dgoersch)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Günti (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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&de...
http://www.elv-downloads.de/service/manuals/VU19/4...

Autor: Dominique Görsch (dgoersch)
Datum:

Bewertung
0 lesenswert
nicht 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_sichtg...

Autor: Johannes R. (jor)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Holger S. (strabe)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian W. (christian_w)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian W. (christian_w)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian W. (christian_w)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, verstanden, danke ;)

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

christian

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.
  ....

  while( 1 ) {

    value = GetADC( 0 );

    if( value > actual )
      actual = value;

    delay++;
    if( delay == 500 ) {
      delay = 0;
      if( actual > 20 )
        actual -= 20;
      else
        actual = 0;
    }

    LightLedBar( actual );
  }

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

Autor: Christian W. (christian_w)
Datum:

Bewertung
0 lesenswert
nicht 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!

;-)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Beitrag #2125696 wurde vom Autor gelöscht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.