商品の説明
I2SのモジュールPCM5102の説明です。Amazon等で ”PCM5102 I2S IIS デジタルオーディオDACデコーダモジュール” として売っているモジュールです。
設定用のパッド
”PCM5102 I2S IIS デジタルオーディオDACデコーダモジュール” には表と裏面に設定用のパッドがあります。
- 表面:向かって左上にパッド
- このパッドをショートする。
- SCKにモジュールに内部クロックが使用されます。
- 本体とSCKパッドをつなぐ必要が無くなる。
- 3本の信号のみでコントロール出来る。
- このパッドをショートする。
- 裏面:H1L,H2L,H3L,H4Lの4つのパッド
- 各パッドを下記の様にショートさせます
パッド ショート 機能 H1L 向かって右 FLT(Filter select)の設定。
L(Normal latency)H2L 向かって右 DEMP (De-emphasis control for 44.1kHz sampling rate)の設定。
L(OFF)H3L 向かって左 XSMT (Soft mute control)の設定。
H(soft un-mute)H4L 向かって右 FMT (Audio format selection)の設定。
L(I2S)
- 各パッドを下記の様にショートさせます
動作確認
ESP32につないでMP3ファイルを再生してみました。
ハード
表のパッドをショートさせているので信号線は3本。 ESP32にBCK/DIN/LCK用のデフォルトピンが有りますが今回は デフォルトと違うピンを使用しました。
| PCM5102 | Default | 今回 |
|---|---|---|
| BCK | GPIO26 | GPIO27 |
| DIN | GPIO22 | GPIO26 |
| LCK | GPIO25 | GPIO25 |
スケッチ
30行 out->SetPinout(bck, lck, din); でピンアサインを変更しています。このサンプルは、約6秒位のハープシコードの演奏を繰り返します。
PCM5102A.ino
arduino
<#include <Arduino.h>
#include <LittleFS.h>
#include "FS.h"
#include "AudioFileSourceFS.h"
#include "AudioGeneratorMP3.h"
#include "AudioOutputI2S.h"
#define bck 27 //default 26
#define lck 25 //default 25
#define din 26 //default 22
void setup() {
Serial.begin(115200);
delay(1000);
// Initialise FS
if (!LittleFS.begin()) {
Serial.println("LittleFS initialisation failed!");
while (1) yield(); // Stay here twiddling thumbs waiting
}
}
void loop() {
AudioGeneratorMP3 *mp3;
AudioFileSourceFS *file;
AudioOutputI2S *out;
out = new AudioOutputI2S();
out->SetPinout(bck, lck, din);
out->SetGain(0.5);
mp3 = new AudioGeneratorMP3();
Serial.println("Start");
file = new AudioFileSourceFS(LittleFS, "/Harp.mp3");
mp3->begin(file, out);
while(mp3->isRunning()){
if (!mp3->loop()){
mp3->stop();
delete file;
Serial.println("Done");
}
}
delay(1000);
}
最後に
値段が安い。使いやすい。これとAM8403 とセットで使ったらちょっとしたオーディオシステムが安価に出来ると思います。