自作のLAN-DACにラズパイを組み込み、ネットワークプレイヤーにしましたが、ラズパイの電源ON/OFFが課題でした。

 

もともと、DAC側の電源と、ラズパイの電源はACから分岐し、セットの電源スイッチは、DAC側の電源ON/OFFしかしておりませんでした。

なぜなら、ラズパイはSDカードアクセス中にむやみに電源をON/OFFすると、SDカードの内容を破壊する恐れがあるらしいためです。

ラズパイの電源を切りたいときは、VolumioのWebUIからシャットダウンをさせていました。

 

いっぽうで、再度電源を入れたい場合は、AC100Vのコンセントの挿抜が必要になるので、状況によってはこれが不便となるケースがありました。

そのため、現j在DAC側の給電経路に入っているPower SWでラズパイの電源ON/OFFもができないかと思案するようになりました。

 

AC電源の配線を説明するためのブロック図を描いてみました。

 

 

AC100Vは、Power SW、電源トランスを経て電源基板に送られ、そこで必要な電源電圧を作りDAC基板に供給しています。

いっぽう、ラズパイにはACアダプターを介してUSB端子からラズパイに供給しています。

 

DAC側の給電経路に入っているPower SWでラズパイの電源ON/OFFを行えるようにするにあたり、ラズパイのON/OFFをGPIOに接続したスイッチで行うこと自体は多くの方がすでにやられているので、その知見を利用させていただくことにしました。

 

今回、以下のようなDAC側電源のON/OFFを監視する回路を増設しました。

 

 

ラズパイをHaltさせるには、GPIOの状態変化を監視して行うことができます。

いっぽう、Halt状態から起動させるには、Halt状態でGPIO3を0にすることが必要なようです。

ADUM1280は、デフォルトではOUTA/Bには1が出力されます。例えばINA/B側の電源が給電されていない場合は、OUTA/Bには1が出力されます。

 

これを使い、ADUM1280のOUTをラズパイGPIO3と4に接続します。

 

Power SWをOFFにすると、ADUM1280の出力が1になります。これをGPIO4に入力し、GPIO4が1になったらHalt状態に(shotdown -h nowを実行)します。

 

Power SWがONになると、ADUM1280のINBをGNDに接続しているため、OUTBに0が出力されます。これをGPIO3が検知すると、ラズパイがHaltから起動します。

 

ラズパイの起動・終了を待つ必要はありますが、電源スイッチのON/OFFとDAC側、ラズパイ側の電源が連動してON/OFFできるようになりました。