Microcontroller und wav Dateien

Gast #45770
Lesenswert?

Servus!

Hab mich in eurem schönen Forum ein wenig umgesehen, aber leider nichts
darüber gefunden.
Ich möchte "ein" Sprachmemo mit Hilfe eines Mikrocontrollers
aufnehmen und im .wav Format speichern um es dann z.B.: auf einem
Computer abspielen zu können.
Kann mir vielleicht irgendjemand mit ein paar Ideen bzw. Bausteintipps
behilflich sein?!

Danke
Christian
Gast #45772
Lesenswert?

Hallo Dirk!
Danke für deine Antwort.

ums .wav abspielen auf dem microcontroller ginge es mir eigentlich gar
nicht ;) eher wollte ich wissen ob ich im wav format aufnehmen kann
bzw. eine wav Datei (wav soll ja recht simpel sein) erzeugen kann.
& mit welchen Bausteinen ich das am besten machen könnte
(Chiprecorder von Winbond?)
Gast #45775
Lesenswert?

also die isd sprachspeicher würd ich für sowas nicht nehmen, da die
recht teuer sind (für den isd1420 (=20 sekunden aufnahmezeit) bei
reichelt glaub ich um die 7€). und 20 sekunden sind da
wahrscheinlich ned genug. würde ich auch per adc und externem speicher
machen.
Gast #45778
Lesenswert?

Zum ADC:
Bei Telefonqualität würde ich einen internen AD-Wandler des Controller
benutzen.
Welchen Controller willst Du denn einsetzen?

Zum Wave-Format z.B.
http://www.wotsit.org/
http://www.borg.com/~jglatt/tech/wave.htm
und viele mehr wenn Du mal googelst...

Zum Speichern:
Ich würde einen externen Flash-Speicher nehmen, z.B. einen AT45DB081,
AT45DB161 o.ä. aus der DataFlash-Serie von Atmel
(http://www.atmel.com), die kann man über eine SPI-Schnittstelle
ansteuern.

Gruss
Arvid
Gast #45779
Lesenswert?

zu testzwecken will ich es mit einem Sab80c537 versuchen.
dieser hat einen internen 8-bit adc wandler...

also 256 werte (von 0-5V; 5V=255)
sinuswellen symetrisch zum nullpunkt haben ja negative anteile... soll
ich also den max. pegel auf 2.5V festsetzen und das ganze um 2,5V
anheben?(2,5V addieren)

und wie siehts es dann mit wav aus?

Falls jemand tipps für mich hätte wäre ich sehr dankbar!
Gast #45781
Lesenswert?

Wenn ich eine positive Spannung addiere um es ADC wandeln zu können hab
ich ja nur die werte 0-255 in den Samples stehen... Brauch ich nicht
auch negative werte?

ich steh absolut auf der leitung, hat jemand schon was vergleichbares
gemacht?
Gast #45782
Lesenswert?

@Christian
da Dein ADW Eingang nur 0-+5V verarbeitet mußt Du den Nullpunktauf
+2.5V legen. Die Werte von 0-127 sind dann die negativen Anteile Deines
Eingangssignales. Die  von 128-255 enthalten die positiven Anteile.

MfG  Manfred Glahe
Gast #45783
Lesenswert?

@Christian

> Wenn ich eine positive Spannung addiere um es ADC wandeln
> zu können hab ich ja nur die werte 0-255 in den Samples stehen... >
Brauch ich nicht auch negative werte?

Der Wandler liefert dir nur Werte von 0..255, das ist richtig.
Negative Werte gibt es im eigentlichen Sinne in der binären Welt nicht,
das sind nur "Vereinbarungen" von Zahlenformaten, z.B. die
Zweierkomplementdarstellung (mit dem MSB als Minusvorzeichen) oder
Floating-Point usw.
Den Nullpunkt deines AD Eingangs must du auf 2.5V legen, das geht z.B.
mit einem OP den du mit 0V an V- und 5V an V+ versorgst und über einen
Spannungsteiler eine virtuelle Masse von 2.5V auf die Masse (GND) des
OP und der analogen Schaltung legst.

> und wie siehts es dann mit wav aus?
...kein Problem, mit WAVE files sind auch 8Bit Auflösung möglich.
Bitte schau Dir erst Mal die Dokumentationen zu den WAVE Files an
(Google ist dein Freund) und schau Dir mit einem Hex-Viewer mal ein
bestehendes WAVE File an, dann dürften sich manche Fragen schon geklärt
haben.

Arvid
Gast #45785
Lesenswert?

Avid hat hier den AT45DB081 als Speichermedium vorgeschlagen.
Weiß irgendjemand, woher ich den beziehen kann?(oder überhaupt
Dataflash bausteine von ATMEL) Die österreichischen Vertreter bei denen
ich nachgesehen habe, liefern erst ab 1000 Stück.
Gast #45789
Lesenswert?

> Was ist der Vorteil dabei PWM anstatt eines normalen DAC
> zu verwenden?

Du sparst den DAC und den Platz dafür, aber:

Nachteile von PWM:
- Du must mehr Hirnschmalz in die PWM Routinen investieren
- Du must mehr Rechenleistung für die PWM verbraten
- Du hast mehr Störungen auf dem Nutzsignal
- Du must Oversampling einsetzen
- Der effektiv erreichbare Dynamikumfang ist kleiner als beim DAC

Vorteile vom DAC:
- einfache Ansteuerung
- weniger EMV Probleme
- besserer Dynamikumfang
- weniger Rauschen
- wenn Du eine andere Auflösung brauchst, wechselst Du einfach den DAC
aus

Mein Tipp:
Lass die Finger von PWM, nimm einen DAC (erst recht, wenn Du noch ein
uC Anfänger bist?).


Arvid
Gast #45790
Lesenswert?

Nimm doch diese 512k Flash Parallel-EEPROM`s, 8-Bit (ATMEL) von
Reichelt. Kostet einer glaube ich so um die 4 EUR.
Kannst ja mehrere nehmen da kriegste schon ordentlich was rein bei
8-Bit Auflösung. Und zum Samplen einen einfachen ADC 08xx.
Evtl. vor den ADC noch einen (einfachen) Compressor schalten das
verringert zwar die Dynamik aber nutzt die 8-Bit besser aus und das
kommt letztlich dem Klang bzw. der Sprachverständlichkeit zugute.
Wie hoch ist denn eigentlich die Samplerate die Du verwenden willst ?
Gast #45792
Lesenswert?

@Arvid:
Viele Microcontroller machen PWM in Hardware, d.h. man konfiguriert es
einmal und dann kann man einfach die Werte rausschreiben. Es kostet
dann eben keine Rechenzeit. Wozu sollte das Oversampling gut sein?

Nachteile vom DAC: Braucht nicht nur Platz, sondern auch mehr Pins. Die
meisten brauchen 2 oder 3 Pins, viele sogar mehr. Man kann auch die
Auflösung nicht ändern.

Markus
Gast #45793
Lesenswert?

> Viele Microcontroller machen PWM in Hardware
...muss ich dir recht geben, hat aber eben nicht jeder uC.
Die Erzeugung von Analogsignalen mit PWM ist aber (besonders für
Anfänger) nicht so ganz einfach zu verstehen. Es ist eigentlich simpel,
ich hab es am Anfang aber auch nicht gerafft. Wenn man nicht weiss, was
man da tut, ist es auch schwierig, es zu programmieren.

> Wozu sollte das Oversampling gut sein?

...weil die Erzeugung des Audiosignals anders funktioniert.
Es gibt ein paar Unterschiede zwischen DA-Wandlung und PWM.

Bei einem DA-Wandler habe ich ein treppenförmiges Ausgangssignal.
Bei PWM habe ich ein Rechtecksignal mit unterschiedlicher Pulsbreite.
Die Aliasing-Produkte dürften bei PWM erheblich ausgeprägter sein,
weshalb ich mehr Aufwand in steilflankigere Filter stecken müsste oder
eben Oversampling betreiben, um die Aliasing-Produkte weiter noch oben
zu verschieben.
Das war jetzt eine intuitive Antwort, habe das noch nicht
systemtheoretisch betrachtet. Kommt noch :-)

Weiterer Nachteil von PWM: mehr Rauschen, da das PWM-Signal direkt aus
der Versorgungsspannung des uC gespeist wird. Die ist bekanntlich nicht
besonders störungsarm.

Gruss
Arvid

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren