まず、電源制御の概要です。
RasPiには電源スイッチというものがありません。ボードに電力を与えると勝手に起動します。電源を切るときは逆に電力供給を止めればいい…というわけにはいかず、普通のパソコンと同様ちゃんとシャットダウンの手続きを取る必要があります。
サーバー等に使うならいいのかもしれませんが、オーディオ機器としてはこれでは困ります。普通のアンプ等と同じように、電源スイッチで自由自在にON/OFFできるようにしないと不便極まりないのです。いつでも気兼ねなくスイッチをブチ切れるようにすることが目標です。
いろいろ調べていると、Volumioに便利なプラグインがあることが分かりました。
その名も"GPIO Buttons". RasPiのGPIOピンにスイッチを繋いで様々な操作ができるというものです。その機能のひとつにシャットダウンがあります。
これを使って、ハードウェア操作だけで安全にRasPiをシャットダウンさせることができます。待機電力削減のため、シャットダウン後は自動的に電源供給を断つ回路も追加することにしました。
シャットダウン問題についてはこれで良いとして、起動はどうでしょうか。今回はシャットダウン後に電源供給をストップすることにしているので、単に電源供給を再開すればいいだけですね。これも大丈夫そうです。
(ちなみに、RasPiがシャットダウンされており且つ電源供給が続いている状態からの起動は、RasPiのRUN端子を一度GNDに落とすことで可能なようです。)
次に、I2Sアイソレータの概要。
RasPiとDACやアナログ回路のGNDを分離するために使います。必須の回路ではないのですが、RasPiとアナログオーディオ回路のGNDが共通だと何となく気分が良くないですから…
-----
ということで、これらの機能を実現するために作った回路がこちらです。全体の回路図の一部を切り抜いただけなので入出力のラインがブチ切れていますがご容赦ください。
赤枠内が電源制御、青枠内がI2Sアイソレータ関連部分です。
まず電源制御部から解説します。
PS1 (AD-A50P400) とあるのは5V 4AのACアダプタです。これを一度分解して入力を導線で引き出し、組み直してからダイソーのアルミテープでグルグル巻きにしてシールドし、更に適当なテープで覆って使いました。シールドはシャーシに落としています。
安いACアダプタですが、電解コンデンサは全てRubycon製で作りも悪くなさそうです。
ケースに組み付けたところ↓
このACアダプタの後段にある回路でRasPiへの電源供給を制御します。
回路図のPOWER_SWを上側に倒すとQ2(2SJ505)のゲートがGNDに落ちてONになり、RasPiへの電源供給が始まります。
一方、POWER_SWを下側に倒したときの動作は少々複雑です。
まず、RasPiの内部でプルアップされていたGPIO8がLOWとなりRasPiがシャットダウンを始めます。それと同時にRasPiの内部プルアップ抵抗を通じてC27 (22μF) の充電が始まり、しばらくするとGPIO8をHIGHに戻します。このC27は一見不要そうで、実際最初は使っていませんでした。しかしプラグインの不具合なのか「GPIO8がLOWになってもRasPiがシャットダウンせず、再度GPIO8がHIGHになるとシャットダウンが始まる」という現象が時々見られたので、確実にRasPiをシャットダウンするため急遽追加しました。
また、RasPiのシャットダウン完了をUSBバスパワー出力(回路図中のRPi_USB_BP)がOFFになることで検出し、Q2のゲートを引っ張っていたQ1 (2N7000)をOFFにします。この機能により、RasPiが正常にシャットダウンしなかった時にQ2がOFFになることを防ぎます。Q1がOFFになった後は、念のため入れたOFF遅延用コンデンサC29 (22μF) が力尽きるとQ2がOFFになりRasPiへの電源供給がストップします。
-----
さて、このような回路のせいでRasPiが3階建てになってしまいました。
1階はRasPi本体。
2階はI2SアイソレータとEMIフィル。EMIフィルの取り付けには基板のパターンカットが必要でした。
3階は電源制御。
実験しながら作っているのでどうしても基板が汚くなりがちで恥ずかしい限りです。
-----
これでネットワークオーディオプレーヤーの解説はほぼ終わりです。次回はまとめです。
サーバー等に使うならいいのかもしれませんが、オーディオ機器としてはこれでは困ります。普通のアンプ等と同じように、電源スイッチで自由自在にON/OFFできるようにしないと不便極まりないのです。いつでも気兼ねなくスイッチをブチ切れるようにすることが目標です。
いろいろ調べていると、Volumioに便利なプラグインがあることが分かりました。
その名も"GPIO Buttons". RasPiのGPIOピンにスイッチを繋いで様々な操作ができるというものです。その機能のひとつにシャットダウンがあります。
これを使って、ハードウェア操作だけで安全にRasPiをシャットダウンさせることができます。待機電力削減のため、シャットダウン後は自動的に電源供給を断つ回路も追加することにしました。
シャットダウン問題についてはこれで良いとして、起動はどうでしょうか。今回はシャットダウン後に電源供給をストップすることにしているので、単に電源供給を再開すればいいだけですね。これも大丈夫そうです。
(ちなみに、RasPiがシャットダウンされており且つ電源供給が続いている状態からの起動は、RasPiのRUN端子を一度GNDに落とすことで可能なようです。)
次に、I2Sアイソレータの概要。
RasPiとDACやアナログ回路のGNDを分離するために使います。必須の回路ではないのですが、RasPiとアナログオーディオ回路のGNDが共通だと何となく気分が良くないですから…
-----
ということで、これらの機能を実現するために作った回路がこちらです。全体の回路図の一部を切り抜いただけなので入出力のラインがブチ切れていますがご容赦ください。
赤枠内が電源制御、青枠内がI2Sアイソレータ関連部分です。
まず電源制御部から解説します。
PS1 (AD-A50P400) とあるのは5V 4AのACアダプタです。これを一度分解して入力を導線で引き出し、組み直してからダイソーのアルミテープでグルグル巻きにしてシールドし、更に適当なテープで覆って使いました。シールドはシャーシに落としています。
安いACアダプタですが、電解コンデンサは全てRubycon製で作りも悪くなさそうです。
ケースに組み付けたところ↓
このACアダプタの後段にある回路でRasPiへの電源供給を制御します。
回路図のPOWER_SWを上側に倒すとQ2(2SJ505)のゲートがGNDに落ちてONになり、RasPiへの電源供給が始まります。
一方、POWER_SWを下側に倒したときの動作は少々複雑です。
まず、RasPiの内部でプルアップされていたGPIO8がLOWとなりRasPiがシャットダウンを始めます。それと同時にRasPiの内部プルアップ抵抗を通じてC27 (22μF) の充電が始まり、しばらくするとGPIO8をHIGHに戻します。このC27は一見不要そうで、実際最初は使っていませんでした。しかしプラグインの不具合なのか「GPIO8がLOWになってもRasPiがシャットダウンせず、再度GPIO8がHIGHになるとシャットダウンが始まる」という現象が時々見られたので、確実にRasPiをシャットダウンするため急遽追加しました。
また、RasPiのシャットダウン完了をUSBバスパワー出力(回路図中のRPi_USB_BP)がOFFになることで検出し、Q2のゲートを引っ張っていたQ1 (2N7000)をOFFにします。この機能により、RasPiが正常にシャットダウンしなかった時にQ2がOFFになることを防ぎます。Q1がOFFになった後は、念のため入れたOFF遅延用コンデンサC29 (22μF) が力尽きるとQ2がOFFになりRasPiへの電源供給がストップします。
次にI2Sアイソレータの解説です。
Si8660というデジタルアイソレータを使ってみました。
このICの使い方はごく簡単で、入出力と2系統の電源を接続するだけです。入力側の電源はRasPiから、出力側の電源はDACからもらってきます。そしてこのIC、本当は6chもの信号の絶縁ができるのですが、今回使うのは3chだけです。モッタイナイ…余った入力端子はGNDに落としておきましょう。
このパートは特に問題なく、すんなり動作しました。
-----
さて、このような回路のせいでRasPiが3階建てになってしまいました。
1階はRasPi本体。
2階はI2SアイソレータとEMIフィル。EMIフィルの取り付けには基板のパターンカットが必要でした。
3階は電源制御。
実験しながら作っているのでどうしても基板が汚くなりがちで恥ずかしい限りです。
-----
これでネットワークオーディオプレーヤーの解説はほぼ終わりです。次回はまとめです。