Hallo leute, ja der titel sagt eigentlich schon alles: ich nehme daten mit nem digitalen Mic auf, die ich an Digital/Analog wandler gebe, die daten liegen am ausgang des MIC in zweier komplement in 24 bit wörter. rücktransformiert, bringt nichts... eins zu eins auch nichts.. eine Idee ?
Monsieur schrieb: > Was bitte ist ein "digitales Mikrofon"? Es ist entweder da (=1) oder es ist nicht da (=0). Das kennt man doch schon von den "digitalen Antennen" für DVBT. Gruss Harald
lol hilft mir leider nicht sehr. ich wäre für Hilfe sehr dankbar ;) nicht böse gemeint
@Joed (Gast) Und was ist Deine Frage/Problem? Mit Deiner "Beschreibung" kann ich gar nix anfangen ...
Hallo Joed, > ja der titel sagt eigentlich schon alles: Leider nicht. Er enthaelt ja nichtmal eine Frage, genausowenig wie Dein weiterer Text. Darueberhinaus auch noch falsch: > ich nehme daten mit nem digitalen Mic auf, die ich an Digital/Analog > wandler gebe, die daten liegen am ausgang des MIC in zweier komplement > in 24 bit wörter. Du jast also Digitale AUsgangsdaten, also keinen Digital/Analogwandler sondern einen Analog/Digitalwandler, richtig? > eine Idee ? Besser erklaeren gibt bessere Hilfe/Antworten. Gruss Michael
Joed schrieb: > ADMP 441 z.B Hast Du Dir schon mal die Muehe gemacht, das Datenblatt durchzulesen: http://www.analog.com/en/mems-sensors/mems-microphones/admp441/products/product.html Da steht alles drin! Und wenn Du wissen willst, was Du mit dem Ausgangssignal machen koenntest, erkundige Dich, was I2S ist. Nix mit "komplement in 24 bit wörter"..... Gruss Michael
Wofür isn das Viech? Welche App? Digitale Mikrophone sind einfach Mikrofone mit integrierten ADC und digitalem Ausgang. Im Profibereich S/PDIF
Also leute, danke für die Atworten aber vorurteile ohne Ende.. Natürlich habe ich das Datenblatt gelesen und natürlich weiss ich was I²S ist. Also nochmal: Aus dem Mic kommen Digitale daten und zwar 24 Bit Wörter in zweier Komplement. die gebe ich auf einem Dig/Ana Wandler um aus den Bits, Sprache wieder zu machen. Am Anfang habe ich es mit einem Analogen Mic gemacht per PCM, mit ner Abtastfrequenz von 8 KHz. die Abgetastenten werte auf nem Dig/Ana wandler und die sprache wieder ausgegeben, läuft... Jetzt siehts anderes aus und meine Frage lautet: hat jemand eine Idee wie ich die Daten bearbeiten muss bevor ich sie auf dem Wandler gebe.
Deine Herangehensweise zeigt, dass du vermutest, dass es hier von Experten für dieses Gebiet nur so wimmelt. Die meisten hier, die durchaus sehr fit mit Elektronik sind, kennen trotzdem kein digitales Mikrofon. Und wenn du in deiner Anfangsfrage nicht mal den Typ des Mikrofons nennst, wie soll dir dann jemand helfen!!! Das Geheimrezept für eine qualifizierte Antwort ist also eine qualifizierte Frage! Mit ALLEN Infos die du über die Sache hast.
TYP des Mic habe ich auch genannt Stefan : Autor: Joed (Gast) Datum: 30.08.2012 16:35 ADMP 441 z.B <=== . ich habe auch alle benötigten Infos für jemand der ne idee haben könnte gegeben. Mir ist bewusst dass dies zu spezifisch ist und wäre auch dankbar für "fundierte" Hilfe. Grob formulierte Ratschläge sind nett aber im ernst nicht sehr hilfreich. Wenn ich eine Frage lese die ich beantworten kann dann tue ich das auch, wenn ich aber nichts mit der Thematik zu tun habe dann sag ich nichts statt Ratschläge zu geben.. Aber der Wille zählt deswegen Danke trotzdem.
Naja, wir müssen wohl immer noch raten. Offensichtlich verwendest du den Stereo-Mode. D.h. du musst irgendwie dafür sorgen, die 2*24bit aus den 48-bit-Wörtern zu extrahieren. Bspw. mit einem µC. Und kann dein DAC (welcher ist es denn?) überhaupt stand-alone die I2C-Daten verarbeiten?
Stereo mode ja, extrahieren...na ja ich bin mit dem Cortex unterwegs. nutze den D/A-Wandler vom cortex. Also ich nehme die gelieferten daten, speichere sie 3 BYTE weise (24 bits) in ein Ext.Ram-Speicher, gebe die daten von externen ram auf den D/A-Wandler und erwarte das aufgenommene auszugeben ohne erfolg. Mit nem Analogen mic funktioniert die selbe Methode 1 zu 1 einwandfrei. ich vermute dass ich die vom Mic geliferten daten nochmals bearbeiten muss bevor ich sie vom speicher auf dem wandler gebe..hab aber erstmal keine Ahnung..und davon ne ganze Menge..lol
Du hast also 2 ADMP441 laut Datenblatt zusammengeschaltet und oder nur einen ? Wenn du nur einen hast ist der als linker oder rechter Kanal konfiguriert ? (siehe Seite 9 im Datenblatt http://www.analog.com/static/imported-files/data_sheets/ADMP441.pdf) Je nachdem mußt du : Bit 1 bis 25 für mono left chanel (Pin L/R=0) auswerten oder Bit 34 bis 56 für mono right channel (Pin L/R=1) auswerten. Alles klar ? Schaltplan ? Welche Bits wertest du aus ?
>Stereo mode ja, extrahieren...na ja ich bin mit dem Cortex unterwegs. >nutze den D/A-Wandler vom cortex. >Also ich nehme die gelieferten daten, speichere sie 3 BYTE weise (24 >bits) in ein Ext.Ram-Speicher, gebe die daten von externen ram auf den >D/A-Wandler und erwarte das aufgenommene auszugeben ohne erfolg. Ich bin zwar kein Cortex-Experte, aber hast Du überhaupt schonmal versucht zu debuggen? Also ermitteln, ob die Daten sauber eingelesen werden, ob die im RAM sauber abgespeichert, ob der DAC (ich vermeide das entsprechende deutsche Kürzel DAU mal ;-) die Werte auch bekommt, .... Und für die Cortex-Experten hier wäre es sicherlich hilfreich, den genauen Type des µC zu erfahren, und dann auch Dein Sourcecode für dieses Sache. soviel zu Deine Aussage: >ich habe auch alle benötigten Infos für jemand der ne idee haben könnte >gegeben. Mir ist bewusst dass dies zu spezifisch ist und wäre auch >dankbar für "fundierte" Hilfe. Grob formulierte Ratschläge sind nett >aber im ernst nicht sehr hilfreich.
Hitex als debugger..ja alles ok. ich danke für die Vorschläge, leider bringen sie einem nicht weiter.. soweit war ich schon. Ich forsche einfach weiter.
Hallo ich habe auch das gleiche Problem mit dem Mikrofon INMP441 (vorher ADMP441). Ich bekomme Daten vom Mikrofon gelesen und gebe diese dann an der ABDAC-Schnittstelle eines uC-ATUC3 aus. Funktioniert leider nicht. An der ABDAC habe ich ein Analogen Verstärker und ein Hochpass eingebaut. Bei einem Testsignal funktioniert es. Ich bekomme etwas Sprache, aber ganz viel rauschen heraus. Die Sprache wird Zufall sein, weil ich nicht um 8 Bit nach rechts schiebe (von 24 Bit IN nach 16 Bit OUT), sondern nur um 2 Stellen. Ich schreibe das nächste OUT-WORD, wenn der Interrupt sagt, das es geschrieben ist. D.h. lesen der Microfonsignals und wieder an OUT ausgeben. Muss denn das I2S Signal vom Mikrofon umgerechnet werden? Hat jemand eine Idee? mfg edmu
Ich hänge mich mal dran, weil der thread hier vorgeschlagen wurde: Ich möchte das INMP441 einsetzen, welches wie oben schon erklärt, ein digitales Mikrofon darstellt und einen IIS-Ausgang hat. Das Datenblatt dazu findet man z.B hier: https://datasheetspdf.com/pdf/1350167/InvenSense/INMP441 Leider ist mir nicht klar, wie dort der Takt erzeugt wird. Das Mikro hat angeblich den Ausgang SD, SCK, WS und L/R. Bei der Beschreigung für den Takt steht "Clock FOR I2S-IF", also Takt FÜR das Interface, so als on man den vorgeben muss. Andererseits steht bei WS auch "FOR" und das ist definitiv ein Ausgang. Heißt das, dass dieses Modul seinen Takt selber erzeugt? Wie verwendet man dann mehrere gleichzeitig?
Nimm dies: https://invensense.tdk.com/wp-content/uploads/2015/02/INMP441.pdf Nein, das Modul arbeitet als Slave und erzeugt seinen Takt nicht selbst. Du musst ihm WS und SCK vorgeben. Das machst Du entweder mit einem Zähler (HC4040) oder einem Chip, der I²S-Master kann. Steht aber eigentlich auch alles deutlich in dem gut gemachten Datenblatt! Gruß Jobst
:
Bearbeitet durch User
Ein Datenblatt sollte immer beim Hersteller runterladen und nicht bei Trittbrettfahrern. Um ein Mikro zu testen nimmt man eine gewisse Menge Samples auf, zB 1000 Samples, ins RAM und liest die dann ueber die Serielle Schnittstelle aus.
noch einer schrieb: > Ich hänge mich mal dran, weil der thread hier vorgeschlagen wurde: Nur ein Hinweis: dass da ein alter Thread vorgeschlagen wird, liegt daran, dass du evtl. da schon deine gesuchten Infos finden könntest und gar nicht mehr fragen musst. Ansonsten macht man einen neuen auf, zumal deine Frage ja auch eine etwas andere ist. Zu deiner Frage: Im Datenblatt gibt zumindest das Bild 7 Auskunft darüber, dass SD ein Ausgang ist und SCK, WS, Chipen und L/R Eingänge sind (Input Voltage). Auch in Tabelle 2 findet man, dass L/R, WS und SCK Eingänge sind; wenn auch die Rubrik über SD eine falsche Überschrift hat, die Zeilen jedoch nennen die 'Output Voltage'.
Das INMP habe ich schon mal verbaut. Ist aber nicht gerade übermäßig gut und das liegt nicht nur am niedrigen Systemtakt von 2,4MHz. Für etwas mehr Geld gibt es einen audiotauglichen IM69D130 mit ganz anderen Werten. Ist immer noch alles weit weg von einem guten Mikro, aber schon durchaus nutzbar. Das 441 ist dagegen eher Richtung Telefonqualität.:-) Das Infineon hat einen PDM-Ausgang und ist einfacher zu verarbeiten und zu sampeln. Es bekommt seinen Takt auch von Außen, maximal 3,5 MHz- typisch 3.072. Das reicht für eine ordentliche Höhenrepräsentation, wo die PDM-Modulatoren ja systembedingt ihre Schwächen haben und schöpft damit den Chip auch aus. Vom digitalen Standard her ist das CD-Qualität Für eine spezielle Anwendung habe ich noch ein ganz ganz anderes, das mit 4,8MHz taktbar ist. Das taugt auch für Details bei der Sprachanalyse. Noch besser geht es mit analogen Mikros, bei denen man den Modulator selber einstellt und auf das Spektrum optimiert.
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.