商品の説明
ステレオタイプのアンプ。音良し、使い勝手良し、値段安い。実験とか遊びで使うには十分なアンプです。
ESP32でI2Sの出力このアンプにつないで試してみました。 値段の割には非常に良い音がしました。
ポップ音
この製品の有名な問題に電源オンオフ時に発生するポップ音が有ります。 この音、意外と大きく既にネットに幾つか対策が上がっていました。代表的な対策は ICの Mute 機能を使うもので、電源オンオフ時に抵抗とコンデンサで適切な遅延時間を作り その間 Mute を有効にしポップ音を防止するものでした。
抵抗とコンデンサで遅延時間を作るのが大変そうなので、ESP32のGPIOで代用したらどうなるか試して見ました。
ICの5番ピンがMute機能のピンです。このピンがLowならばMuteが有効(音を出さない)。 製品ではこのピンはHighに固定されているのでMuteが常にOFFの状態。
そこでICの5番ピンを浮かして、それにESP32のGPIOをつないてMuteを管理します。
- 電源ON時
- 初期状態(電源投入時)でINPUTとなるGPIOを選ぶ。今回はGPIO22を使用する。
- そのピンとGNDを抵抗でつなぎPulldown(Low)にする。
- この状態で電源を投入するとGPIO22はLOWになる。( Mute機能有効)
- その後GPIO22を出力設定に変えLowを出力する。
- 電源OFF時
- 電源切断直後のGPIO22の状態は分からない
- 仮にハイインピーダンスになれば
=>抵抗を通してGNDにつながっているので直ぐにLowになるはず
使用したコード
pam8403.ino
arduino
void setup() {
pinMode(22, OUTPUT);
digitalWrite(22, LOW);
delay(1000);
digitalWrite(22, HIGH);
}
void loop() {
// put your main code here, to run repeatedly:
}
- 電源投入後GPIO22を1秒間Lowに保持。この期間Muteが有効で音が出ない。
- その後GPIO22をHighにしてMuteを解除。
コードの実行結果
- 起動時:全くポップ音が聞こえなくなりました。
- オフ時:通常より明らかに小さいですが聞こえます。Lowになるのが遅い様です。
最後に
GPIOを利用したポップ音対策はそれなりの効果が有ったと思います。ただ
- 貴重なGPIOをポップ音対策に使用するかどうか
- 基板からMuteピンを浮かすのはかなり難しい(実は1個無駄にした)