Tonaufnahmegerät

Christian8

Neues Mitglied
08. Dez. 2008
51
0
0
Sprachen
Hallo,

ich möchte so etwas wie ein Aufnahmegerät bauen: Ein ATmega soll die Signale, die von einem Mikrophon kommen, in digitale Werte umwandeln und diese dann auf eine SD-Karte speichern. Nur weiß ich leider nicht genau, wie ich das Ganze anpacken soll: Ich denke mal, das Mikrophon muss ich an den A/D Wandler Eingang hängen. Nur, wenn ich dann die analogen Signale umgewandelt habe, wie kriege ich dann daraus wieder die digitalen Werte für einen Ton? Und was brauche ich alles an Hardware (evt. noch einen Verstärker?) ?
Ich hoffe, dass mir jemand helfen kann!

Gruß, Christian
 
Hi Christian

Und was brauche ich alles an Hardware (evt. noch einen Verstärker?) ?
- Mikrofon-Vorverstärker (nimm nen Low-Noise-OPAmp)
- den AD-Wandler (wohl den im ATmega)
- den Kram für die SD-Karte
- nen DA-Wandler (entweder ein Port mit R-2-R-Netz oder nen eigenen Baustein oder mit PWM)
- und zum Schluß nen Ausgangsverstärker/Pegelanpasser (oder sowas)

Hast Du Dir mal Gedanken über die Auflösung (8Bit,10Bit,...) und die
Sampling-Rate gemacht und was das dann bei der SD-Karte für ne
Datenrate erzeugt ? Evtl ne Audio-Komprimierung verwenden ?

Was willst Du damit aufzeichnen? Kleine Memos ? Reportagen? ? ?
Ich hab damals mit nem Amiga gesampelt und da ging 8Bit mit ca.
16-20kHz Sampling-Rate schon einigermaßen.
Das wären aber alle 50-65us ein Byte in die Karte schreiben. Auhauerha!
Und bei Audio mußt Du auch ein starres Raster einhalten sonst fängt es
an zu jaulen.

Aber ich will dich nicht vom Projekt abhalten. ;) Wegen Verstärkern kann
ich ja mal in meinen elektor-Heften stöbern wenn Du was benötigst.
Die verwende ich gerne als Denkanstoß wenn ich was basteln will.

Gruß
Dino
 
Hallo Christian,

was mir so spontan einfällt:

- Wenn Du ein Signal mit 8KHz Bandbreite aufzeichnen möchtest muss es mit mind. 16 KHz abgetastet werden, also immer doppelte Abtastfrequenz wählen.

- Vor dem A/D Wandler einen Tiefpass (R/C Kombination) einbauen damit keine unnötigen Frequenzanteile und Störungen mit aufgezeichnet werden. Also Grenzfrequenz von 8kHz bei obigen Beispiel

- Konstante Abtastfrequenz (Aufnahme und Wiedergabe) ist ein absolutes muss (wie von dino03 erwähnt), d.h. eine Interruptlogik muß irgendwie dafür sorgen das der Sampling Takt Interrupt immer höchste Prio im System hat und nicht verzögert wird (z.B. schreiben/lesen der SD-Karte).

- Sampling Takt über internen Timer (wenn Quartz verwendet wird) oder evtl. vielleicht hierfür einen externen Taktgeber verwenden.

- Bei der Aufnahme die A/D-Wandler Daten erst in einem Buffer sammeln und dann Burstweise (z.B. 256 Bytes) auf die SD-Karte schreiben

- Bei der Wiedergabe den Zugriff auf die Karte ebenfalls Buffern, so daß Burstweise gelesen wird.


Gruß
Rangar
 
Hallo,

vielen Dank schonmal für die Antworten!

Für die SD-Karte denke ich, die Ansteuerung von Ulrich Radig zu nehmen:
http://www.ulrichradig.de/home/index.php/avr/mmc-sd

Ich möchte die möglichst beste Qualität erreichen. Ist das 8KHz?

Ich habe das Mikrocontroller- Board aus dem AVR-Praxis Shop mit dem ATmega128 und 16MHz.

Erst mal möchte ich nur ein paar einfache Sachen aufnehmen, dann wie gesagt auf die SD-Karte speichern und schließlich die Daten auf den PC übertragen und dort dann zu einem Audio-Rohdatenformat umwandeln und wiedergeben. Mit dem AVR will ich gar nicht abspielen.

Was für ein Mikrophon brauche ich eigentlich für mein Projekt? Es sollte doch ein ganz billiges reichen, da ich ja eh nur kleine Sachen wie ein bisschen Sprachaufzeichnung machen möchte?

Ich kapiere aber irgendwie nicht ganz, wie ich letztendlich die mit dem A/D-Wandler herausbekommenen Werte abspeichern muss. Gibt es dazu vielleicht auch ein Tutorial im i-net? Ich habe bis jetzt noch keine für mich nützliche Seiten gefunden.

Also an Hardware brauche ich dann insgesamt diese Sachen

Mikrophon --> Verstärker --> ATmega128 (mit A/D-Wandler) --> SD-Karte

Stimmt das soweit?

Vielen Dank!


Grüße, Christian
 
Hi Christian ...

Ich möchte die möglichst beste Qualität erreichen. Ist das 8KHz?

Ich habe das Mikrocontroller- Board aus dem AVR-Praxis Shop mit dem ATmega128 und 16MHz.

Ich würde erst mal damit anfangen, wieviel Taktzyklen die Schreiboperationen in die
SD-Karte verbraten. Das wird wohl dein größtes Problem sein. Danach weiß man
ungefähr, wieviel CPU-Zeit einem zum Samplen übrigbleibt. Und danach richtet
sich dann auch deine höchstmögliche Abtastfrequenz.

Hast Du dich schon einmal mit einem Delta-Sigma-Wandler auseinandergesetzt ?
Damit wird nur die Änderung des Signals vom letzten zum aktuellen Wert erfaßt.
Das könnte den Datenstrom schon etwas veringern. Wenn man dann die erfaßten
Bits in ein Register schiebt und für das Samplen den Komparator des Mega verwendet
könnte man evtl schon etwas Zeit durch geringere Datenrate gewinnen und damit
höhere Samplingraten erreichen. Ist jetzt aber nur so eine Idee die mir gerade
eingefallen ist. Sieh mal bei http://de.wikipedia.org/wiki/Delta-Sigma-Wandler
nach. Dann hat man nicht mehr den absoluten Wert bei jeder Wandlung sondern
muß nur noch die Signaländerung speichern (wie das Prinzip bei der CD).

http://www.beis.de/Elektronik/DeltaSigma/DeltaSigma_D.html
Da ist das Prinzip recht gut erklärt.

Du schließt im einfachsten Fall dein Eingangssignal an einen Pin des Komparators und baust mit einem Ausgangspin vom uC und einem
RC-Glied den 1Bit-DAC und den Integrator auf. Das Signal was Du an den Ausgangspin legst ist im großen und ganzen auch schon
dein Datensignal. (Jetzt mal ganz super einfach erklärt). Und wie Du den Ausgangspin schalten mußt, sagt dir dann der Komparator.

Gruß
Dino
 
Hallo,

ich muss also das Mikrofon an den Pin AIN1 anscließen, oder?

Wofür sind die 2 Widerstände und der Kondensator vor dem Eingang beim ADC?

Und wenn jetzt der Comparator eine 1 ausgibt, dann muss ich auch am Ausgangspin eine 1 anlegen?

Aber wie geht es dann weiter?

Vielen Dank!

Gruß, Christian
 
Hallo !

ich muss also das Mikrofon an den Pin AIN1 anscließen, oder?
Natürlich mit dem Micro-Vorverstärker dazwischen, der dir das Signal auf +/-1V bis
+/-2V hochverstärkt.

Wofür sind die 2 Widerstände und der Kondensator vor dem Eingang beim ADC?
Die beiden Widerstände bringen den Komparatoreingang auf 2,5V in Ruhe.
Der Kondensator entkoppelt den Micro-Vorverstärker-Ausgang gleichspannungsmäßig
von Komparatoreingang. Es wird also der verstärkte Wechselspannungsanteil
mit dem Spannungsteiler auf 2,5V Mittelwert eingestellt. Die Eingangsspannung kann
sich also maximal von 0V bis 5V bewegen wenn der Micro-Verstärker (wenn er
symetrisch mit +/- Versorgungsspannung arbeitet) eine Signalspannung von
+/-2,5V liefert.

Und wenn jetzt der Comparator eine 1 ausgibt, dann muss ich auch am Ausgangspin eine 1 anlegen?
Was er ausgibt hängt davon ab ob du den negativen Eingang an das Micro und den
positiven Eingang an den Integrator anschließt oder eben anders herum.

Aber wie geht es dann weiter?
Das ist die Arbeit des Programmierers :D
Wenn der Komparator merkt, das das Eingangssignal größer als das Integratorsignal
ist, wird der PORTx auf 1 gelegt. Damit lädt sich der Kondensator weiter auf. Wenn das
Eingangssignal kleiner ist, wird PORTx wieder auf 0 gelegt. Das ganze passiert zu
festgelegten Zeitpunkten (Das ist deine Samplingrate). Wenn man es alle 50us macht,
hast Du deine 20kHz Samplingrate und die Bits die du an den Ausgang PORTx legst
ergeben zusätzlich auch deinen Bitstrom für die SD-Karte.

Wenn Du die Bits jetzt in ein Puffer-Byte schiebst, dann bekommst Du mit 8
Samplingtakten ein Byte voll und kannst das dann in die SD-Karte oder in einen
Schreibpuffer für die SD-Karte packen der dann Burst-mäßig (256Bytes voll also
auf Karte sichern) auf die Karte geschrieben wird.

Du mußt jetzt nur noch beim wiedergeben den gleichen Samplingtakt einhalten.

Das ist jetzt ganz grob erklärt. Aber so in der Art funktioniert ein Delta-Sigma-Wandler.
Dafür ist die bereits erwähnte Seite http://www.beis.de/Elektronik/DeltaSigma/DeltaSigma_D.html
recht gut. Schau dir vor allem mal die Signal-Diagramme in Bild 5 an und versuch sie
im Kopf durchzugehen. Das wird einiges erklären.

Gruß
Dino
 
Hallo Christian,

ich benutze da den NE5534 oder ähnliche.
Ist aber nicht ganz so wichtig wenn man nicht gerade Schrotflinten wie
den alten LM741 oder die etwas besseren TL061, TL071, TL081 verwendet.
Die größten Rauschquellen sind meißtens die Widerstände. Da solltest Du im
Audiozweig auf jeden Fall Metallfilm-Widerstände nehmen vor allem bei dem
hohen Verstärkungsfaktor vom Micro-Vorverstärker sonst hörst Du im
Hintergrund immer einen Wasserfall.

Ich hab mir das mit dem Delta-Sigma-Wandler noch einmal alles durch den
Kopf gehen lassen und bin dabei auf ein paar Probleme gestoßen ...

Teil aus dem Text auf beis.de :
Man beachte, dass in diesem Beispiel die Taktrate, die hier gleich der Abtastrate ist, 64-mal höher als die Frequenz des Eingangssignals ist. Konventionelle Wandler erfordern eine Abtastrate, die höher als das Doppelte der höchsten Eingangsfrequenz ist. Delta-Sigma-Wandler erfordern sehr viel mehr, damit genügend Bitstream-Pulse generiert werden können. Es ist offensichtlich, dass je mehr Bitstream-Pulse generiert werden, desto besser der Mittelwert des Bitstream-Signals dem Eingangssignal entsprechen kann.
Man benötigt also wohl im Endeffekt eine relativ identische Datenmenge.

Außerdem greift die Zeitkonstante des Integrators ziemlich in die
Wandlung ein. Sie darf nicht zu kurz sein, da sonst die Ausgangsspannung
zu schnell gegen die Betriebsspannungsgrenzen läuft. Sie darf aber auch
nicht zu groß sein, da man damit die maximal samplebare Frequenz
heruntersetzen würde. Die Samplerate und die Integrator-Zeitkonstante
müssen also aneinander angepaßt werden. Das wird eine ziemliche
experimentiererei oder Rechnerei.

Was mir auch noch eingefallen ist sind Bitfehler. Wenn mehrere Bitfehler in
die gleiche Richtung zeigen, dann verschiebt sich der Nullpunkt des
Bitstroms in die positive oder negative Richtung. Man hat also dadurch
einen Gleichspannungsanteil auf dem Ausgangsdatenstrom. Im Gegensatz
zu den Absolutwerten eines "normalen" AD-Wandlers muß man sich bei
einem Delta-Sigma-Wandler also um Fehlerkorrektur kümmern.

Irgendwie ist das ziemlicher Murks für mal eben schnell zusammenstricken :(

Wenn man also den Aufwand vom normalen 10Bit-Wandler im ATmega
gegen den Aufwand eines DeltaSigma-Wandlers stellt, dann gewinnt
wohl doch leider der Wandler im ATmega. Bitfehler machen sich da
höchstens bei der fehlerhaften Wandlung bemerkbar, sind danach aber
wieder verschwunden - im Gegensatz zum DS-Wandler.

Also würde ich zum jetzigen Zeitpunkt doch den "normalen" AD-Wandler
im ATmega bevorzugen. War aber mal nen Gedanken wert sich mit dem
DS-Wandler zu beschäftigen. Hätte ja sein können das er besser geeignet
ist.

Gruß
Dino
 
Hallo,

ich glaube, dann werde ich das ganze wohl doch besser mit dem internen A/D-Wandler des ATmega128 machen.
Im Anhang habe ich das Bild des Verstärkers NE5534. Muss ich das Mikrophon (ich denke übrigens, dass ich ein einfaches Elektret-Mikrophon nehme, geht das?) an IN- und IN+ anschließen (also den Minusanschluss vom Mikrophon an den Minusanschluss des NE5534 und plus zu plus)? Wozu sind die Anschlüsse "Comp", "Comp/Bal" und "Balance"?

Dann habe ich noch eine Frage zur Software: Wenn ich nun den 10 Bit Wert vom AD-Wandler habe, muss ich den dann noch irgendwie umformen oder kann ich ihn direkt speichern?

Vielen Dank!

Gruß Christian
 

Anhänge

  • NE5534.GIF
    NE5534.GIF
    3,8 KB · Aufrufe: 5
Hallo Christian,
Muss ich das Mikrophon an IN- und IN+ anschließen (also den Minusanschluss vom Mikrophon an den Minusanschluss des NE5534 und plus zu plus)? Wozu sind die Anschlüsse "Comp", "Comp/Bal" und "Balance"?
Es scheint so, als ob du noch nicht viel mit Operationsverstärkern gemacht hast :D
Kann ich dir heute abend ja mal was schicken ;)

Gruß
Dino
 
Kleine erste Info über Operationsverstärker

Hallo Christian,

zuerst mal einen Link http://de.wikipedia.org/wiki/Operationsverst%C3%A4rker
Natürlich von Wikipedia :D

Operationsverstärker sind ziemlich universell einsetzbar. Du findest zum
Beispiel auch einen als Komparator in deinem ATmega ;)

Man kann sie als Verstärker, Inverter, Komparatoren, Integratoren, Filter, ...
einsetzen. Es gibt sie mit Komplementär-Ausgang oder mit Open-Collector oder
mit Bipolaren Transistoren oder auch mit FETs oder, oder, oder, ...

Du must ihn in dieser Art (als invertierender Verstärker)
http://de.wikipedia.org/w/index.php?title=Datei:Inverting_Amplifier.svg&filetimestamp=20070601123508
einsetzen. Das ist die einfachste Lösung.

Hier schon mal ein paar Links die ich gerade gefunden habe ...
http://www.ferromel.de/tronic_1906.htm
http://www.elv-downloads.de/service/manuals/17049_Mikrofon_Vorverstaerker/Mikrofon-Vorverstaerker_KM.pdf

Und das müßte das sein, was wir suchen ...
http://www.tonbandstimmen.de/mikvv.htm
Eventuell mußt du nur deine Microkapsel mit einer Phantomspeisung
versorgen (Also den R1 an die linke Seite des Eingangselkos legen)
wenn sie nur 2 Pins hat.

Ich hoffe, es hilft Dir erst einmal weiter :pleasantry:

Gruß
Dino
 
Hallo,

reicht es, wenn ich mein Mikrophon einfach mit dem Minusanschluss vor den Widerstand R1 in folgendem Bild setze?
Link

Gruß, Christian
 
Hi Christian,

Siehe mein Posting von gestern 19:47 und den letzten Link darin

http://www.tonbandstimmen.de/mikvv.htm

Da findest Du eine vorgekaute Lösung für dein Problem :viking:
Löten mußt Du schon selber :rolleyes:

In dem Text ist alles beschrieben und wie du ein Electret-Micro mit oder ohne
Phantomspeisung da anschließen kannst.

Dein Link verweist lediglich auf ein Prinzipschaltbild für einen invertierenden
Operationsverstärker. Wenn Du dir den Link von dem MikVV ansiehst, dann
findest Du den Schaltplan wieder. Allerdings um ein paar Bauteile für die
Wechselstromverträglichkeit ergänzt.

- C1 hält Gleichspannungsanteile vom Eingang des OPs weg. Wenn man 1mV
Gleichspannung um den Faktor 470 verstärkt kann man sich ausrechen was
am Ausgang anliegt (knapp 0,5V Gleichspannung!).

- C2 beruhigt (Siebt) den Gleichspannungs-Arbeitspunkt des OPs (halbe
Betriebsspannung).

- C3 setzt die Verstärkung für hohe Frequenzen herunter um Schwingneigungen
zu unterdrücken. Wenn man den größer macht, dann kann man damit
auch gleich einen Tiefpaß z.B. für 10kHz Grenzfrequenz erschlagen.
Das spart einem weitere Schaltungstechnik ein.

- C5 hält die Gleichspannung vom Arbeitspunkt des OPs (halbe Betriebsspannung)
von der nächsten Stufe weg.

- C6 siebt die Betriebsspannung. Sollte man meiner Meinung nach noch nen
Elko von 1-10uF parallel schalten (was gerade in der Bastelkiste liegt).

- C4 ist nur bei den Einfach-OPs im 8-Pin-Gehäuse notwendig. Die Pins dafür
findest Du bei einem 2-fach-OP im 8-Pin-Gehäuse oder einem 4-fach-OP in einem
14pol-Gehäuse überhaupt nicht. Er dient der Frequenzkompensation (wenn ich
mich nicht ganz irre).


Das sollte jetzt aber reichen :D
Nun aber los! Lochraster auf den Tisch, Lötkolben anheizen und basteln :moil:

Oder zum rumprobieren erst einmal auf nem Steckbrett aufbauen. Scheint mir bei
dir sinnvoller, damit Du ein wenig mit den Werten experimentieren kannst und in
die Materie reinkommst.

Gruß
Dino
 
Audio-Konfektionierung

Hallo Christian,

wenn du nur Sprachaufzeichnung machst, genügt eine Audiobandbreite von 4 kHz, das heisst eine Samplingrate von 8 kHz ist in Ordnung. Was wesentlich wichtiger ist, ist eine ordentliche Konfektionierung des Audiosignals. Dazu verwende ich generell die Analog Devices Chips SSM2166. Damit hast du alles, was du brauchst: die nötige Verstärkung des Mikrofonsignals, eine Limitierung (ganz wichtig bei nachfolgender Digitalisierung) und wenn gewünscht, eine Komprimierung für leisere Sprache sowie ein Noisegate, sodass das Teil erst ab der gewünschten Lautstärke anspricht.

Das Teil funktioniert sowohl im Tonstudio, wie auch bei Liveauftritten. Ich verwende es auch an den Mikrofonen meiner Funkstation.

Die Applikationsschaltung sagt eigentlich alles aus..... feines Teil!!!

http://www.analog.com/en/audiovideo-products/audio-signal-processors/ssm2166/products/product.html

Da findest du auch das Datenblatt mit der Schaltung.

lG Sigi
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)