2015-10-05 23 views
9

私はSTM32F4ディスカバリーのオーディオプロジェクトに取り組んできましたが、私はすべてのI2Sスタンダードが1つのマイクでしか動作しないことに気付きました。 exmplの場合。立ち下がりエッジをビットトリガとして使用しているフィリップス、MSB、またはLSB規格では、接地L/Rマイクのみを捕捉し、立ち上がりエッジをビットトリガとして使用するPCM規格を使用すると、High L/Rマイクのみを捕捉します。私は1つの期間に両方のMEMSのマイクサンプルをキャッチする方法を見つけることができません。 STM32F4は外部ICなしですぐにマイクに使用できませんか?STM32F4ステレオMEMSマイク

+1

、あなたは最終的にそれをやったのか(あなた自身の質問をaswering)、私たちとあなたのソリューションを共有してくださいすることができますか?どうもありがとうございました! – An0nym0u5

答えて

3

ソリューションは、プロセッサが、

+1

しかし、速いクロックと遅いクロックをどのように同期させるのですか?どのようにクロック信号を生成することを提案しますか? – An0nym0u5

+0

同じ質問へのフォローアップ。マイククロックを2倍にする方法の1つは、I2S生成クロックをETRピンのタイマー(出力キャプチャモードに設定)に送ることです。それから、あなたは望むように分けることができます。この場合、2回。タイマの出力クロックは両方のマイクに送られ、それらのデータは(クロックを生成している)I2Sに接続されます。最後に、I2Sはマイクに比べて2倍の速さで動作します。 – MattJ

1

は、あなたが使用しようとするかのMEMSクロックパルスにサンプルを捕まえることができるように、MEMSマイクロホン入力のクロックの2倍の速さであることをI2Sデータクロックを選択するために、だろうI2S2とI2S3は、マイク用のクロックを生成する2番目のもので、最初にpdm値をサンプリングするクロックを生成する(倍速で)のと同じPLLを共有してクロックを同期させる必要があります。 私はあなたがI2S2のrecvレジスタを読むことによってpdmビットを得ることができると思うが、私は2つのマイクからのビットがインターリーブされると思う(マイク1からのビット、マイク2からのビットその他)。

1

同じ質問へのフォローアップ。両方のマイクからデータを取得する方法の1つは、マイクのクロックを2倍小さくすることです。 I2Sで生成されたクロックを、ETRピンでタイマー(出力キャプチャモードに設定されている)にルーティングすることで、これを行うことができます。その後、タイマーを使用して、必要に応じて分割することができます。この場合、2回。タイマ出力クロックは両方のマイクに行き、そのデータはI2Sデータライン(クロックを生成しているもの)に接続されます。最後に、I2Sはマイクに比べて2倍の速さで動作します。

ここに4つのマイクを使用した例を示します。この上に読んで詳細については

enter image description here

を(あなたのケースでは、単にSPIを削除します)。私は、同じプラットフォーム上で同じ問題を持っている

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

関連する問題