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