Raspberry PiのI2Sにパワー・アンプを追加する (1)
■I2Sインターフェースだと音がいいものだと思ったのでパワー・アンプも実験
シーラスロジックなどでは、古くからI2S入力のパワー・アンプをラインナップしていました。テキサス・インスツルメンツでもTAS5701などを現在販売しています。
ここでは、Adafruit製の「Adafruit MAX98357 I2S Class-D Mono Amp(マニュアルのタイトル)」をスイッチサイエンスから入手したので、実験します。スイッチサイエンスでは、「MAX98357A搭載 I2S 3W D級アンプボード」という商品名なので、モノラルであることはわかりませんが、出力は1系統しかありません。
●I2Sのステレオ入力だが出力は1系統しかないIC
I2Sの信号の規格では、LRCLK(LRCK)という右チャネル、左チャネルを切り替えるタイミング信号があるように、ステレオ信号を受け取ります。マキシムのMAX98357は、I2SのうちMCLK(MCK)は不要です。16/24/32ビットで、最大96kHzまでのサンプリング周波数に対応しています。
出力OUTpとOUTn端子は、フィルタなしでスピーカにそのままつなぎます。
入力信号 | 出力信号 | 電源 |
---|---|---|
BCK(Bit Clock Input) | OUTp | Vdd 2.5~5.5V |
LRCLK(Frame Clock) | OUTn | GND |
Din(Digital Input Signal) |
制御信号によって出力を変更できます。ボード上には「SD」というシルク印刷された信号です。
SD_mode ピンの電圧[V] | 機能 |
---|---|
1.4以上 | Lチャネル出力 |
1.4~0.77 | Rチャネル出力 |
0.77~0.16 | L+R出力 |
0.16 | シャットダウン |
「Adafruit MAX98357 I2S Class-D Mono Amp」はデフォルトで「L+R出力」に設定されています。2枚使って、ステレオにしたいと思います。ステレオにするとき、データシートには、I2S信号をパラレルにつなげばよいと書かれています。
●L、Rチャネルの単独出力を実験
SDピンは、100kΩでプルダウンされています。したがって、抵抗をVddへつないで、必要な電圧を得ます。電源には1.2Vのエネループを4本使う予定です。約5Vとすれば、
- 300kΩをVddにつなげば、ほぼ0.825VでRチャネル
- Vddに直接つなげば1.4V以上になるので、Lチャネル
になると思われます。
実験用の音源を作ります。WeveGeneを使って、左500Hz、右2kHzの正弦波のデータを録音します。作成条件は、24ビット96kHzです。USBメモリにコピーします。
音楽再生環境として、Volumio2 RC2(2016年6月30日現在)をRaspberry Pi 2 Model Bにインストールしました。I2Sの3本と電源(5V)をつなぎます。
Playback Optionsの画面では、I2S DAC をONにし、DAC Model をGeneric I2S DACを選び、 Output Deviceは Hifiberry DACを選びSaveします。
デフォルトでは、L+Rが出力されます。SD端子を3.3Vにつなぐと、Lチャネルの500Hzだけが出力されます。Vddへ330kΩをつなぐと電圧は1.4V以上でした。680kΩを直列に入れるとSD端子は約1.0Vになり、Rチャネルが出力されました。
Gain設定端子は、デフォルトの何もつながない状態で6dBの設定です。
テスト用の小型スピーカからオーディオ用スピーカにつなぎ替えました。中低音が充実した音楽が流れてきました。
※ この環境では、曲の切り替え時のノイズが大きいです。