はじめに
MaixCubeはM5Stack/M5StickVライクなMaixシリーズのマイコンです。基本的にはMaixPyで使用することが想定されているようですが、現時点ではMaixPyでサウンドデバイスがサポートされていません。
サウンドデバイス
蘇州にあるEverest Semiconductor社のES8374というチップが使われているようですが、ネット上の情報が少ないです。
ネットでは、Espressif社のESP32用ドライバーなどの他に、Sipeed社のMF1用のドライバーが見つかりましたので、これを参考にMaixCubeで使えるようにしてみました。
ソースはこちら
サンプル
まとめ
参考にしたドライバーでは、ネットで見つけたデータシートに記載のないレジスターが設定されていたりして、トライ&エラーで調整したので、実際のところES8374がどのようなモードで動作しているのかよくわかっていないところがあります。
例えば、PLL2のクロックを262.144MHzに設定して、SYSCTL_THRESHOLD_I2S0_Mに31を設定するといったいI2Sのマスタークロックは何MHzになるの?(1つの仮説は、262.144MHz÷64=4.096MHz。64=(31+1)×2)とか、これは65.536÷16じゃなめなの?とか
Maixシリーズの他のボードで使われているMEMSマイクとDACの組み合わせに比べて若干音質はいいかもしれません。次は音声認識に挑戦したいです。