mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Microcontroller und wav Dateien


Autor: Christian (Gast)
Datum:

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

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

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


Mfg

Dirk

Autor: Christian (Gast)
Datum:

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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

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

Matthias

Autor: Christian (Gast)
Datum:

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

Autor: Tobias Breckle (Gast)
Datum:

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

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und zu was für einem adc ratet ihr mir?

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

Autor: Christian (Gast)
Datum:

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

Autor: Arvid Teichtmann (Gast)
Datum:

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

Autor: Christian (Gast)
Datum:

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

Autor: Merle (Gast)
Datum:

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

Mfg. Merle

Autor: Christian (Gast)
Datum:

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

Autor: Manfred Glahe (Gast)
Datum:

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

Autor: Arvid Teichtmann (Gast)
Datum:

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

Autor: Christian (Gast)
Datum:

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

Autor: Christian (Gast)
Datum:

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

Autor: Peter Zimmer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/...
Gruß
Peter

Autor: Christian (Gast)
Datum:

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

Autor: Christian (Gast)
Datum:

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

Autor: Arvid Teichtmann (Gast)
Datum:

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

Autor: Thomas (Gast)
Datum:

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

Autor: Christian (Gast)
Datum:

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

Autor: Markus Kaufmann (Gast)
Datum:

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

Autor: Arvid Teichtmann (Gast)
Datum:

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

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.