www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 1 Sek sound auf µC


Autor: Ludwig Wagner (lordludwig)
Datum:

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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schreib mir mal 'ne Mail...

...

Autor: Konrad Heisig (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier ein Ansatz, der mit minimaler Hardware auskommt:

http://www.romanblack.com/picsound.htm

Gruß
Konrad

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

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

Autor: Profi (Gast)
Datum:

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

Autor: Ludwig Wagner (lordludwig)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@HanneS: Kann deine Mail ned finden.

@Profi und Rufus: Also das mit dem AD Wandler hab ich verstanden, aber
wie sieht die außenbeschaltung genau aus??? passt es so wie im
anhang??? Beide Varianten OK???

Autor: Profi (Gast)
Datum:

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

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aber das andere mit nur einem C passt oder??? Is halt dann leise

Autor: Erhard (Gast)
Datum:

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

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gibts die bei reichelt und wie is der hersteller??? platz hab ich, da
ich das ja dann sogar mit tiny statt 40 piner ansteuern kann. Ich hoffe
kein SMD

Autor: Ludwig Wagner (lordludwig)
Datum:

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

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
achja, negative spannungen als beschaltung währen sehr ungeeignet

Autor: Olaf_K (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau Dir mal den TDA1543 an, kostet 75 Cent, ist ein 2x16-Bit-D/A für
I2S-Bus (= 3 Controller-Pins reichen), und kann auch mit beliebigen
kürzeren Bitlängen umgehen.

MfG Olaf

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das schaut doch schon mal sehr gut aus!!!

reicht als ausgang ein Elko und dann direkt der lautsprecher oder kennt
einer noch verstärkende aber einfache schaltungen???

Autor: Ludwig Wagner (lordludwig)
Datum:

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

Autor: Gerit (Gast)
Datum:

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

Autor: Lupin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das geht nur mit einen I²S kompatiblen Controller. Da müsstest du
schauen welcher AVR das kann. aber I²S != I²C

Autor: Winfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.elektronik-kompendium.de/public/riederer/I2S.htm

Das lässt sich auch softwaremäßig umsetzen. Sieht mir auch ziemlich
ähnlich zu I2C aus.

Autor: Lupin (Gast)
Datum:

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

Autor: Hagen Re (hagen)
Datum:

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

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier ist alles sehr gut erklährt:
http://www-user.tu-chemnitz.de/~heha/Mikrocontroll...

@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

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nim einfach einen der kleinen TDA verstärker ICs die kommen auch mit
unsymetrischer Versorgung aus, und brauchen meist kaum externe
Bauteile.

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab noch ne frage: woran erkenn ich wo der header einer WAV datei
endet um ihn zu löschen???

Autor: Markus K. (markus-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du könntest entweder den Aufbau so einer WAV-Datei anschauen (siehe z.B.
 http://www.wotsit.org/ ) oder einfach einen Audioeditor nehmen, der die
Dateien im Raw-Format speichern kann.

Autor: Winfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke :-)

Autor: Der Techniker (_techniker_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kennst du schon den LM380? ;)
Ist ein Verstärker-IC mit ganz wenig drum-rum! :)

Gruß,
Techniker

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MC34119 geht auch gut.

Autor: Richard Wietek (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da gabs mal spezielle ICs ISD1416 für bis zu 16sec Aufnahmedauer
http://www.winbond-usa.com/products/isd_products/c...

Autor: Ludwig Wagner (lordludwig)
Datum:
Angehängte Dateien:

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

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ARGH, das sind 3 fragen mein ich^^

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Richard Wietek: schaut sehr gut aus, aber ich will es mal selber
versuchen, trozdem danke!!!!!

Autor: Winfried (Gast)
Datum:

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

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so, der TDA1543 wurde ja wegen 5V betriebsspannung empfohlen.

Kann mit einer sagen wie ich den jetzt ohne den OPV zum laufen
bekomme??? Der brauch ja wieder +-5V also das was mich an allen anderen
störte.

Autor: Ludwig Wagner (lordludwig)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
wenn geht dann bitte mal in den anhang zeichnen was noch rein muss das
es auch ohne +-5V geht.

Habe nur 5V zur verfügung

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.