はじめに
様々な方言を話すおしゃべり猫型ロボット『ミーア』を開発中。
今までは一方向の音声出力しか提供していなかったが、いよいよ双方向の開発に取り掛かりたいと思う。
前回こちらの記事でESP32とINMP441(I2Sマイク)で双方向音声通信の自作基板を作成しようとしたところ、INMP441が7年前にEOLになっていて在庫がないことを記載した。
今回はINMP441の代替I2SマイクとしてSPH0644LM4H-1を使って自作基板を作成しようと思う。
ELECROWに連絡したところ
INMP441の代替品としてKnowles社のI2Sマイクを提案される
Elecrowに下記のように質問
I now understand that INMP441 is globally out of stock and may not be available in China. I appreciate your clarification.
That said, my goal is to use an **I2S output MEMS microphone that is compatible with the ESP32**. It does not necessarily have to be INMP441 — any I2S microphone will do, as long as it is suitable for ESP32-based audio applications.
Could you please let me know if you have any I2S microphone parts currently in stock (either chips or modules) that can be used in PCBA orders?
If possible, please share available part numbers or links so I can design my circuit accordingly.
Thank you again for your assistance!
すると下記の返信が来た。
If you are looking for alternatives to the INMP441 MEMS microphone with similar performance characteristics, here are some suggestions from reputable suppliers:
Infineon
・IM69D130: High SNR and sensitivity, suitable for high-fidelity audio applications.
・IM67D130A: Low power consumption and high SNR, ideal for mobile devices and IoT applications.
STMicroelectronics
・MP34DT01: Sensitivity of -26dBFS and SNR of 65dB, suitable for voice recognition and audio capture applications.
・MP23ABS1: Compact size, with performance similar to INMP441, ideal for space-constrained devices.
Knowles
・SPH0645LM4H-B: Sensitivity of -26dBFS and SNR of 65dB, suitable for applications requiring high sensitivity and SNR.
・SPH0644LM4H-B: Similar to SPH0645LM4H-B but with potentially more competitive pricing.
These alternatives offer a range of performance and cost options, and I recommend reviewing their detailed specifications to determine the best fit for your application.
記載されているマイクのうち、Infineon社とSTMicroelectronics社のマイクはPDMマイクだったので候補から除外。Knowles社の2つのI2SマイクをDigikeyで調べてみた。
SPH0645LM4H-B:1個あたり2.73ドル
https://www.digikey.jp/ja/products/detail/syntiant/SPH0645LM4H-B/5332440
SPH0644LM4H-1:1個あたり1.35ドル
https://www.digikey.jp/ja/products/detail/knowles/SPH0644LM4H-1/8573344
Elecrowからの返信にあったようにSPH0644の方が安い。
Elecrowの場合もJLCPCBと同様にGerberファイルとBOM、CPLファイルがあれば発注できるので、LCSCで回路図を作成していく。
と思ったら、SPH0644はPDMマイクだったので、SPH0645のみがI2Sマイクとして使用できる。
SPH0645LM4H-Bで回路図作成
SPH0645LM4H-Bのフットプリントは下記。
https://jlcpcb.com/partdetail/JlcpcbAssembly-SPH0644LM4H1/C9900010827
JLCPCBでpreorderもminimum458個から取り扱っている。Estimated unit price: $0.0188と安い。INMP441とほぼ同じ価格。
データシートは下記
https://mm.digikey.com/Volume0/opasdata/d220001/medias/docus/908/SPH0645LM4H-B.pdf
ステレオの場合のサンプル配線に関して記載されていた。
BCLK と WS に 51Ω を入れ、ESP32 ピンのすぐ隣に置く(リンギング防止・信号整形のため(送信側に配置するのが基本))
DATA_OUT 方向は「マイク → MCU」の一方通行なので、ラインが 20 mm 未満なら抵抗なしでも可。長い場合はマイク側直後51Ωを検討(高インピーダンス出力であるため、受信側(ESP32)ではなく、マイク出力直後に配置)。今回の場合はI2SマイクとESP32間の配線長は2cmを超えるので51Ωを接続する。

参考にして下記のように回路図作成した。

PCB layoutを作成
下記のような感じで、各抵抗とコンデンサーをマイク側に近づけるべきものはマイク側に、ESP32モジュール側に近づけるべきものはモジュール側に寄せる。
AutoRouteで一発で配線完了!よかった。


3D viewerで背面から見るとこんな感じ。

本当はI2SマイクとESP32 GPIO間の信号線をできるだけ短くするために、ESP32にI2Sマイクを近接させたかったのだが、基板背面真ん中の方はスピーカーが入ってくるため、スピーカー背面キャビティ内にマイクを配置せざるを得ない構造になってしまう。

そうすると、スピーカーの出力音がマイクに入り込む・スピーカー背面の空気振動がマイク膜に影響・マイクが「音の抜け道」から遠くなり、閉鎖空間に閉じ込められるなどの問題が生じるため、信号線は少し長くなるが、スピーカーから遠ざけてI2Sマイクを配置することにした。I²S信号線の長さは約30mmとやや長くなるが、各信号線に51Ωのシリーズ抵抗を配置しており、反射やリンギングへの対策も施しているため、まぁこれで大丈夫かと思う。
Gerber, BOM, CPLをexportしてElecrowで発注
EasyEDAのFileからExport BOM, Gerber, CPLをそれぞれ選択してファイルダウンロードする。

今回は、JLCPCBではなくElecrowで注文しようと思うので、Elecrowのサイトを開いて、PCB Asseblyタブを選択
https://www.elecrow.com/pcb-assembly.html?r=cGNicGFnZQ==
まずPCBA Quantityを入力してからBOMをアップロード。今回は2つで良いので2と記入

Assembling parameterの欄
- No.of unique parameters:BOMファイルに記載されている部品のユニークな個数=BOMファイルの行数
- No. of components:BOMファイルに記載されている部品の合計個数
今回はそれぞれ、29個と44個だったので、下記のように記載。components個数入力に応じてPCBA Costが動的に変化する。shipping wayはデフォルトのDHLだと高いのでEconomy expressが最安だったのでこちらを選択。

Gerber fileに関してはJLCPCBの場合はgerber fileをアップロードしたら、自動でdimensionsも記載してくれたが、Elecrowの場合は手動で縦横の高さを記入する必要がある

最終的にはtotal priceが、送料込みで102.6ドルになった。

Elecrowの場合には、JLCPCBのようにそのまま即オーダーにはならずに、Get A quotationボタンを押すとOrder requestになり、その後担当者とのやりとりで進めていく感じになる。
ここら辺はJLCPCBの方がやりとりが少なく発注までスムーズな感じ。

ちなみに同じのをJLCPCBで発注で、SPH0645LM4H-Bの在庫不足を無視して進めたところ(Pre -order中)、

PCBA料金が138.54ドルと表示されたので、Elecrowの方が92ドルなので安そう。
なので今回はElecrowで発注を進めようと思う。
