Raspberry PiベアメタルプログラミングでI2S信号

前回、Raspberry PiのI2SインタフェースがMicroPythonで動作が確認できました。
今回は、ネット上にあるベアメタルプログラミングのサンプルにI2Sがあまり多くないので、同じロジックをCでも書いてみました。

書いたコードは以下に置いてあります。

bare_matal_rpi_zero/i2s at master · boochow/bare_matal_rpi_zero

また、DACとしてSpeaker pHATの他に、Aliexpressで$5以下で購入したPCM5102モジュールを試してみました。

Alibaba グループ | AliExpress.comの Dac からの PCM5102 DAC デコーダ I2S プレーヤービヨンド ES9023 ラズベリーパイ 中の PCM5102 DAC デコーダ I2S プレーヤービヨンド ES9023 ラズベリーパイ

このモジュールは、電源を3.3Vではなく5Vに接続する必要があります。GNDはそのままGNDへ接続します。
あとはBCLK、DATA、LRCLKをそれぞれGPIO18、GPIO21、GPIO19に接続すればOKです。

音声信号自体は前回同様、470Hzのノコギリ波です。音量が大きいのでご注意ください。