NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

myRIOでのデジタルマイク信号(PDM)入力について

お世話になっております.現在学生で研究用途でmyRIOを使用している者です.デジタルMEMSマイクから出力されるPDM信号をmyRIOのFPGA側に入力を考えていますが苦戦しております.恐縮ですが,何卒ご教授いただけますと幸いです.

 

【使用する機材・ソフトウェア】

①デジタル出力MEMSマイク変換基板

 商品ページ:https://www.switch-science.com/catalog/3379/

②Ni myRIO-1900

 ユーザガイドと仕様:http://www.ni.com/pdf/manuals/376047c.pdf

③プログラミング環境

 NI LabVIEW 2018 SP1 (32bit)

 

【現状】

 I2SもしくはSPIでオーバーサンプリングすると,①のマイク信号を入力することができると記載があり,myRIOのDIOから入力を試みました.実際に,②のFPGA側にPDM信号を入力したく,myRIOのDIO端子をマイクを接続し,clk信号の出力とdata入力のviを③で作成し,myRIOへコンパイルして試しました.

 

デジタルマイクの各端子から,myRIO-Aポートへは,

 ・3.3V・・・+3.3V端子(33番ポート)

 ・GND・・・DGND端子(30番ポート)

 ・CLK・・・DIO0端子(11番ポート)

 ・DATA・・・DIO1端子(13番ポート)

 ・SEL・・・+3.3V端子(33番ポート)

で接続しました.

 

また,FPGA_main.vi側でfpga-CLK出力とPDM信号入力するために,

 ・fpga-CLK出力のシングルサイクルループ(派生クロック:5MHz)・・・DIO0書き込み

 ・DATA入力のシングルサイクルループ(派生クロック:5MHz)・・・DIO1読み込み

を実行し,DIO1からの入力信号を確認しました.

 結果として常にDIO1の値が1(HIGH)となってしまい正常にPDM信号を取得できていない状況です.

 

【質問】

 myRIOでデジタルマイクロフォンからのPDM信号を入力するための,参考資料等がありませんでしょうか?また,PDM信号をmyRIOのFPGA側で入力する際,参考になるライブラリ(viやURL等)等がありませんでしょうか? 

 

初歩的な質問で大変恐縮ですが,お知恵をお借りしたく何卒よろしくお願いいたします.

0 件の賞賛
メッセージ1/3
2,665件の閲覧回数

知識が全然ないなかしゃしゃり出るのは良くないかもしれませんが、myRIOとMEMSというキーワードで何となくマニュアルみたいなものがあるようでした。

 

https://learn.ni.com/teach/resources/91/mems-microphone

 

正確に問題を把握できていないのですが、信号を取り込む部分がおかしい、ということになるんですかね・・・

二つのDIOのポートをつないで、例えばDIO0からPDM信号を出してもう片方のDIO1で受け取ることはできると思うので、そのPDMを出すDIO0がマイクになった状態にした際に

上手く動かない?ということなのでしょうか

トラブルシュートするときに、どこの部分で問題になっているのかを一つ一つ見ていくのも大切かなと思いますので、以下のサンプルで仮想的にPDM信号を出したり、あるいは、マイクからの信号がどのようになっているかをオシロスコープで確認するなどしてみると何かわかるかもしれません。

 

https://forums.ni.com/t5/Example-Code/Pulse-Density-Modulation-PDM/ta-p/3532976

 

いいアドバイスにはなっていませんが何かご参考になれば。

 

0 件の賞賛
メッセージ2/3
2,629件の閲覧回数

すみません、私もあまり詳しくないところですが、コメントさせていただきました。

 

①I2CもしくはSPI
「I2SやSPIでもデータを受けることはできますが、受けた後にSINCフィルタなどのデジタル処理が必要です。」
と記載あることから、myRIOのI2CまたはSPIのExpressVIを使えば、
比較的容易に動作を確認できそうですが、それはあまりうまくいかなかったでしょうか?

 

NI myRIO: I2C serial communication - YouTube https://www.youtube.com/watch?v=7CgNF78pYQM
NI myRIO: SPI serial communication - YouTube https://www.youtube.com/watch?v=GaXtDamw5As

Sinc Interpolation Example - NI Community https://forums.ni.com/t5/Example-Code/Sinc-Interpolation-Example/ta-p/3504315

 

②FPGA
「結果として常にDIO1の値が1」というのがそもそも問題なのか?という疑問もあります。
可能でしたら、オシロで出力波形を確認してみてはいかがでしょう。

マイクの状態遷移図を見ると、仮にSleepモードなどの場合は波形が出ない可能性もあると思います。
https://media.digikey.com/pdf/Data%20Sheets/Knowles%20Acoustics%20PDFs/SPH0641LU4H-1.PDF

私もネットを調べてみましたが、このマイクロフォンのデータ取得並びに
PDM FPGAの実装について、LabVIEWの事例は見つかりませんでした。

 

こういう時にSTMマイコンだと、ライブラリが準備されていて便利ですね。

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 件の賞賛
メッセージ3/3
2,604件の閲覧回数