1 Sek sound auf µC

OP #306323
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
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
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
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
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
OP
hmm muss nochma auf das WAV zurück kommen...

kennt einer einen billigen 8-bit DAC den es bei reichelt gibt???

eine einfache, gute evtl. auch verstärkende außenbescahltung zum
lautsprecher währe auch nixht schlecht, da ich mich mit soundwiedergabe
das erste mal beschäftige
OP
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
@Olaf_K:

Hab mir gerade das Datenblatt zum TDA1543 angeschaut. Was ich dabei
nicht ganz verstehe: Wie läuft der Datentransfer ab?

Es folgt ja nach LSB direkt MSB?!?

Könntest du das mal näher erläutern? - Danke!
Gast
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.
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
OP
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
OP
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
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

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.