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
Hier ein Ansatz, der mit minimaler Hardware auskommt: http://www.romanblack.com/picsound.htm Gruß Konrad
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.
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.
@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???
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,
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
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
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
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
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???
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???
@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!
Das geht nur mit einen I²S kompatiblen Controller. Da müsstest du schauen welcher AVR das kann. aber I²S != I²C
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.
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
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
Nim einfach einen der kleinen TDA verstärker ICs die kommen auch mit unsymetrischer Versorgung aus, und brauchen meist kaum externe Bauteile.
ich hab noch ne frage: woran erkenn ich wo der header einer WAV datei endet um ihn zu löschen???
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.
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
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???
@Richard Wietek: schaut sehr gut aus, aber ich will es mal selber versuchen, trozdem danke!!!!!
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.