Hallo, wie kann ich bei einem Raspberry Zero einen Audio-IN erstellen? Ich bin derzeit so weit das ich an den GPIOs einen Audio-OUT habe. Das Signal kommt dort per PWM raus... von dort gehe ich in einen PCM5102A und habe ein Analoges Audiosignal.. ok.. das passt alles soweit.. Aber wie realisiere ich einen Audio-IN ? Ich denke ich werde das Analoge in ein Digitales Signal umwandeln.. ok.. und dann? Weiss da jemand weiter? Zumal.. der Sound muss ja im Raspbian auch iwie ankommen und eingestellt werden.. Ich finde immer was von einem MCP3008 aber ich weiss da dann nicht mehr weiter. Vielen Dank
Marlene schrieb: > Hallo, > > wie kann ich bei einem Raspberry Zero einen Audio-IN erstellen? > ADC? > Ich bin derzeit so weit das ich an den GPIOs einen Audio-OUT habe. Das > Signal kommt dort per PWM raus... von dort gehe ich in einen PCM5102A > und habe ein Analoges Audiosignal.. ok.. das passt alles soweit.. > Wenn Du schon ein PWM hat, brauchst Du nicht noch auf einen DAC zu gehen! PWM + Tiefpass reichen für normale Audioqualität aus, so wie das alle "großen" Raspberrys machen. > Aber wie realisiere ich einen Audio-IN ? > Nochmal ADC. > Ich denke ich werde das Analoge in ein Digitales Signal umwandeln.. ok.. > und dann? > Dann hast Du nach dem ADC in der Regel 8..10..12 Bit PCM Werte.
Marlene schrieb: > wie kann ich bei einem Raspberry Zero einen Audio-IN erstellen? "erstellen"? > Ich bin derzeit so weit das ich an den GPIOs einen Audio-OUT habe. Das > Signal kommt dort per PWM raus... von dort gehe ich in einen PCM5102A > und habe ein Analoges Audiosignal.. ok.. das passt alles soweit.. Sicher nicht. Wenn ein PCM5102 beteiligt ist, dann hängt der an der I²S Schnittstelle. Mit PWM hat das nichts zu tun. > Aber wie realisiere ich einen Audio-IN ? I²S funktioniert in beiden Richtungen. Du brauchst halt keinen DAC wie den PCM5102, sondern einen ADC. Gebräuchlicher sind IC, die beides enthalten (DAC und ADC) - die heißen dann Audio-Codec. Ein typischer Vertreter wäre der PCM1803. Google hilft. Suchwörter wären "Raspberry", "I2S" und "Codec" bzw. "ADC" Einfacher wäre eine USB "Soundkarte". Sieht aus wie ein USB-Stick, hat aber zwei 3.5mm Klinkenbuchsen für Audio-In und -Out. > Ich denke ich werde das Analoge in ein Digitales Signal umwandeln.. ok.. > und dann? Und dann was? Du glaubst doch, das zu brauchen. Und jetzt weißt du nicht wofür? > Weiss da jemand weiter? Zumal.. der Sound muss ja im Raspbian auch iwie > ankommen und eingestellt werden.. Sobald der Treiber geladen ist, gibt es dafür ein Device Audio-in irgendwo unterhalb /dev. Da kannst du die Samples vom ADC rauslesen. Genauso wie du in das Audio-out Device Daten sampleweise reischreibst. Wie die Devices genau heißen, hängt vom Treiber ab.
...normalerweise ist I2S das Zauberwort dafür. Hardwarebeispiele: https://www.waveshare.com/uda1380-board.htm https://www.waveshare.com/wm8960-audio-hat.htm
Wie meint ihr I2C. Also I2C ist mir schon klar und ein Begriff vom ATMegas usw.... Ja also alles was ich finde ist das der Raspberry das Signal auf 2 Pins raus gibt (ja habe jetzt gelesen ist I2C).. ok... Also wenn ich das richtig verstanden habe dann gibt der PI das Signal über I2C an den DAC und der macht daraus dann Analog... ok.. Und jetzt hänge ich an die I2C noch einen ADC und habe beides "zeitgleich" ? Also Audio ADC => I2C => Raspbian => Mixer => I2C => DAC => Endstufen... Richtig so?
USB-Soundkarte. Habe ich erst letztens gemacht. Keine 10 Euro. Qualität ist gut. Das Ding funktioniert 'out of the Box', also ohne noch Treiber etc zu installieren. Also 5 Minuten Amazon, 10 Euro zahlen und morgen gibts Musik.
naja... das wird ja ne PCB und bis die kommt dauert ja auch also keine Eile... Wenn ich alles richtig verstanden habe hänge ich das an den I2C Port und habe einen Audio IN. Korrekt?
ok... ja I2S ok... Die gibt es als Input und Output... wie schließt man das an? Das verstehe ich nicht so ganz :(
Marlene schrieb: > Wie meint ihr I2C. Also I2C ist mir schon klar I²S. Nicht I²C. Schlag es nach, wenn dir das nichts sagt! > Ja also alles was ich finde ist das der Raspberry das Signal auf 2 Pins > raus gibt I²S braucht 3 Leitungen für den DAC: CLK, DOUT und LRCLK. Der ADC braucht CLK, DIN und LRCLK. Bzw. der Codec alle 4. > Also wenn ich das richtig verstanden habe dann gibt der PI das Signal > über I2C an den DAC und der macht daraus dann Analog... ok.. > > Und jetzt hänge ich an die I2C noch einen ADC und habe beides > "zeitgleich" ? Jein. Da der Raspi nur die eine I²S Schnittstelle hat, müssen Ein- und Ausgabe mit dem gleichen Takt laufen. Vergleichbar mit SPI. Ein Codec braucht außer den Sample-Daten noch Steuersignale. Das läuft dann typisch über I²C.
Marlene schrieb: > naja... das wird ja ne PCB und bis die kommt dauert ja auch also keine > Eile... Fuer diese Eigenschaften wuerd' ich den PCM2704/5/6/7 vorschlagen. Das wird dann zwar teurer und aufwendiger als 'ne fertige USB-Soundkarte vom Amazon, aber mit mehr Bastelspass... Gruss WK
Also eigentlich ja ganz simpel Analog - > Analog multipleer - > ADC I2S-> Berry I2S - > DAC I2S - > Endstufe Was ich nur nicht verstehe... Gehe ich mit dem ADC nur an DIN und mit dem DAC nur an OUT aber die CLOCK Leitungen etc kommen alle zusammen?
Axel S. schrieb: > Ein Codec braucht außer den Sample-Daten noch Steuersignale. Das läuft > dann typisch über I²C. Der codec wäre doch der Berry... Audio rein... Am berry bearbeiten... Audio raus..
So, ich habe mal ein wenig gegoogled und habe den PCM1808 gefunden... http://i.imgur.com/M8wiJIP.png So würde nun der Eingang aussehen. Und die leitungen SCK, BCK und LRCK werden auch mit dem DAC verbunden und nur DOUT geht an den DIN vom Berry I2S... Jetzt habe ich es richtig, oder?
Aufpassen wer Master am I2S wid. Hatte damals den ARM926 µC als Master und der Codec war nicht in der Lage zeitgenau und fehlerfrei Audio zu senden. Haben dann die I2S umkonfiguriert das der Codec den Takt vorgibt und der Atmel als Slave agierte - je nach Samplerate des Audiofiles und schon waren Sinustöne wieder Sinustöne ohne Knackser.
Ich wollte jetzt beide auf Slave stellen. Also den DAC und den ADC und den Berry als Master.
Kommt vermutlich auch auf die Chips an, wir hatten ein StereoCodec welcher nix buffern konnte und somit der Quatsch vom µC nicht entsprechend dem wave-file ausgeben konnte. Grottige Verzerrungen und falsche Frequenz. Einfacher ist es wenn der Codec den µC Daten in seinem Speed anbietet/abholt, dann stimmt das Timing und Buffersize. Schau halt ins Datenblatt was die Chips können oder eben nicht.
Marlene schrieb: > Analog - > Analog multipleer - > ADC I2S-> Berry I2S - > DAC I2S - > > Endstufe Das könnte man so machen. Aber es ergibt keinen Sinn. Das ist dann einfach nur eine verkomplizierte Variante von Analog -> Endstufe > Was ich nur nicht verstehe... Gehe ich mit dem ADC nur an DIN und mit > dem DAC nur an OUT aber die CLOCK Leitungen etc kommen alle zusammen? I²S läßt dir da Freiheiten. Der Takt (die Taktsignale) kommen vom I²S Master, was entweder der Raspi oder der Codec sein kann. DIN und DOUT haben immer eine feste Richtung. Im Prinzip vergleichbar mit MISO und MOSI bei SPI. Aber ja; wenn du den Raspi die Taktsignale vorgeben läßt, kommt der DAC an DOUT + Taktsignale und der ADC an DIN + Taktsignale. Marlene schrieb: > Axel S. schrieb: >> Ein Codec braucht außer den Sample-Daten noch Steuersignale. Das läuft >> dann typisch über I²C. > > Der codec wäre doch der Berry... Nope. "Codec" bezeichnet das IC, das DAC und ADC enthält. Und meist auch noch einen Pegelsteller, Eingangskanalumschalter, Mikrofonvorverstärker, Endstufen für Kopfhörer oder gar Lautsprecher etc. Dieser ganze Krempel muß halt gesteuert werden. Dafür ist dann die extra I²C Verbindung. Einfach mal das Datenblatt von bspw. dem WM8960 (weiter oben verlinkt) anschauen. Marlene schrieb: > ich habe mal ein wenig gegoogled und habe den PCM1808 gefunden Der sieht auf den ersten Blick wenig geeignet aus. Der Raspi stellt keinen master clock für das I²S bereit. Du brauchst entweder einen Baustein, der den per PLL selber aus dem Bit-Takt (BCLK, SCLK) erzeugen kann (der bereits genannte PCM5102 kann das, der PCM1803 auch) - oder du mußt alle Taktsignale extern erzeugen und schaltest den Raspi auf I²S Slave. Außerdem: wenn du mit Raspian o.ä. weitermachen willst, brauchst du auch ein Kernelmodul. Das wirst du kaum selber schreiben wollen. Schau dich also um, was es schon gibt.
Axel S. schrieb: > Marlene schrieb: >> Analog - > Analog multipleer - > ADC I2S-> Berry I2S - > DAC I2S - > >> Endstufe > > Das könnte man so machen. Aber es ergibt keinen Sinn. Das ist dann > einfach nur eine verkomplizierte Variante von > > Analog -> Endstufe Nicht ganz, denn dadurch das dass Audiosignal durch den Berry läuft kann ich dieses auf dem Berry noch verarbeiten bevor ich es dann wieder an die Endstufen weiter gebe.... Also klar könnte man das alles nun selber aufbauen und auf den Berry verzichten aber.. nunja.. ich bin so ein wenig Linux verwöhnt und.. der Berry hat ja nunmal einiges an Vorteilen... Also im Prinzip habe ich nichts anderes vor was es schon gibt.. nur anders denke ich mal.. hab nicht so intensiv geschaut.. also.. 4 Audio Input => Analog Multiplexer => ADC I2S => Berry Hier kann ich dann alles machen was ich will.. Equilizer usw... Berry => DAC I2S => (hier weiss ich gerade nicht weiter) => TDA Endstufen Warum der Berry? Naja.. erbringt mir alles noch nebenbei mit. WLAN, Bluetooth (A2DP) etc. Gleichzeitig kann ich noch Raspbian nutzen (Linux) und ja.. also einige Vorteile (zumindest für mich persönlich). Zuerst dachte ich daran einfach die Klinke (Audio) auf ein Relai zu legen.. Das gleiche mit den Audioinputs und diese dann einfach auf dem TDAs zu schalten... Dann habe ich auf Analog Multiplexer umgebastelt.. Da das Signal jedoch dann direkt an die TDAs geht habe ich kein EQ. Lautstärke usw.. Dies müsste ich dann mit Potis regeln... Diese Sachen würden mir dann nur bei z.b. Internetradio oder A2DP zur Verfügung stehen... Also musste ich mich nun erstmalig mit "digitalem" Audio auseinander setzen daher die Fragen... Sorry wenn das vielleicht etwas nervt. Ja, also das mit dem SCK ist mir auch schon aufgefallen. Als ich das ganze am berry anschließen wollte.... der hat kein SCK für I2S.. wie du aber auch sagtest hat der PCM5102 dies aber.. Somit habe ich nun den PCM5102 und dem PCM1808 zusammen gelegt und den PCM5102 als Master eingestellt. Nun muss ich nur noch schauen wo ich beim Raspberry den SCK anlegen muss.
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.