2015-10-05 10 views
9

Ich habe an einem Audioprojekt mit STM32F4 Entdeckung gearbeitet und mir ist aufgefallen, dass alle I2S Standards nur mit einem Mikrofon funktionieren (abhängig davon, welche Kante der Standard verwendet). Für Beispiel. Bei Philips-, MSB- oder LSB-Standards, die fallende Flanken als Bit-Trigger verwenden, fängt nur das geerdete L/R-Mikrofon und wenn ich den PCM-Standard verwende, der steigende Flanken als Bit-Trigger verwendet, fängt nur das High L/R-Mikrofon ab. Ich kann keine Möglichkeit finden, beide MEMS-Mikrofon-Samples in einer Periode abzufangen. Kann der STM32F4 nicht ohne externe ICs gleichzeitig auf Mikrofone zugreifen?STM32F4 Stereo MEMS Mikrofon

+1

Ich habe das gleiche Problem auf der gleichen Plattform erhalten haben, können Sie mit uns bitte Ihre Lösung teilen, (Ihre eigene Frage aswering), wie hast du es am Ende? Vielen Dank! – An0nym0u5

Antwort

3

Die Lösung wäre, I2S Datentakt zu wählen doppelt so schnell wie die Uhr von MEMS-Mikrofon eingegeben werden, so dass der Prozessor zu verwenden, um die Proben zu beiden Mems Takt fangen konnte

+1

Ok, aber wie synchronisiert man die schnelle und die langsame Uhr? Wie empfehlen Sie das Taktsignal zu generieren? – An0nym0u5

+0

Nur ein Follow-up auf die gleiche Frage. Eine Möglichkeit, den Mikrophon-Takt doppelt so klein zu machen, besteht darin, den I2S-erzeugten Takt zu einem Zeitgeber (der so eingestellt ist, dass er den Aufzeichnungsmodus ausgibt) am ETR-Pin zu routen. Dann können Sie es teilen, wie Sie wollen. In diesem Fall zweimal. Der Zeitgeberausgangstakt geht zu beiden Mikrofonen und ihre Daten sind mit dem I2S verbunden (welches die Uhr erzeugt). Am Ende arbeitet I2S doppelt so schnell wie die Mikrofone. – MattJ

1

Sie können versuchen, I2S2 und I2S3, die zweite, um den Takt für die Mikrofone zu erzeugen, und die erste, die den Takt zum Abtasten der pdm-Werte erzeugt (mit doppelter Rate) und die gleiche PLL teilt, sollte die Uhr synchronisiert werden. Doing so denke ich, dass Sie die pdm Bits erhalten können, indem Sie das recv Register des I2S2 lesen, aber ich denke auch, dass die Bits von den 2 micles verschachtelt werden (ein bisschen von mic 1, ein anderes von mic 2 und so weiter).

1

Nur ein Follow-up auf die gleiche Frage. Eine Möglichkeit, Daten von beiden Mikrofonen zu erhalten, besteht darin, das Mikrofon doppelt so klein zu machen. Sie können das tun, indem Sie die I2S-generierte Uhr an einen Timer (der auf den Aufnahmemodus eingestellt ist) am ETR-Pin routen. Dann können Sie den Timer mit dem Timer teilen, wie Sie möchten. In diesem Fall zweimal. Der Zeitgeberausgangstakt geht zu beiden Mikrofonen und ihre Daten sind mit der I2S-Datenleitung verbunden (dieselbe, die die Uhr erzeugt). Am Ende arbeitet I2S doppelt so schnell wie die Mikrofone.

Hier ist ein Beispiel mit vier Mikrofon. (In Ihrem Fall entfernen Sie einfach das SPI)

enter image description here

Weitere Informationen zu diesem Thema nachlesen.

http://www2.st.com/content/ccc/resource/technical/document/user_manual/f5/06/94/40/a6/01/49/ae/DM00187405.pdf/files/DM00187405.pdf/jcr:content/translations/en.DM00187405.pdf