Forum: Mikrocontroller und Digitale Elektronik Microcontroller und wav Dateien


von Christian (Gast)


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

von Dirk (Gast)


Lesenswert?

Hi,

schau dich mal auf den mp3 playern seiten um .... diese Player spielen
auch wav ab.


Mfg

Dirk

von Christian (Gast)


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?)

von Matthias (Gast)


Lesenswert?

Hi

einfach ein ADC und ein genügend großer Speicher. Das Format einer
WAV-Datei findet sich über Google.

Matthias

von Christian (Gast)


Lesenswert?

und wie siehts mit der verwendung von dsp's und codecs aus?
ich würde nämlich gerne mehrere .wav dateien im speicher haben um diese
dann auf dem pc abspielen zu können...

von Tobias Breckle (Gast)


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.

von Christian (Gast)


Lesenswert?

und zu was für einem adc ratet ihr mir?

ich will ca. Telephonqualität erreichen... 8 bit / 8 kHz?

von Christian (Gast)


Lesenswert?

und inwiefern nützt es einen dsp einzusetzen?
(The chip can be programmed to compress (expand) 64kbps voice data down
to (up from) either 32kbps, 24kbps, or 16kbps)
z.B.: http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2863
ratet ihr mir davon ab?
tut mir leid, aber ich hab mit audio nicht so viel am hut ;)

von Arvid Teichtmann (Gast)


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

von Christian (Gast)


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!

von Merle (Gast)


Lesenswert?

Häng doch an den ISD1416 Deinen AVR ran und steure mit dem AVR nen
zusätzlichen Flash speicher an.

Mfg. Merle

von Christian (Gast)


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?

von Manfred Glahe (Gast)


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

von Arvid Teichtmann (Gast)


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

von Christian (Gast)


Lesenswert?

dass es in der binären welt "keine" negative zahlen gibt war mir schon
klar, nur wie das im wav format dann aussieht war mir nicht ganz klar.

Danke!

von Christian (Gast)


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.

von Peter Zimmer (Gast)


Lesenswert?

Hallo,
habe das Thread nur mal kurz überflogen. Bei den Amtel applikation gibt
es eine Applikation für den AVR und einen externen Flash. Das ganze
wird dann glaube ich über PWM wieder Wiedergegeben. Hier gehts zur
Aplikation:
http://www.atmel.com/dyn/resources/prod_documents/doc1456.pdf
Gruß
Peter

von Christian (Gast)


Lesenswert?

Danke Peter.
Die Appnote hab ich zum Glück auch schon gefunden.
Ich weiß jetzt nur noch nicht wo ich den Flash-Speicher herbekomme...

von Christian (Gast)


Lesenswert?

eine frage hätte ich noch.
Was ist der Vorteil dabei PWM anstatt eines normalen DAC zu verwenden?

von Arvid Teichtmann (Gast)


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

von Thomas (Gast)


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 ?

von Christian (Gast)


Lesenswert?

danke für eure antworten. ich hab an "telephonqualität" gedacht, also
so 8Khz.
Möglich wäre es doch auch mit einem DSP zu komprimieren bzw.
dekomrimieren, oder?

von Markus Kaufmann (Gast)


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

von Arvid Teichtmann (Gast)


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

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.