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


von Ludwig W. (lordludwig)


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

von Hannes L. (hannes)


Lesenswert?

Schreib mir mal 'ne Mail...

...

von Konrad Heisig (Gast)


Lesenswert?

Hier ein Ansatz, der mit minimaler Hardware auskommt:

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

Gruß
Konrad

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Profi (Gast)


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.

von Ludwig W. (lordludwig)


Angehängte Dateien:

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

von Profi (Gast)


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,

von Ludwig W. (lordludwig)


Lesenswert?

aber das andere mit nur einem C passt oder??? Is halt dann leise

von Erhard (Gast)


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

von Ludwig W. (lordludwig)


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

von Ludwig W. (lordludwig)


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

von Ludwig W. (lordludwig)


Lesenswert?

achja, negative spannungen als beschaltung währen sehr ungeeignet

von Olaf_K (Gast)


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

von Ludwig W. (lordludwig)


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

von Ludwig W. (lordludwig)


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

von Gerit (Gast)


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!

von Lupin (Gast)


Lesenswert?

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

von Winfried (Gast)


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.

von Lupin (Gast)


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.

von Hagen R. (hagen)


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

von Ludwig W. (lordludwig)


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

von Läubi (Gast)


Lesenswert?

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

von Ludwig W. (lordludwig)


Lesenswert?

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

von Markus K. (markus-)


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.

von Winfried (Gast)


Lesenswert?


von Ludwig W. (lordludwig)


Lesenswert?

danke :-)

von Der T. (Gast)


Lesenswert?

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

Gruß,
Techniker

von Axel R. (Gast)


Lesenswert?

MC34119 geht auch gut.

von Richard Wietek (Gast)


Lesenswert?

Da gabs mal spezielle ICs ISD1416 für bis zu 16sec Aufnahmedauer
http://www.winbond-usa.com/products/isd_products/chipcorder/datasheets/1400/ISD1400.pdf

von Ludwig W. (lordludwig)


Angehängte Dateien:

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

von Ludwig W. (lordludwig)


Lesenswert?

ARGH, das sind 3 fragen mein ich^^

von Ludwig W. (lordludwig)


Lesenswert?

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

von Winfried (Gast)


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.

von Ludwig W. (lordludwig)


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.

von Ludwig W. (lordludwig)


Angehängte Dateien:

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

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.