Phoenix 電源シーケンス編

はじめに

以前のロボットはFPGAとRTOSの動くMCUを搭載するのみであったためその電源シーケンスは非常に単純であった。電源のオンオフは機械スイッチで主電源を直接オンオフすることで行え、電源がオンになったら全てのレギュレータを同時に立ち上がるだけでよかった。

Phoenixの設計にあたってRaspberry Piを繋げられるようにしてほしいという要望があったため、Raspberry Piを含む回路の電源シーケンスをどうするかという問題が生じた。Raspberry Piの電源を機械スイッチで単純にオンオフしてしまうとSDカードのデータが破損してしまう可能性があるためである。

当初は電源回路の設計編で作成した評価ボードのように主電源は機械スイッチで入切するが5VレギュレータだけはRaspberry Piがシャットダウンしたあとにオフにする構成を取るつもりでいた。この構成の問題はスイッチを接続するための電流容量の大きなコネクタと配線のスペースが必要となることである。基板レイアウトを作成していくとこのスペースがどうしても邪魔になったため機械スイッチで主電源を入切するのではなく小型のトグルスイッチか何かでロードスイッチをオンオフする方式を取ることとなった。そしてRaspberry PiはJetson Nanoに代わり、GreenPAKを使用して電源シーケンスを制御することにした。

電源ブロック図

電源系統図を以下に示す。XT60コネクタに6セルのリチウムイオン電池を接続するか、あるいはUSB Type-Cの2番目のポートからの給電で回路を動作させることができる。モーターを動かすことができるのはXT60に電池を繋いだときだけである。XT60とUSBの両方から同時に給電したときTPS2121は12V側を選択し電池から電力が消費される。


電源系統図

この電源系統図に負荷(青)制御IC(緑)を書き加えると以下のようになる。GreenPAKはXT60かUSBから給電されていれば常にVSTBY(5V)で動作する。図中右上にある電源スイッチがオンオフされるとGreenPAKは適切な電源シーケンスで回路の電源をオンオフする。


電源システムブロック図

電源シーケンス

パワーアップシーケンス

以下にバッテリー給電およびUSB給電によるパワーアップシーケンスを示す。#のついている信号は負論理を表す。例えばSW_POWER#がLであるということは電源スイッチがオンになっていることを表している。


バッテリーによるパワーアップシーケンス


USBによるパワーアップシーケンス

バッテリー給電の場合、SW_POWER#がLに落とされるとESW_ONをHにしてロードスイッチをオンする。すると12Vレギュレータが動作し始めVSYSに12Vが供給される。VSYSが給電されると5Vレギュレータが動作し始め、500ms後にJetson Nanoの起動シーケンスが開始される。Jetson Nanoが起動するとSYS_RESET#がデアサートされるのでそれを合図に3.3V/2.5V1.8V/1.2Vレギュレータと48Vレギュレータを順にオンする。FPGA_STOP#はGreenPAKからFPGAへモーター制御の停止する指示を出す信号であるが、これも48Vレギュレータのオンと同時にデアサートされてモーター制御が開始される。

USB給電の場合、初めからVSYSがVBUSから供給されている。SW_POWER#がLに落とされると5Vレギュレータが起動し、後はバッテリー給電の場合と同様である(48Vレギュレータがオンしないことを除けば)。

電源切り替えシーケンス

本回路はバッテリー給電とUSB給電を動作中に切り替えられる。ただしUSB給電中にモーターを動かすことはできないという制約がある。この機能によって回路の電源を落とすことなくバッテリー交換が可能である。

以下にバッテリー給電→USB給電→バッテリー給電へと切り替わるときの切り替えシーケンスを示す。


VBAT・VBUS切り替えシーケンス

VBATを喪失すると12Vレギュレータの出力電圧が下がりVSYSは供給源をVBUSへと切り替える。同時に48VレギュレータもオフしFPGA_STOP#がアサートされてモーター制御が中断される。VBATが復帰すると12Vレギュレータが動作し始めVSYSが12Vに戻る。48Vレギュレータも100ms後に起動しFPGA_STOP#がデアサートされてモーター制御が再開される。

パワーダウンシーケンス

以下にバッテリー給電の場合のパワーダウンシーケンスを示す。


パワーダウンシーケンス

電源スイッチがオフになりSW_POWER#が500ms以上デアサートされると48VレギュレータがオフしFPGA_STOP#がアサートされてモーター制御が停止される。GreenPAKはSW_WAKE_SLEEP#を繰り返しトグルしJetson Nanoにシャットダウン要求を出す。Jetson NanoがシャットダウンするとSHUTDOWN_REQ#がアサートされるのでロードスイッチと残り全てのレギュレータをオフしパワーダウンが完了する。

ステートマシン

本回路の電源状態の遷移を図に表すと以下のようになる。


電源の状態遷移図
  • Unpowered
    電源に接続されていない状態。
    バッテリーやUSBから電源が供給されるとGreenPAKが起動しPower Downへ遷移する。
  • Power Down
    電源スイッチがオンされるのを待つ状態。
    電源スイッチがオンになると「Powering Up」に遷移する。
  • Powering Up
    パワーアップシーケンスを実行している状態。
    バッテリー電圧が十分なら「Battery Powered」、バッテリー電圧は低いがVSYS電圧が十分(つまりUSB給電されている)なら「USB Powered」へ遷移する。
  • Battery Powered, USB Powered
    FPGAやJetson Nanoが動作している状態。
    バッテリー接続の有無により「Battery Powered」と「USB Powered」の間を行き来する。電源スイッチがオフされる、あるいはJetson Nanoが自発的にシャットダウンすると「Shutting Down」へ遷移する。
  • Shutting Down
    パワーダウンシーケンスを実行している状態。
    GreenPAKはJetson Nanoにシャットダウンを促す。Jetson Nanoからのシャットダウン要求を受け取ると「Power Down」へ遷移する。
  • Fault
    致命的な障害を検知した状態。
    全てのレギュレータとロードスイッチは即座にオフする。一旦、電源が取り除かれると「Unpowered」に遷移し再び電源を入れることができる。

Fault状態に遷移する条件を以下に挙げる。

  • VBAT低電圧ロックアウト
    VBAT_INが一定電圧を下回る。(規定値 18.4V)
  • VSYS低電圧ロックアウト
    VSYSが一定電圧を下回る。(規定値 7.36V)
  • 過電流
    ロードスイッチに流れる電流が一定値を上回る。(規定値 26A)
  • 過熱
    基板上のサーミスタ温度が一定値を上回る。(規定値 80℃)
    サーミスタは48Vレギュレータの片側のMOSFET付近にある。
  • ロードスイッチ低出力電圧
    ロードスイッチがオンなのにVBAT電圧が低い。
    過電流状態のときに併発する可能性がある。

0 件のコメント :

コメントを投稿