1 Sek sound auf µC

#306323
Lesenswert?

Hallo,

hab gesucht aber nichts konkretes gefunden.

Ich will auf einem beliebigen µC einen Sound von 1Sek abspielen. Nicht
eine Melodie, dazu habe ich genug gefunden, sondern ca. 1 Sek sprache
die mir im WAV format vorliegt. Es muss keine gute quali sein
hauptsache man kann das Wort doch irgenwie verstehen.

Der µC muss währen der Wiedergabe nichts anderes machen, also stehen
bis zu 20Mhz zur verfügung.

Die frequenzen zu erzeugen is nicht unbedingt mein Problem, vielmehr
wie ich aus der WAV datei eine liste mit frequenten und dauer oder so
mache.

Will das ganze in ASM schreiben.

Ich glaub irgendwie sowas hab ich schonmal auf ner (schwarzen) seite
gesehen die ich aber seit 2 tagen vergeblich suche.

Vlt kennt jemand diese seite???

Das was ich bräuchte währe ein WAV to liste konvertor oder eine andere
möglichkeit wie ich die WAV datei irgendwie auf dem µC abspielen kann
Persönliche Seite #306326
Lesenswert?

Aus der .wav-Datei musst Du gar keine Liste mit Frequenzen machen.
Die kann "einfach so" an einen D/A-Wandler ausgegeben werden.

Angenommen, Du verwendest eine 8-Bit-Mono-Datei mit 8 kHz Samplerate
(das ist besser als Telephonqualität), so benötigt die Datei gerade mal
8 kByte pro Sekunde. Passt also ins Flash-ROM durchschnittlicher AVRs.

Das Abspielen erfolgt so: Timerinterrupt mit Samplerate (also 8 kHz)
initialisieren, im Interrupthandler ein Byte Daten holen, an den
D/A-Wandler ausgeben, fertig.
Gast #306327
Lesenswert?

Aber Vorsicht, es gibt sehr verschiedene wav-Formate, es eignen sich
keine komprimierten (ADPCM ...) für die direkte Ausgabe.
Bei Stereo-files kannst Du vorher den linken und rechten Kanal
addieren.
Bei 12 - 16-bit files musst Du die 8 MSB-Bits verwenden.
Evtl. kannst Du den Header am Anfang der Datei wegschneiden, da er sehr
kurz ist, ist er jedoch kaum hörbar.


Achte darauf, dass am ADC-Out ein C in Reihe geschaltet ist, denn der
Ruhepegel ist 128, also Vref/2.
Gast #306329
Lesenswert?

Die Gegentaktendstufe gibt bei kleinen Pegeländerungen (+/- 0,7V) gar
nichts aus, zumindest einen Widerstand vom Port zum +-Pin des Cs,
besser ein Audio-Endstufen-IC aus einem Walkman oder Handy.

Für die im oberen Link beschriebene 1-bit-Ausgabe könnte die
Gegentaktschaltung in etwa funktionieren, da nur digital angesteuert
wird,
Gast #306331
Lesenswert?

Hallo Ludwig,

wenn du auf deiner Platine noch Platz hast, dann steuer mit deinem µC
einfach einen "ISD1416" oder "1420" an.
- Einfache Speicherung der Audiodatei mittels Übertragung über
Chinchkabel
- Gute Ausgabequalität
- Lautsprecher direkt anschließbar (wenn auch etwas leise) sonst
Verstärker
- Einfache Ansteuerung durch µC
#306337
Lesenswert?

zu I2S: da ich nur 1 kanal brauch kann ich dann die WS leitung dauerhaft
auch lo oder hi legen??? wie merkt er dann das ein paket fertig ist???

Ich würde es so machen(angonommen ich brauche WS):

-Interrupt auf 8kHz (bitrate der WAV datei)
-Im Interrupt die 8 bit auf rechten und linken Kanal ausgeben
-Nächstes byte laden
-Auf nächsten Interrupt warten

-CLOCK LEITUNG IST ZWISCHEN DEN INTERRUPTS AUS!!!

würde das so gehen oder sogar ohne WS???

Weil wie sollte der Chip ohne WS wissen wann das Paket fertig ist und
wann eine neues anfängt???
Gast #306341
Lesenswert?

Ich glaube I²S ist ziemlich zeitsensibel. Also der takt muss konstant
sein.

Oder doch nicht?

Hat denn schon mal jemand über eine Verstärkerschaltung für das
Analogsignal nachgedacht? Es gibt da spezielle ICs auch für stereo
verstärkung aber die wollen negative spannungen (ich meine im
Datenblatt eines ICs mal was von -18V und +18V gelesen zu haben).

Ich interessiere mich speziell für einen stereo Kopfhörerverstärker IC
der ohne viel externe beschaltung auskommt und direkt hinter den DAC
kommt.

Von Maxim gibt es auch einen DAC mit internen verstärker - ist aber
schwer zu bekommen.
#306342
Lesenswert?

Hängt vom Chip ab. Nimmst du die Audio DACs zb. so haben die einen
separaten Takt zur Ausgabe der Samples und unabhängig davon einen
Datentakt für I2S zum Empfang der Daten. Dieser kann auf Grund eines
internen FIFO Buffers dann wesentlich schneller sein.

Gruß Hagen
#306343
Lesenswert?

Hier ist alles sehr gut erklährt:
http://www-user.tu-chemnitz.de/~heha/Mikrocontroller/TDA1543.htm

@Gerit: "Es folgt ja nach LSB direkt MSB?!?"

der WS Pin wechselt 1 bit vor vervollständingung der übertragung des
bits.
das heißt du sendest MSB bis LSB-1 dann wechselt du WS und sendest LSB.
Dann wieder MSB bis LSB-1 und wechselst wieder und schreibts LBS.....

danke für alles!!!

wie sensibel I²S auch den takt ist würde mich aber noch interessieren
#306352
Lesenswert?

der MC34119 gefällt mir gut, da er mit 5V auskommt. (der LM380 über
10V)

Hab 2 Fragen dazu:

- Wie regel ich bei dem Teil die Lautstärke???
- Wie viel Watt dürfen die Lautsprecher haben das man noch was hört???
- muss ich das teil durch den kondensator da anschließen(siehe anhang)
oder über 2 kondensatoren, also einen am ausgang vom DAC und den
anderen so wie im Bild???
Angehängte Dateien:
Gast #306355
Lesenswert?

Du kannst das Eingangssignal über ein Poti regeln. Poti zwischen Eingang
ssignal und Masse, Mittelabgriff geht an den Verstärker. Z.B. 50 KOhm
Poti.

0.1-0.25 Watt sind schon ganz ordentlich, um was zu hören. Auch kleine
Schallwandler mit z.B. 12mm Durchmesser reichen für weckerartige
Piepstöne. Gibt es bei Reichelt.

Kondensator muss sein, um Gleichspannungsanteile rauszufiltern.

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