工作と競馬2

電子工作、プログラミング、木工といった工作の記録記事、競馬に関する考察記事を掲載するブログ

SPRESENSEでデジタルマイクによる録音

概要

SPRESENSEにデジタルマイクを接続し、録音させてみた。




背景と目的

SPRESENSEを用いて、録音をしなければならなくなったため、とりあえず部品をそろえて録音できるところまで確かめる。



詳細

1. 使用部品

  • SPRESENSE メインボード

  • SPRESENSE LTE拡張ボード[LM1]

    • 別の用件でLTE拡張ボードが必要なので、今回これを使用する
  • SPH0641LU4H使用 超広帯域マイクモジュールキット

    • 秋月電子のキットで、SPRESENSEのハードウェアガイドで公式に使用が推奨されている品種SPH0641LU4Hが搭載されている。

akizukidenshi.com

2. 配線方法の確認

まず、SPRESENSE側のピン配置を確認。

SPRESENESE LTE拡張ボード[LM1]のハードウェアガイドにあるとおり、以下のように配線すればよい。今回は、2chのマイクをch0とch1として使用するつもりなのでD01列側の4つの端子を用いる。

※なお、D23側一番下の灰色のGNDは、回路図を見るとどう考えても1.8Vなので、実際にテスターを当てて測ってみたが1.8Vであった。したがって、ハードウェアガイド掲載のこの図は間違いなのでGNDと思って接続してはいけない。

※SPRESENESE LTE拡張ボード[LM1]のハードウェアガイドより引用

次に、マイクモジュールキット側だが、SPH0641LU4Hでは2chのデータをクロックの前半周期、後半周期に割り当てて1つのデータラインで送信できる仕様であり、キットの基板には選択用ランドがついている。そこで、

  • Lch: J2をショート=GNDに接続
  • Rch: J1をショート=VDDに接続

させる。

ということで、最終的な配線は、以下のようになる。M1がRch、M2がLchという対応となる。


3. LTE拡張基板のデジタルマイク入力への切り替え

SPRESENSE LTE拡張ボード[LM1]は、出荷状態ではデジタルマイク入力が使えない。そこで、ハードウェアガイドにある、アナログマイクからデジタルマイク入力への切り替え方法 を参考に切り替えを行う。

リンク先には

  • R22を取り外し、R26に0Ωをマウント(またはジャンパ線などでショートする)。
  • R16(D01チャンネル)とR17(D23チャンネル)に0Ωをマウント(またはジャンパ線などでショートする)。

という説明がさらっと書いてあるが、実は1005サイズのランドにはんだ付けでジャンパ配線を施さなければならない。作業対象となるランドは、密集していてなかなかやりづらく、特にR26をショートさせるのに手間取った。そこで、何かいい手がないか 回路図 でを調べてたところ、

R26をショートさせなくても、CN6の7番ピン(例の灰色GND)が実は1.8VなのでそこからMIC BIASAに接続すれば同じことができる

とわかったので、以下のように配線した。

なお、この作業中に、C15, C16と思われる0603サイズ?のコンデンサが取れてしまったが、R16, R17をショートさせると回路的には無くても同じなのでそのままにした。


4. ソフトウェア

ソースコードは、ひとまず録音さえできればよいので、サンプルコードを使用。

https://developer.sony.com/spresense/development-guides/arduino_tutorials_ja#_mp3_recorder

デジタルマイクを使用するため、一部コードを変更。0は録音ボリューム。16 * 1024はバッファーサイズ[bytes]、trueはis_digitalとあるのでデジタルマイク。

  theAudio->setRecorderMode(AS_SETRECDR_STS_INPUTDEVICE_MIC);

  ↓

  theAudio->setRecorderMode(AS_SETRECDR_STS_INPUTDEVICE_MIC, 0, 16 * 1024, true);


5. 動作確認

アプリケーションを書き込んで再生したところ、無事に録音された。PCでSDカード内に記録された録音ファイルの波形を表示させたところ。

トラブルTips

R16, R17のショートがうまくいっていない、マイクの接続ができていないなど、ACP_MICAのラインにDAT信号が到達していない場合、以下のような録音波形となる。


まとめと今後の課題

SPRESENSEでデジタルマイクによる録音ができた。これを基に目的の製作を進めたい。