電源の供給とStart/Shutdownスイッチについて
1. 電源の選定と接続
RAL-KCM3MB1の電源部のブロック図を図-1に示します。
J9から供給されたDC+5VはU13のMOSFETスイッチを通ってUSB Bus_Power Manager(MIC2016)を経由してUSBポートのBus_Power端子(1番)へとつながっています。 U13の出力はJ2(40P)ヘッダの2番、4番、LEDの点灯用電源などに接続されています。さらにJ10の関所(?)を挟んでCM3モジュールのV_BAT、3.3V,1.8Vの各レギュレータへと接続されています。
Raspberry pi CM3, CM3 Liteに必要な電源の諸元、電圧や消費電力、消費電流はCM3の仕様書(Raspberry Piの公式URLからダウンロードして下さい)によると、表-1のようになっています。
名称 | 電源供給先 | 電圧 | 電源最小容量 | 備考 |
VBAT | BCM283x Core |
2.5 ~ 5.25V | 3,500mW | 内蔵スイッチングレギュレータ経由でCoreに供給 |
3V3 | BCM283x PHYs, IO, eMMC |
3.3V +/- 5% |
250mA | PHY,I/O,eMMCに供給 |
1V8 | BCM283x PHYs, IO, SDRAM |
1.8V +/- 5% |
250mA | PHY, I/O, SDRAMに供給 |
VDAC | TV-out (Composite)DAC |
2.5 ~ 2.8V | 25mA | RAL-KCM3MB1では未使用のため3.3Vに接続 |
GPIO 0-27 VDD | GPIO IO端子 ドライブ用 |
3.3V +/- 5% | 50mA | GPIO0~27のI/O端子に供給 |
GPIO 28-45 VDD | GPIO IO端子 ドライブ用 |
3.3V +/- 5% | 50mA | GPIO28~45のI/O端子に供給 |
SDX_VDD | microSD ソケット | 3.3V +/- 5% | 50mA | microSDカードに供給 |
表-1 Raspberry Pi CM 3 電源等の仕様(抜粋)
VBATは名称から推測するとBattery接続用(3.7V?)のようで、CM3内部のスイッチングレギュレータでCore用の電圧(1V?)を生成しているようです。KCM3MB1ではDC+5Vを供給していますが、5V+5%以下に抑える必要がありますのでJ9から供給するDC+5Vがこの上限をオーバーしないように注意する必要があります。 表内の電源最少容量というのはあまり見かけない表現ですが、CM3はPeakでこれだけの電流が必要ですので、供給側はこれ以上の供給能力が必要ということです。
VBATは3,500mWの供給能力が最低限必要ということですのでDC+5Vでは700mA以上の供給能力が必要ということになります。3.3VはVDACの値を加えると425mA、1.8Vは250mA以上の供給能力が必要ということになります。
KCM3MB1では3.3Vおよび1.8V用レギュレータとしてそれぞれTLV62090を使用しています。カタログスペックでは3AまでOKですが、放熱などの問題もあり、これくらいの負荷には適当ということで採用しました。 3.3VはCM3やmicroSDカードの他にLAN9514が最大で288mA(USB HS, 100baseT)、LEDやPull upなどでも消費しますので最大で800mAくらいは供給できることが必要です。 また、CM3の仕様書の7.1項に記載されている電源の起動シーケンス(順序)も順守する必要があります。 さらにGPIOの各端子は1本あたり最大16mAを流すことが可能ですが各Bank( 0-27, 28-45)あたりの合計値は50mAを超えないように周辺回路を設計する必要があります。
LEDは本来なら省電力のためにダイナミック点灯すべきなのですが、ノイズ対策のためスタティック点灯としています。
RAL-KCM3MB1のDC5V全体の消費電流はこの表の値に加えてUSB各ポートに供給するBus_Power(規定では500mA x 4)、USB_HUB/LANコントローラLAN9514の消費電力(3.3V,951mWmax)、各LEDの消費電流などが必要です。計算上は
、Pw = 3,500mW(5V)+1,403mW(3.3V)+450mW(1.8V)+951mW(LAN9514)となり、合計で6,304mW、5Vでは1.26Aが必要です。これにUSBのVBUSが各ポート500mAとすると合計で1.26+2.0=3.26Aとなりますが、実際は5V/3Aか5V/4Aの電源ユニットを使用すべきです。 Volumio2を起動して楽曲の連続再生を行いながら図-1の電源ブロック図に示す測定ポイントで電流値と電流波形を実測してみました。
実測した環境はRAL-KCM3MB1にCM3 Liteを搭載、有線LANは100Base-T、USBポートにはUSB キーボード, USB マウス、USB microSD Card(32GB)Adapter、USB_DACとして、BusPower駆動のRAL-24192UT1,ヘッドホンはSONY MDR900を接続しました。ACアダプタはDC+5V/3AのUNIFIVE製で、測定はKeysite TechnologyのStrageオシロと電流測定用プローブを使用しました。実測値は下表を参照して下さい。
Volumio2楽曲再生中のRAL-KCM3MB1 消費電流実測値
測定ポイント | 内容 | 最小値 | 最大値 | 10/May/2017 |
1 | 外部電源入力 | 485.1mA | 586.1mA | RAL-KCM3MB1全体の消費 |
2 | CM3へ供給 | 209mA | 334mA | VBAR_3.3Vの各レギュレータが消費 |
3 | 3.3V | 241mA | 289mA | CM3モジュール、LAN9514が消費 |
4 | 1.8V | 34mA | 213mA | CM3モジュールが消費 |
5 | USB V_Bus | 252mA | 276mA | 40P2番、4番は Open,P1-P2より算出 |
この状態でCPUの温度を下記の方法(SSH経由)で測定しましたがほぼ46℃前後で一定しています。
~$ cat /sys/class/thermal/thermal_zone0/temp
1/1000単位で温度が返ってきます。46789なら46.789℃ということを意味します。
Volumio2で楽曲再生中は予想していたよりも消費電力が少ないようです。予想よりは少ないですが先ほどの最小要求値を考慮するとDC+5Vの電源としては3Aもしくは4Aのレギュレータを使用して下さい。USB_DACやUSB_SATA I/F+SSDなどに大喰いのものを使用する場合はDC+5V/5Aくらいのレギュレータをお使い下さい。
トランス式のリニア電源レギュレータなどに関しては後日紹介しますが、最近は医療機器組込用の低リップル、低ノイズでEMIが少ないスイッチングレギュレータが市販されていますのでそれらを使用することも選択肢の一つです。 最初は信頼のおけるメーカ(コーセルやTDKラムダなど)の5V/5Aくらいのスイッチングレギュレータを使用することをお勧めします。 それらの外部レギュレータの出力とRAL-KCM3MB1のJ9を接続し(正負を間違えないように)、J9の隣のJ10には付属の標準設定ハウジングを差し込んでおいてください。
KCM3MB1上のレギュレータU12,U14(TLV62090)の動作を止めて基板外部から別途作成したDC3.3V,1.8Vを供給する方法、トランス入力のリニアレギュレータなどは後日紹介いたします。
2. Start/Shutdown機能について
オリジナルのRaspberry Piには電源スイッチがありませんし、Raspberry Pi 3のようにACアダプタを接続している間はつねにPower_LEDが点灯しているものもあります。しかし、RasberianもLinuxですので電源OFFでファイルシステムを壊さないようにshutdown –h nowを命令後、一連の終了処理が終了した後に電源を落とす必要があります。RAL-KCM3MB1にはPCやPC周辺機器、ポータブル機器などでよく使われている電源スイッチ(ボタン)用LSI LTC2951Cを採用してStart/Shutdownボタンを実装しました。LTC2951C周辺の回路を抜き出した図をみながら動作を見てゆきましょう。
Pushボタン(2回路2接点、モーメンタリ)を電源OFFの状態で押すかJ14の1番と2番の間を一時的に短絡するとU15(LTC2951C)のPB_N入力が’L’にアサートされます。接点のチャタリングや2重押しによりすぐOFFになるという問題はU15が解決してくれます。U15はPB_Nがアサートされると128mS後にEN_Nをアサートし、MOS_FETをONにしてVCC5に外部から供給されているDC+5Vを流し始めます。VCC5への供給が開始されるとLED2(Power_LED)が点灯し、CM3のCPUも起動します。
VCC5に電源が供給されCM3が動作している間に、再びPushボタンが押されるかJ14の1番-2番間が短絡されU16のPB_NがアサートされるとU16はINT_NをアサートしてCM3のCPUに終了処理がリクエストされたことを伝えます。CPUはこのリクエストを受付け、shutdown –h nowに相当する処理を実行したのち、U15のKILL_N入力をアサートします。 KILLがアサートされるとU16はEN_Nをdisableにし、外部から供給されているDC5VとVCC5の間を遮断します。RAL-KCM3MB1ではKILLのアサートの場合はすぐにVCC5が遮断され、USB-SATA Bridge経由で接続したHDDやSSDのunmount処理が正常終了しなかったというエラーメッセージが次回起動時に表示されることが多いので、CPUからのPower_OFFコマンドはPB_N入力に回し、14秒後にVCC5が遮断されるように設定しています。U16はPushボタンが押されて発行したShutdownのリクエストに対してCPUが応じない場合、14秒後にVCC5を遮断します。
CM3のCPUからのKILL_NもしくはPower_OFF_N指令はGPIOによりU16に伝達されます。その機能をenableにするためには/boot/config.txtの最後に下記の1行を追加しておく必要があります。
dtoverlay=gpio-power-off,gpiopin=5
この1行を追加しておくことにより、Volumio2のShutdownコマンドからPower_OFFを選択した場合や、shutdownコマンドが実行された際にGPIO5端子が’H’にアサートされVCC5が遮断されます。
Volumio2やRaspbian OSが起動中にPushボタンを押してShutdownを実行させるためにはPushボタンが押されたことを検出することが必要です。KCM3MB1ではU16のINT_N出力もしくはPushボタンをGPIO6に接続しています。GPIO6がアサートされたことを検出し、’shutdown –h now’というシェルコマンドを発行するプログラムをpythonで作成し、/etc/rc.localに追加しておくことが必要です。
プログラムの詳細、設定方法などは後日、Volumio2のインストール時に一緒に行いますので併せて紹介します。
外部電源を正負間違いなくJ9に接続後、CM3をまだ装着しない状態でPushボタンを押してみて下さい。Power_LEDが点灯するはずです。J10のところで3.3V、1.8Vなどの電圧チェックを行って下さい。その際に端子間隔が狭いので短絡させないように注意して下さい。もう一度Pushボタンを押すと14秒後にPower_LEDが消灯することを確認しておいて下さい。3.3V、1.8Vが正しく出力されていれば外部電源もOFFにした後、CM3モジュールを実装して下さい。
これでH/Wの準備は完了です。次はRaspbian Jessie LiteやVolumio2をinstallしてゆきましょう。
Raspberry Pi を本格オーディオ機器へ もっと楽しむ Raspberry Pi オーディオ組込用 マザーボーボード |
製品情報 | |
RAL-KCM3MB1 |