電源制御機能を利用する

概要

EDGEPLANT T1 には電源制御用に独立した MCU が搭載されています。 メインモジュールである Jetson TX2 に影響されずに動作できるため、OS が高負荷になった場合などでも安定した電源管理を行うことが可能です。

仕様

電源制御 MCU の仕様については、 取扱説明書 を参照してください。

利用方法

IG 信号に連動して電源を制御したい

注釈

IG 信号による電源制御を行うには、Wake on CAN 機能を無効にしている必要があります。初期設定では IG 信号による電源制御機能が有効になっています。

電源制御 MCU は IG 信号の状態などに応じて、電源制御を行うことが可能です。IG 信号には、車両の IG 電源や ACC 電源、または AC アダプターなどを入力することができます。電源ソケットの接続方法については、取扱説明書 の「5.1 電源を接続する」を参照してください。

対象

状態

動作

IG 信号

約 +7V 以上

電源 ON

IG 信号

約 +7V 未満

電源 OFF

電源 OFF と OS 動作の連動には acpid1 を利用しており、 初期設定で電源ボタン2 に連動するようにイベントが設定されています。

$ cat /etc/acpi/events/power-button
event=button[ /]power*
action=/etc/acpi/actions/power.sh

電源ボタンが押された(IG 信号が OFF になった)場合、以下のスクリプトで shutdown コマンドが実行されます。

$ cat /etc/acpi/actions/power.sh
#!/bin/sh

/sbin/shutdown -h now "Power button pressed"
1

https://wiki.archlinux.jp/index.php/Acpid

2

EDGEPLANT T1 に物理的な電源ボタンは存在しません。IG 信号の状態が、電源ボタン相当の動作をするようになっています。

Wake on CAN を設定したい

注釈

Wake on CAN を利用するには、以下のバージョンが必要です。

  • edgeplant-l4t-tools: 1.1.0 以上

  • 電源制御 MCU: 1.1.0 以上

Wake on CAN を利用して、特定のIDのCAN信号を受信したときにだけ電源を ON/OFF するには、以下のバージョンが必要です。

  • edgeplant-l4t-tools: 1.2.1 以上

  • 電源制御 MCU: 1.2.0 以上

Wake on CAN とは、T1 に標準搭載されている CAN 端子を利用して CAN 通信を行い、通信の状態によって電源の ON/OFF を管理する機能のことです。CAN 端子の利用方法については、取扱説明書 の「5.7 RS232C/CAN 端子を使用する」を参照してください。

Wake on CAN による電源制御を行う場合は、 Wake on CAN settings を enable にしたうえで、以下を設定します。

電源 OFF までの時間(Time to power off after last CAN packet received)

CAN 端子が信号を受信していない状態が、ここで指定した時間だけ続くと、電源が OFF になります(0 - 30 [min])。 0 を指定した場合、 CAN 信号を受信しない状態が続いても電源は ON のままです。

CAN ビットレート(CAN bitrate)

CAN 端子で受信する CAN 信号のビットレートを設定します(33, 50, 83, 100, 125, 250, 500, 1000 [kbps])。

電源を ON にする ID (power on ID)

特定の ID の CAN 信号を受信したときに電源を ON にしたい場合は、 ID を設定します。

  • IDは、 ID フォーマット(standard/extended)、マスク(id mask)、フィルター(id filter)を使って指定してください。 受信した CAN 信号がフィルターを通過した場合に、電源が ON になります。

  • power on ID を設定しない場合、 ID を問わず CAN 信号を受信したら電源が ON になります。

電源を OFF にする ID (power off ID)

特定の ID の CAN 信号を受信したときに電源を OFF にしたい場合は、 ID を設定します。

  • IDは、 ID フォーマット(standard/extended)、マスク(id mask)、フィルター(id filter)を使って指定してください。 受信した CAN 信号がフィルターを通過した場合に、電源が OFF になります。

    なお、 ここでフィルターを設定した場合も、 信号を受信していない状態が Time to power off after last CAN packet received の時間だけ続くと電源が OFF になります。

  • power off ID を設定しない場合、信号を受信していない状態が Time to power off after last CAN packet received の時間だけ続くと電源が OFF になります。

Wake on CAN の設定手順は以下のとおりです。

  1. edgeplant-l4t-tools を利用して、Wake on CAN の設定を行います。

    以下は、Wake on CAN 用の CAN ビットレートを 500 kbps、電源 OFF までの時間を 5 分、電源ON IDを0x001、電源OFF IDを0x002に設定する場合の例です。

    $ sudo edgeplant-l4t-tools
    ================================================================================
     EDGEPLANT L4T TOOLS
    ================================================================================
    Choose a number or Enter 'q' for exit
    
    --------------------------------------------------------------------------------
     Select the target board
    --------------------------------------------------------------------------------
    1) EDGEPLANT T1
    Enter: 1
    --------------------------------------------------------------------------------
     Select function
    --------------------------------------------------------------------------------
    1) Update dtb,                    4) Dump powermanage settings,
    2) Update powermanage,            5) Change Wake on CAN settings
    3) Change HDMI RGB range,
    Enter: 5
    --------------------------------------------------------------------------------
     Change Wake on CAN settings
    --------------------------------------------------------------------------------
    1) disable
    2) enable
    Enter: 2
    Time to power off after last CAN packet received (0-30[min]): 5
    Select CAN bitrate [kbps]:
    1) 33
    2) 50
    3) 83
    4) 100
    5) 125
    6) 250
    7) 500
    8) 1000
    Enter: 7
    Use power on id filter? [y/N]: y
    Select power on ID :
    - frame format:
    1) standard
    2) extended
    Enter: 1
    - set id mask (0x0-0x7FF): 0x7FF
    - set id filter (0x0-0x7FF): 0x001
    Use power off id filter? [y/N]: y
    Select power off ID :
    - frame format:
    1) standard
    2) extended
    Enter: 1
    - set id mask (0x0-0x7FF): 0x7FF
    - set id filter (0x0-0x7FF): 0x002
    The power management settings will be upgraded after poweroff.
    Do you want to power off system? [y/N]
    

    注釈

    設定が適用されるタイミングについて

    新しい設定は、次回の電源 ON から適用されます。 設定手順の最後の Do you want to power off system?y を選択すると、自動的に再起動が行なわれ、新しい設定が適用されます。 N を選択した場合は、任意のタイミングで再起動してください。 reboot などのコマンドによる再起動では、システムの電源は OFF にならず、新しい設定は適用されませんのでご注意ください。

    注釈

    マスクおよびフィルタの設定について

    特定の1つIDのCANデータのみを通過させたい場合は、フィルタにそのIDを設定し、マスクビットをすべて 1 にしてください。

    複数のIDのCANデータを通過させたい場合は、それらのIDを比較してマスクとフィルタを決める必要があります。

    以下の表は、マスクとフィルタを2進数で表現し、IDフィルタの動作を示したものです。

    マスク

    フィルタ

    IDフィルタの動作

    0

    0

    IDの当該ビットが0でも1でも通過させる

    0

    1

    IDの当該ビットが0でも1でも通過させる

    1

    0

    IDの当該ビットが0の場合のみ通過させる

    1

    1

    IDの当該ビットが1の場合のみ通過させる

    マスクが 1 であるすべてのビットにおいて、 CAN データの ID と id filter が比較され、合致した場合にその CAN データはフィルタを通過します。 マスクが 1 であるビットにおいて、 CAN データの ID と id filter が合致しない場合は、その CAN データはフィルタを通過できません。

    例えば、ID 0x0110x021 を通過させたい場合は、マスクは 0x7CF、フィルタは 0x001 を指定します。

    2進数表現

    ID 0x011

    0

    0

    0

    0

    0

    0

    1

    0

    0

    0

    1

    ID 0x021

    0

    0

    0

    0

    0

    1

    0

    0

    0

    0

    1

    Mask (0x7CF)

    1

    1

    1

    1

    1

    0

    0

    1

    1

    1

    1

    Filter (0x001)

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1

    (ただしこの場合、 0x001 (0b00000000001) および 0x031 (0b00000110001) も、フィルタに合致するため通過します。)

  2. Wake on CAN の設定内容は以下のコマンドで確認します。

    $ sudo edgeplant-l4t-tools
    ================================================================================
     EDGEPLANT L4T TOOLS
    ================================================================================
    Choose a number or Enter 'q' for exit
    
    --------------------------------------------------------------------------------
     Select the target board
    --------------------------------------------------------------------------------
    1) EDGEPLANT T1
    Enter: 1
    --------------------------------------------------------------------------------
     Select function
    --------------------------------------------------------------------------------
    1) Update dtb,                    4) Dump powermanage settings,
    2) Update powermanage,            5) Change Wake on CAN settings
    3) Change HDMI RGB range,
    Enter: 4
    version: 1.2.0
    functions:
    Wake on CAN | enable
                | timeout        : 5[min]
                | bitrate        : 500[kbps]
                | id filter      :
                |   - power on   : enable, standard, mask 0x000007FF, filter 0x00000001
                |   - power off  : enable, standard, mask 0x000007FF, filter 0x00000002
    

強制電源断までの時間を設定したい

意図しない電力消費を防止するため、EDGEPLANT T1はIG 信号 OFFの検出(電源 OFF)後に一定時間が経過すると、電源を強制的に切断します。

注釈

強制電源断までの時間設定を行うには、以下のバージョンが必要です。

  • edgeplant-l4t-tools: 1.3.0 以上

  • 電源制御 MCU: 1.3.0 以上

強制電源断までの時間を設定する手順は以下のとおりです。

  1. edgeplant-l4t-tools を利用して、設定を変更します。

    以下は、強制電源断までの時間を3分に設定する場合の例です。

    $ sudo edgeplant-l4t-tools
    ================================================================================
     EDGEPLANT L4T TOOLS
    ================================================================================
    Choose a number or Enter 'q' for exit
    
    --------------------------------------------------------------------------------
     Select the target board
    --------------------------------------------------------------------------------
    1) EDGEPLANT T1
    Enter: 1
    --------------------------------------------------------------------------------
     Select function
    --------------------------------------------------------------------------------
    1) Update dtb,                  4) Dump powermanage settings,
    2) Update powermanage,          5) Change Wake on CAN settings,
    3) Change HDMI RGB range,       6) Change powermanage timer settings
    Enter: 6
    --------------------------------------------------------------------------------
     Change powermanage timer settings
    --------------------------------------------------------------------------------
    Time to force power off after turning off the ignition (1-30[min]): 3
    The power management settings will be upgraded after poweroff.
    Do you want to power off system? [y/N]:
    
  2. 設定内容は以下のコマンドで確認します。

    $ sudo edgeplant-l4t-tools
    ================================================================================
     EDGEPLANT L4T TOOLS
    ================================================================================
    Choose a number or Enter 'q' for exit
    
    --------------------------------------------------------------------------------
     Select the target board
    --------------------------------------------------------------------------------
    1) EDGEPLANT T1
    Enter: 1
    --------------------------------------------------------------------------------
     Select function
    --------------------------------------------------------------------------------
    1) Update dtb,                  4) Dump powermanage settings,
    2) Update powermanage,          5) Change Wake on CAN settings,
    3) Change HDMI RGB range,       6) Change powermanage timer settings
    Enter: 4
    version: 1.3.0
    functions:
      Wake on CAN | disable
      Timer       | force poweroff : 3[min]
    

電源制御のエラーログを取得したい

注釈

edgeplant-l4t-faultlog サービスを利用するには、以下のバージョンが必要です。

  • edgeplant-l4t-tools: 1.4.0 以上

  • 電源制御 MCU: 1.3.0 以上

edgeplant-l4t-faultlog サービスを有効化することで、電源制御のエラーログを取得することができます。

以下のコマンドにより、 edgeplant-l4t-boot サービスを有効化します。

$ sudo systemctl enable edgeplant-l4t-faultlog
$ sudo systemctl start edgeplant-l4t-faultlog

以下のコマンドにより、 電源制御のエラーログを確認します。

$ journalctl -u edgeplant-l4t-faultlog

電源の強制切断など、電源制御に異常がある場合は以下のようなエラーログが表示されます。

Jan 27 14:08:30 linux systemd[1]: Starting edgeplant l4t power management fault log service...
Jan 27 14:08:31 linux sh[4156]: 2022-01-27T14:08:48Z Unexpected po>
Jan 27 14:08:31 linux systemd[1]: Started edgeplant l4t power management fault log service.

注釈

ログの保存について

journaldのログはデフォルトではメモリ上に保存される設定のため、再起動でログが削除されます。

再起動でログが削除されないようにする場合は、以下のコマンドにより、ログの保存場所をメモリからファイルに変更してください。

$ sudo mkdir -p /var/log/journal
$ sudo systemctl reboot

電源制御 MCU ファームウェアのアップデートを行いたい

最新のファームウェアを自動的に取得して更新するオンラインアップデートと、手動でファームウェアを指定して更新するオフラインアップデートが利用できます。

注釈

ファームウェアが適用されるタイミングについて

新しいファームウェアは、次回の電源 ON から適用されます。 アップデートの最後に y を選択すると、自動的に再起動が行なわれ、新しいファームウェアが適用されます。 N を選択した場合は、任意のタイミングで再起動してください。 reboot などのコマンドによる再起動では、システムの電源は OFF にならず、新しいファームウェアは適用されませんのでご注意ください。

オンラインアップデート

  1. edgeplant-l4t-tools を利用して、アップデートを行います。

    $ sudo edgeplant-l4t-tools
    ================================================================================
     EDGEPLANT L4T TOOLS
    ================================================================================
    Choose a number or Enter 'q' for exit
    
    --------------------------------------------------------------------------------
     Select the target board
    --------------------------------------------------------------------------------
    1) EDGEPLANT T1
    Enter: 1
    --------------------------------------------------------------------------------
     Select function
    --------------------------------------------------------------------------------
    1) Update dtb,                    4) Dump powermanage settings,
    2) Update powermanage,            5) Change Wake on CAN settings
    3) Change HDMI RGB range,
    Enter: 2
    --------------------------------------------------------------------------------
     Select powermanage update type
    --------------------------------------------------------------------------------
    1) Online update
    2) Offline update
    Enter: 1
    --------------------------------------------------------------------------------
     Online powermanage update
    --------------------------------------------------------------------------------
    Success to download powermanage update file.
    --------------------------------------------------------------------------------
     Update powermanage
    --------------------------------------------------------------------------------
    Current version: 1.1.0
    New version: 1.2.0
    
    Update powermanage? [y/N]: y
    [10:53:28][INFO][edgeplant_powermanage] Change mode to FW Update
    [10:53:28][INFO][edgeplant_powermanage] Current bank is Bank 0
    [10:53:28][INFO][edgeplant_powermanage] Start update: /tmp/ET1-128NJA_pmmcu_1.2.0.bin
    [10:53:29][INFO][edgeplant_powermanage] Write update data..
    [==========================================================================================================================================================] 100.00%
    [10:54:37][INFO][edgeplant_powermanage] Finish writing update data
    [10:54:37][INFO][edgeplant_powermanage] Switch bank to Bank 1
    [10:54:37][INFO][edgeplant_powermanage] Update successful
    The power management firmware will be upgraded after poweroff.
    Do you want to power off system? [y/N]
    

オフラインアップデート

  1. 最新のファームウェアを EDGEPLANT T1 ページ からダウンロードします。

    download firmware
  2. edgeplant-l4t-tools を利用して、アップデートを行います。

    $ sudo edgeplant-l4t-tools
    ================================================================================
     EDGEPLANT L4T TOOLS
    ================================================================================
    Choose a number or Enter 'q' for exit
    
    --------------------------------------------------------------------------------
     Select the target board
    --------------------------------------------------------------------------------
    1) EDGEPLANT T1
    Enter: 1
    --------------------------------------------------------------------------------
     Select function
    --------------------------------------------------------------------------------
    1) Update dtb,                    4) Dump powermanage settings,
    2) Update powermanage,            5) Change Wake on CAN settings
    3) Change HDMI RGB range,
    Enter: 2
    --------------------------------------------------------------------------------
     Select powermanage update type
    --------------------------------------------------------------------------------
    1) Online update
    2) Offline update
    Enter: 2
    --------------------------------------------------------------------------------
     Offline powermanage update
    --------------------------------------------------------------------------------
    Update file path: /home/user/Downloads/ET1-128NJA_pmmcu_1.2.0.bin
    --------------------------------------------------------------------------------
     Update powermanage
    --------------------------------------------------------------------------------
    Current version: 1.1.0
    New version: 1.2.0
    
    Update powermanage? [y/N]: y
    [10:53:28][INFO][edgeplant_powermanage] Change mode to FW Update
    [10:53:28][INFO][edgeplant_powermanage] Current bank is Bank 0
    [10:53:28][INFO][edgeplant_powermanage] Start update: /home/user/Downloads/ET1-128NJA_pmmcu_1.2.0.bin
    [10:53:29][INFO][edgeplant_powermanage] Write update data..
    [==========================================================================================================================================================] 100.00%
    [10:54:37][INFO][edgeplant_powermanage] Finish writing update data
    [10:54:37][INFO][edgeplant_powermanage] Switch bank to Bank 1
    [10:54:37][INFO][edgeplant_powermanage] Update successful
    The power management firmware will be upgraded after poweroff.
    Do you want to power off system? [y/N]