PAM8403を使う

ステレオタイプのアンプで安く、音良し、使い勝手良し。実験とか遊びで使うには十分なアンプです。

WebRadio w/I2S -01 . ハードとライブラリの準備で以下の様にI2Sの出力をこのアンプにつないで試してみました。値段の割には非常に良い音がしました。

ちょっと難を言えば、電源のオンオフ時に発生するポップ音です。かなり大きな音がします。この問題、この製品では有名で、ネットに幾つかの対策が上がっていました。対策の殆どはこのICが持っているMute機能を使っていました。電源オンオフ時の一定時間Muteを有効にしポップ音を出さない様にするものでした。抵抗とコンデンサの調整で適切な遅延時間を作るのですが時間の調整が大変そうでした。そこでESP32のGPIOで管理したらどうなるか試して見ました。

試した回路は以下

ICの5番ピンがMute機能のピンです。このピンがLowならばMuteが有効(音を出さない)。製品ではこのピンはHighに固定されている為、Mute機能は使えません。そこでICの5番ピンを浮かして、浮かしたピンにESP32のGPIOをつないてMuteを管理します。

  • 電源供給時
    • GPIOの初期状態からINPUTとなるGPIOを選ぶ。
    • そのピンをPULLDOWNしMute端子に接続すれば電源投入と同時にLOWとなる
    • 今回はGPIO22を使用する。
  • 電源切断時
    • 電源切断直後のGPIO22の状態は分からないが、仮にハイインピーダンスになれば抵抗を通してGNDにつながっているので直ぐにLowになるはずです。

使用したコード

void setup() {
    pinMode(22, OUTPUT);
    digitalWrite(22, LOW);
    delay(1000);
    digitalWrite(22, HIGH);
    
}

void loop() {
  // put your main code here, to run repeatedly:

}
  • 電源投入時のGPIO22はLowなっていますが、改めて出力設定にしLowを出力します。
  • その状態で1秒保持。この期間Muteが有効で音が出ない。
  • その後GPIO22をHighにしてMuteを解除。音が出る。

コードの実行結果

  • 起動時: 全くポップ音が有りません。全く聞こえなくなりました。
  • オフ時: 通常より明らかに小さいですが聞こえます。Lowになるのが遅い様です。

最後に

GPIOを利用したポップ音対策はそれなりの効果が有ったと思います。ただ貴重なGPIOをポップ音対策に使用するかどうかは当人の判断になりますが。