PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Soundspeicherung + Ausgabe [digital]...



-jan_
05.09.2006, 17:50
Moin!

Wie der Titel schon sagt, würd ich gern eine Schaltung zur Sound-Ein- und Ausgabe entwickeln. Das ganze soll ein kleines Projekt für meine Ausbildung werden:

Bis jetzt verwenden wir die ISD Analogspeicher 2560P. Leider haben die eine viel zu niedrige Samplerate (8kHz), außerdem nervt das bespielen, weil es einfach ne Ewigkeit dauert und keinen Spaß macht, wenn man mal eben so 20 davon nacheinander machen muss.

Es geht dabei wirklich um Geräuschaufnahmen, keine Sprache. Gerade da sind die einfach nicht akzeptabel.
Jetzt ist mir die Idee gekommen, das ganze mittel E(E)PROM und AD/DA Wandler zu machen. dazwischen vll. nen kleinen µC zur ansteuerung des ganzen.
Es sollen eigentlich nur max. 15s an Sound gespeichert werden, die dann auf Knopfdruck wiedergegeben werden können. Bei 24kHz/8bit/mono sollten da 512Kx8 locker reichen, oder seh ich da was falsch? Muss dazu sagen, ich bin Elektroniker in der Ausbildung und hab mich noch nicht wirklich mit Speicherbausteinen beschäftigt.

Wäre das überhaupt geschwindigkeitstechnisch zu lösen? Oder ist die Idee kompletter Quatsch? Kann man den D/A Wandler direkt ans Eprom hängen und nur den Output des Eproms ansteuern über nen µC, z.B. nen AVR oder müssen die (noch digitalen) Signale zwangsläufig erst vom Eprom in den AVR, von da dann weiter zum DAC und dann zur Endstufe?

Gibt es sonst noch Möglichkeiten, bzw. ICs, die Sound direkt speichern und wiedergeben können, in guter Qualität (Wie gesagt 10-15 Sek. reichen aus.. Von 60 Sek. in schlechter Qualität hab ich garnichts)

Ach ja die Aufnahme sollte sowieso auf ne seperate Platine, sprich mit Kabelverbindung zur Ausgabeplatine. Hatte mir das so gedacht:
Einmal wird das Signal per ADC auf nen Eprom gespielt, danach nurnoch vom Eprom auf andere Eproms kopiert, die dann in die Ausgabeplatinen kommen. Dürfte ja schneller gehen als jedes Mal 15 Sek für die A/D Wandlung zu investieren.

Naja wie auch immer, auf jeden Fall wäre ich für jegliche Anregungen+Hilfe sehr dankbar!

mfG Jan

alter Mann
05.09.2006, 20:51
Hallo,

Du könntest einen Controller mit ADC Port nehmen und mit diesem das Signal aufnehmen und dann via I²C auf ein EEProm speichern.
Das Einzige, was dabei zu beachten ist, ist daß zumindest die Controller, die ich kenne, das Signal mit 10Bit Wandeln. Da musst Du Dich dann entscheiden, ob Du die oberen oder die unteren 2 Bit abschneidest. Aber wenn der Signalpegel weit genug gedrückt ist, daß die beiden obern Bit nicht angesteuert werden, dann gibt das auch kein Clipping.

Zum kopieren dann auch mit dem Controller die Daten auf ein zweites EEProm speichern, welches dann in der Anwendung von einem anderen Controller nur ausgelesen werden muss.
Das zurückwandeln in ein Audiosignal ist etwas Hardwareaufwändiger, da man einen kompletten Port mit 8 Bits braucht, um das Ganze dann über ein R2R Netzwerk und einen OpAmp in ein Analoges Audiosignal zu wandeln.

Die 24Khz sollten eigentlich mit fast jeden Controller machbar sein.

Die 15Kx8 sind für etwas mehr als 20 Sekunden ausreichend.


Florian

-jan_
05.09.2006, 21:55
Danke für die schnelle Antwort!

512kx8 meinst du wohl ^^

Also.. Könnte ich dann nicht eigentlich nur nach und nach jeweils 8 Bits aus dem EEProm über I²C auf den AVR ziehen und die 8 Bits auf 8 Ausgänge des AVR's legen? Dann entweder ein R2R Netzwerk mit OP's oder direkt einen 8 Bit D/A IC, wo alles drin ist (R2R mit OP ist bestimmt nochmal 1-2 Euro günstiger).

Wenn man keinen DAC hat bräuchte man doch eigentlich nur ein paar transistoren, die von den einzelnen Ausgängen des AVR die Bits des R2R's auf High oder Low schalten, bzw gegen VCC oder gegen GND.
Dann noch 1-2 OP's (je nach Anzahl der Ein- bzw. Ausgänge) und nen Haufen Widerstände...
Die Ausgänge eines AVR's darf man wohl nicht direkt ans R2R legen (ohne Transistoren), denke dann löst sich der AVR in Rauch auf oder?


Hört sich irgendwie ziemlich einfach an finde ich, korrigier mich bitte wenn da Denkfehler drin stecken :)
Aber eigentlich müsste das ganze dann doch in die richtung genauso gut funktionieren wie in die andere?

Danke schonmal,

mfG Jan

PICture
06.09.2006, 08:29
Hallo -jan_!

Ich habe einen Vorschlag: wie wäre es mit PCF 8591? Ausserdem würde ich die Geräusche zuerst im statischen RAM speichern und nur die, die ich haben will in den EEPROM kopieren.

MfG

Manf
06.09.2006, 08:49
Wie wäre es damit?

DIKTIERGERÄT WP-RC02

Diktiergerät mit Uhr
Preisgünstiges Mini-Diktiergerät im Pen-Fomat mit Uhr und Alarmfunktion.
Artikel-Nr.: 773536 - 62
12,95 EUR
Inkl. gesetzl. MwSt. und
zzgl. Service- und Versandkosten
Ausstattung:
Nachrichtensuche durch Nummerneingabe möglich
Wiederholfunktion
Tastensperre
LC-Display.

The Man
06.09.2006, 09:57
Hallo da,

Verstehe ich das richtig:
ein analoges Signal wird mitttels ADC digital und daher als "eckigen" Graphen gespeichert. Die gepeicherten Daten sind also Werte, die EINEM anzusteuernden DAC sagen welche Frequenz er bis zur nächsten Aktualisierung ausgeben soll. Die Periodendauer zwischen den Aktualisierungen ergibt dann die Samplerate.

Und sind die Komponenten schnell genug kann man über einen µC mit ADC + DAC + SPEICHER folgenden Weg gehen:

aufnehmen: Mikrofon -> ADC -> µC -> über Bus in -> Speicher
abspielen: Speicher -> über Bus an -> µC -> DAC -> Endstufe

?????????????????????????????????????????????????? ??????????????????????

The Man[/stream]

The Man
06.09.2006, 10:14
Nachtrag:

statt des DAC´s wird ein R2R Widerstabdnetzwerk benutzt und die Frequenz wie die I/O Ports geschaltet werden?

alter Mann
06.09.2006, 16:01
Hallo,

Ja, ich meinte 512x8K


Also.. Könnte ich dann nicht eigentlich nur nach und nach jeweils 8 Bits aus dem EEProm über I²C auf den AVR ziehen und die 8 Bits auf 8 Ausgänge des AVR's legen?

Genau das meine ich. Du liest das Byte aus dem EEPROM und gibst 24000mal in der Sekunde ein neues Byte auf die Ausgänge.
Aber Du möchtest doch soweit ich das verstanden habe, willst Du dein Sample doch auf mehrere andere Geräte kopieren, deshalb meinte ich, die Daten erst auf ein anders EEPROM kopieren. Oder habe ich da jetzt was falsch verstanden?

Das R2R-Netzwerk kannst Du eigentlich auch direkt an die Ausgänge anschliessen, wenn Du die Widerstände so berechnest, das der grösste an einem Port mögliche Strom 20mA nicht überschreitet. Da sind keine Transistoren nötig. Und den Ausgang des Netzwerkes legst Du direkt an den Eingang eines Verstärkers bzw. Abschwächers, da die grösst mögliche Spannung etwa 5Volt beträgt (bei 5Volt Betriebsspannung).
Theoretisch kannst Du die Widerstände auch sehr hoch wählen, da ein OpAmp ja einen recht hohen eingangswiderstand hat. In der Regel sagt man, das man einen Spannungsteiler (hier das R2R-Netzwerk) höchstens mit 1/10tel des Stromes belasten soll, der durch den Gesamten Spannungsteiler fliesst, da sonst die Ausgangsspannungen zu weit weg driften.


Florian

-jan_
06.09.2006, 16:33
Erstmal danke für die vielen Antworten :)


Hallo -jan_!

Ich habe einen Vorschlag: wie wäre es mit PCF 8591? Ausserdem würde ich die Geräusche zuerst im statischen RAM speichern und nur die, die ich haben will in den EEPROM kopieren.

MfG

Danke für den Tip - Das Ding ist ja praktisch ideal! Eigentlich alles enthalten was man braucht, A/D, D/A und I²C Kann er auch noch :)

Das mit dem RAM wäre ne Idee, aber da die Geräusche (höchstwahrscheinlich) mit einem Synthesizer (PC o.ä.) erzeugt werden, denke ich, das ist nicht nötig.


Wie wäre es damit?

DIKTIERGERÄT WP-RC02

Für meine Zwecke glaub ich nicht wirklich gut geeignet. Ich kann mir nicht wirklich vorstellen, dass die Soundqualität von sowas viel besser ist als beim 2560P z.B.
Ausserdem wirds dann doch schon ganz schön teuer, wenn man bedenkt dass man da für die externe Ansteuerung auch nochmal ein wenig Elektronik notwendig ist. glaube leider auch nicht dass das Gerät was aushält, ein wenig robust sollte es schon sein ;)

The Man:
Im Prinzip hast du das vollkommen richtig verstanden, bis auf dass die Aufnahmequelle wahrscheinlich eher irgendwas Synthesizer-mäßiges wird. Einen ADC kann man sich bei Verwendung eines µC mit internem ADC auch sparen. Obs am Ende ein PC ist oder ein echter Hardware-Synth von einem Bekannten, entscheide ich dann später, je nachdem womit ich besser zurecht komme :P

Das Problem ist, dass momentan 2560P's verwendet werden, aber die sind glaub ich eher für Anrufbeantworter o.Ä. gedacht, wo die Qualität nur eine minimale Rolle spielt. Wie gesagt, ich bin mit dem Sound der Teile einfach total unzufrieden. Außerdem kosten die über 10 Euro, was nicht gerade ein Schnäppchen ist..


Also ich tendire momentan zu PICtures Vorschlag. Hardwaremäßig sehr leicht aufzubauen, besonders den PCF 8591 find ich sehr interessant, erstmal wegen I²C und er ist auch ziemlich günstig ist mit 2,85 Euros. Außerdem ist halt nahezu die komplette Hardware in wenigen IC's enthalten. Denke so werd ich das ganze mal anfangen zu planen :)

Danke nochmal!!

mfG Jan

-jan_
06.09.2006, 17:00
Da war ja wieder jemand schneller als ich - Mein nächstes Prjekt wird nen Aufsatz für den Kochtopf der automatisch umrührt während ich am PC sitze ;)


Aber Du möchtest doch soweit ich das verstanden habe, willst Du dein Sample doch auf mehrere andere Geräte kopieren, deshalb meinte ich, die Daten erst auf ein anders EEPROM kopieren. Oder habe ich da jetzt was falsch verstanden?


Nein das ist vollkommen richtig. Hatte ich wohl vergessen zu schreiben. Vielleicht weil das einfache kopieren eines EEProms nicht so das Problem darstellt ^^
Trotzdem bin ich mittlerweile am 8591 hängengeblieben, weil ich dann nurnoch einen sehr kleinen AVR dafür brauch, mit I²C und sonst nichts. Andererseits braucht ich außer dem AVR (mit ADC) und dem R2R ja sonst bei deiner Version auch kaum noch was... Schwer zu entscheiden!
Werde wohl beides mal aufbauen wenn ich soweit bin und dann entscheiden was am Ende am besten ist (von der Leistung, dem Hardwareaufwand und vor allem dem Preis)

Danke nochmal,

mfG Jan

shaun
07.09.2006, 13:42
@The man: man kann einem DAC nicht sagen, welche Frequenz er ausgeben soll, es werden lediglich diskrete Spannungswerte vom ADC eingelesen, abgelegt und mit der gleichen Abtastrate wieder in Spannungsstufen umgesetzt. Durch einen entsprechenden Tiefpass dahinter, sowie einem Tiefpass vor dem ADC beim Aufnehmen zusammen mit der richtigen Abtastfrequenz wird das Originalsignal rekonstruiert.

MST_NRW
07.09.2006, 16:32
Hey -jan_ ich hatte vor einiger Zeit folgende Seite gefunden:

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

ist zwar für Pic´s aber ich denke eine weitere Anregung zu Deinem Thema...

MST_NRW
10.09.2006, 20:51
Habe noch was gefunden..!

http://s-huehn.de/elektronik/bbgong/bbgong.htm

-jan_
14.09.2006, 01:18
Hi!

Interessant deine Links! Werd ich mir morgen mal näher durchlesen. War grad erst ne Woche krank, deshalb die etwas späte Antwort.
Besonders der zweite Link ist ja sogesehen genau das was ich eigentlich vorhatte :)
Auch der erste ist beeindruckend.. Vor allem von der Einfachkeit her. Mal schaun, muss jetzt erstmal (leider) ne Weile warten, da ich kein Geld hab um mir Bauteile zu bestellen im Moment.

mfG Jan

MST_NRW
15.09.2006, 18:47
Würde mich freuen, wenn Du dann mal berichten würdest wie die Sache so läuft. Will das ganze auch mal ins Auge nehmen,aber nur mit Wiedergabe.
Ich muss aber mein jetziges Projekt zu ende bringen.

digger
15.09.2006, 22:11
Ich will dir ja nicht den Wind aus den Segeln nehmen,
aber ist I2C nicht ein bisschen zu langsam für
vernünftige Sampleraten ?
Statische Rams kosten auch nicht die Welt
und sind wesentlich schneller.