Skip to content

Latest commit

 

History

History
913 lines (728 loc) · 139 KB

system_monitor.org

File metadata and controls

913 lines (728 loc) · 139 KB

System Monitor

System Monitorは、SC OBC FPGAのシステムを監視するためのモジュールです。

このモジュールは以下の機能を実装しています。

  • FPGA Watchdog機能
  • Hardware Monitor機能
  • SEM Controller機能
  • Board Health Monitor機能

FPGA Watchdog

SC OBCのシステムは、TRCHによって監視されます。 SC OBC FPGAは System Monitorが収集した FPGA内部の状態を Watchdog signal (FPGA_WATCHDOG)を通じて TRCHに伝えます。 TRCHは FPGAが出力する FPGA_WATCHDOG信号が定期的にトグルしている間、FPGAが健全に動作していると判断します。

SEM Controller

SEM (Soft Error Mitigation) Controllerは、Xilinx FPGAのコンフィギュレーションメモリで発生したソフトエラーの検出 及び訂正を行う、Xilinxから提供されるソリューションです。 SC OBC FPGAはこの機能をシステムに組み込み、SEM Controllerの状態を System Monitorのレジスタから読み出す機能を持っています。

CPUが正常に動作している場合でも、SEM Controllerが訂正不能なエラーを検出した場合や、SEM Controller自体に障害が発生した場合には、SC OBC FPGAに深刻な障害が発生する可能性があります。 そのため、深刻な障害が発生する前に再起動することにより、システムを健全な状態に保つ事が可能です。

SC OBC FPGAは以下の構成でSEM Controllerを実装しています。

項目設定説明
エラー訂正/修復方法拡張修復ECCおよび CRCアルゴリズムに基づく訂正を行います。1ビットのエラーまたは、隣接する 2ビットのエラーを訂正します。
エラー分類機能未サポート検出したすべてのエラーがエッセンシャルビットか非エッセンシャルビットかの分類はできません。全てエッセンシャルビットと判断します。
エラーモニタ機能未サポートSEM Controllerが持つモニターインタフェースは実装していません。System Monitorのレジスタから簡易的なステータスを参照することにより、SEM Controllerを管理します。
エラー挿入機能サポートソフトウェアのテストのため、エラーを強制的に挿入する機能を持っています。

SEM Controllerの仕様詳細については、Xilinxドキュメント「PG036: LogicCORE IP Soft Error Mitigation Controller v4.1 製品ガイド」を参照してください。

SEM Controller Interrupt

SEM Controllerは 4つの要因の割り込みを出力します。 SEM Controllerの割り込みは、System Monitor Interrupt Registerのビット 11:8にマッピングされています。

  • SEM Error Correction Interrupt

SEM Controllerがコンフィギュレーションメモリのエラーを検知し、訂正・修復した事を示す通知ビットです。 この割り込みは、SEM Controllerが正常にコンフィギュレーションメモリのエラーを訂正し修復した事を示すものであり、システムは健全に保たれている事を示します。 この割り込みがセットされる時、SEM Error Correction Count Registerの値が +1されます。

  • SEM Uncorrectable Interrupt

SEM Controllerがコンフィギュレーションメモリに訂正不能なエラーを検出した事を示す通知ビットです。 この割り込みが発生した時、コンフィギュレーションメモリには障害が発生しています。 エッセンシャルビットに障害が起きた場合、FPGAの回路が不正な状態となっている可能性があります。 そのため、このエラーが発生した場合はシステムを再起動する事を推奨します。

  • SEM Halted Interrupt

SEM Controllerが Haltした事を示す通知ビットです。 この割り込みは何らかの異常により、SEM Controllerに自体に障害が起き、動作を停止した事を示します。 このエラーが発生した後は、SEM Controllerによるコンフィギュレーションメモリのエラー検出と訂正は行われません。 そのため、このエラーが発生した場合はシステムを再起動する事を推奨します。

  • SEM Heartbeat Timeout Interrupt

SEM Controllerの Heartbeat信号が停止した事を示す通知ビットです。 この割り込みは何らかの異常により、SEM Controllerに障害が起き、Heartbeat信号を出力できなくなった事を示します。 このエラーが発生した後は、SEM Controllerが正常に動作していない可能性があります。 そのため、このエラーが発生した場合はシステムを再起動する事を推奨します。

Board Health Monitor (BHM)

Board Health Monitor (BHM)は、OBC Module上に搭載するセンサーから簡単にデータを取得するための機能です。

OBC Moduleには、2つの Current Voltage Monitorと 3つの 温度センサーを搭載しています。 これらのセンサーは I2C規格のバスで SC OBC FPGAと接続されています。 BHMはセンサーにアクセスするためのシーケンサーが実装されており、センサーからのデータをレジスタに格納します。 これにより、ソフトウェアによる煩雑な処理を実行しなくても、センサーからデータを取得する事ができます。

BHMが、センサーからデータを取得するタイミングは General Purpose Timerの Hardware Interrupt Timerによって決定します。 Hardware Interrupt Timerを Hardware Schedulerとして動作させる事で、BHMに定期的にセンサーデータの取得トリガを生成します。 BHMは、センサーのデータ取得トリガを検出したタイミングで、センサーに対する I2Cアクセスを行い データを取得します。

尚、Current Voltage Monitorは Texas Instruments社の INA3221-Q1、温度センサーは Texas Instruments社の TMP175-Q1を搭載しています。 センサーやセンサーからの取得データの詳細は、各データのデータシートを参照してください。

BHMの I2Cアクセス

BHMは 3つの I2Cアクセスを行うことができます。

センサーデバイスの初期化

  • レジスタアクセスによりセンサーの初期化要求を発行すると、センサーの初期化のための I2Cアクセスを行います
  • センサーの初期化を行うアドレスや初期化データは、RTL設計時に Verilogのパラメータで設定する事ができます

センサーデータの取得

  • Hardware Schedulerからのトリガを検出すると、センサーからデータを取得するための I2Cアクセスを行います
  • Current Voltage Monitorからのデータ取得は、General Purpose Timerの Hardware Interrupt Timer Output Compare Channel 2が発生するトリガで開始されます
  • 温度センサーからのデータ取得は、General Purpose Timerの Hardware Interrupt Timer Output Compare Channel 3が発生するトリガで開始されます

ソフトウェア指示による I2Cアクセス

  • ランタイムでセンサーの設定を変更したり、センサーが出力した Alertをクリアする目的で、簡単なレジスタアクセスで任意の I2Cアクセスを行います

センサー構成

BHMに接続するセンサーと、BHMによって取得されるセンサーデータ 及び センサーデータが格納されるレジスタアドレスの一覧を以下に示します

センサーセンサーデバイスセンサーレジスタアドレスセンサーデータBHMレジスタアドレスオフセット
Current Voltage Monitor 1INA3221-Q10x01VDD_1V0 Shunt Voltage0x2020
0x02VDD_1V0 Bus Voltage0x2024
0x03VDD_1V8 Shunt Voltage0x2028
0x04VDD_1V8 Bus Voltage0x202C
0x05VDD_3V3 Shunt Voltage0x2030
0x06VDD_3V3 Bus Voltage0x2034
Current Voltage Monitor 2INA3221-Q10x01VDD_3V3_SYS_A Shunt Voltage0x2038
0x02VDD_3V3_SYS_A Bus Voltage0x203C
0x03VDD_3V3_SYS_B Shunt Voltage0x2040
0x04VDD_3V3_SYS_B Bus Voltage0x2044
0x05VDD_3V3_IO Shunt Voltage0x2048
0x06VDD_3V3_IO Bus Voltage0x204C
Temperature Sensor 1TMP175-Q10x00Temperature0x2050
Temperature Sensor 2TMP175-Q10x00Temperature0x2054
Temperature Sensor 3TMP175-Q10x00Temperature0x2058

センサーデータ自動取得のためのレジスタアクセス手順

この章では、SC OBC FPGAのシステムが起動してから、BHMによって Current Voltage Monitorと 温度センサーから、センサーデータを自動取得させるためのレジスタアクセス手順を説明します。

BHMによるセンサーデータの自動取得を開始するためには、a) BHMの初期化、b) センサーデバイスの初期化、c) General Purpose Timerの初期化、d) BHMサービス開始 の処理を行う必要があります。 本手順では、General Purpose Timerの初期化も行います。 General Purpose Timerのレジスタ仕様の詳細は「General Purpose Timer」の章を参照してください。

./images/bhm_initilize.png

1: BHM Prescaler Registerに I2Cの通信速度を設定します

I2Cの通信速度は、必ず Standard-mode (100Kb/s)以下にしてください Standard-mode以上の速度にすると、正しく通信できない場合があります。 BHM Prescaler Registerの初期値は、システムクロックが 48 MHzの場合に 100 Kb/sとなる 0x77に設定されています。 システムクロックが 48 MHzの場合は、特に理由が無い限り設定値を 0x77のままにしてください。

2: BHM Retry Count Registerに I2C通信のリトライ回数を設定します

BHMは、I2C通信を行ったときにエラーを検出すると、このレジスタで設定した回数の自動リトライを行います。 BHM Retry Count Registerの初期値は リトライ回数 “2”に設定されています。

3: BHM Interrupt Enable Registerに 割り込みの有効化設定をします

本手順を実行するためには、最低限 Bit 0と Bit 13:8を設定してください。

4: BHM Initialization Access Control Registerの書き込み、センサーデバイスの書き込みを開始します

初期化を行う対象の INITENビットと BHM_INIT_REQビットに “1”をセットする事でデバイスの初期化が開始されます。

5: SYSMON_BHM_INT割り込みにより、センサーデバイスの初期化完了を検出します

SYSMON_BHM_INT割り込み発生時、BHM Interrupt Status Registerの BHM_INIT_ACCENDビットが “1”にセットされているとき、デバイスの初期化が完了したと判断できます。 この時、BHM Interrupt Status Registerの Bit 12:8の I2CERRビットがセットされていない事を確認してください。 I2CERRビットがセットされている場合、手順 2で設定した I2C通信のリトライ回数を超えるエラーが発生した事を示します。

6: BHM Interrupt Status Registerの BHM_INT_ACCENDビットに “1”を書き込み、割り込みをクリアしてください

7: Hardware Interrupt Timer Control Registerに、Hardware Interruptの発生方式を設定します

レジスタの設定は、必ず次の通りに設定してください。 GPTMR_HITRUNMDビットを Restartモード (設定値 0b0)、GPTMR_HITOPMD2/GPTMR_HITOPMD3フィールド パルス割り込み出力 (設定値 0b10)。 GPTMR_HITOPMD2の設定は Current Voltage Monitorからのデータを取得するために設定する必要があり、GPTMR_HITOPMD3の設定は 温度センサーからデータを取得するために設定する必要があります。

8: Hardware Interrupt Timer Prescaler Registerに、Hardware Interrupt Timerのプリスケーラー設定を行います

Hardware Inerrupt Timerの動作クロックは 24 MHzです。 設定方法の詳細は Hardware Interrupt Timerのレジスタ設定を参照してください。

9: Hardware Interrupt Timer Output Compare Register 1 に、Hardware Interrupt Timerの周期を設定します

10: Hardware Interrupt Timer Output Compare Register 2 に、Current Voltage Monitorのセンサーデータ取得タイミングを設定します

11: Hardware Interrupt Timer Output Compare Register 3 に、温度センサーのセンサーデータ取得タイミングを設定します

12: BHM Access Control Registerの MONIENビットを “1”にセットし、各センサーからのデータの自動取得を有効化します

13: Timer Enable Control Registerの HITENビットを”1”に設定し、Hardware Interrupt Timerの動作を開始します

12、13の処理が完了すると、BHMは Hardware Interrupt Timerが生成するタイミングで、センサーに対し I2C通信を行いセンサーデータを取得します。 BHMがセンサーデバイスから取得したデータは、Monitor Registerに格納されます。

以下に Hardware Interrupt Timerの周期を 1秒とし、Current Voltage Monitorの読み出しタイミングを 100 ms、温度センサーの読み出しタイミングを 200 msとした場合のレジスタ設定を示します。

./images/bhm_hardware_interrupt_timing.png

  • 手順 8で行う Hardware Interrupt Timer Prescaler Registerに 0x5DBFを設定する事で Hardware Interrupt Timerのカウントアップ時間を 1msとする
  • 手順 9で行う Hardware Interrupt Timer Output Compare Register 1に 0x3E8を設定する事で Hardware Interrupt Timerの周期を 1秒とする
  • 手順 10で行う Hardware Interrupt Timer Output Compare Register 2に 0x64を設定する事で、Current Voltage Monitorのデータ読み出し開始タイミングを 100 msとする
  • 手順 11で行う Hardware Interrupt Timer Output Compare Register 3に 0xC8を設定する事で、温度センサーのデータ読み出し開始タイミングを 200 msとする

Current Voltage Monitorのデータ読み出しは 6 ms、温度センサーの読み出しは 1.5 msかかります。 そのため、Hardware Interrupt Timerの周期は 7.5 msより大きな時間に設定してください。 また、各センサーデバイスには AD変換時間があり、短い周期でデータを読み出した場合には、まだセンサーデバイスのデータ更新が行われていない場合があります。

詳細は各センサーデバイスのデータシートを参照してください。

センサーデバイスの初期化のためのレジスタアクセス手順

この章では、BHMによるセンサーデバイスの初期化のためのレジスタアクセス手順について説明します。

BHMは、ソフトウェアからのレジスタアクセスにより、センサーデバイスの初期化要求を受けると、I2Cアクセスを行い センサーデバイスに初期設定値を書き込みます。 センサーデバイスの初期化のためのレジスタアクセス手順を以下に示します。

./images/bhm_sensor_init.png

1: BHM Initialization Access Control Registerの初期化を行うセンサーデバイスに対応する Initialization Enableと INIT_REQビットをセットします。 INIT_REQビットをセットされると、Initialization Enableがセットされたセンサーデバイスへの初期化のための I2Cアクセスが開始されます。

2: BHMによるセンサーデバイスへの書き込みアクセスの完了は、SYSMON_BHM_INT割り込みのアサートにより検出する事ができます。 割り込みを検出したとき、BHM Interrupt Status Registerの BHM_INIT_ACCENDビットがセットされている場合、センサーデバイスの初期化のための I2Cアクセスが完了した事を示します。 BHM_INIT_ACCENDがセットされたときは、I2CERRビットの確認を行い I2Cアクセスにエラーが発生したかどうかを確認します。 I2CERRビットがセットされていないとき、そのセンサーデバイスのアクセスは正常に完了したと判断できます。

3: Board Health Interrupt Status RegisterのBHM_SW_ACCENDビットに “1”を書き込むと、BHM_SW_ACCENDビットをクリアする事ができます。

以下に、初期設定を行うセンサーデバイス、デバイスアドレス、初期設定値の一覧を示します。 尚、初期設定値は、RTL設計において Verilog Parameterで変更する事ができます。

DeviceAddress初期設定値Description
Current Voltage Monitor10x07: Channel-1 Critical-Alert Limit0x2710VDD_1V0の Critical-Alertをシャント電圧: 50mV (シャント電流: 5A)に設定
Current Voltage Monitor10x08: Channel-1 Warning-Alert Limit0x1770VDD_1V0の Warning-Alertをシャント電圧: 30mV (シャント電流: 3A)に設定
Current Voltage Monitor10x09: Channel-2 Critical-Alert Limit0x2710VDD_1V8の Critical-Alertをシャント電圧: 50mV (シャント電流: 5A)に設定
Current Voltage Monitor10x0A: Channel-2 Warning-Alert Limit0x1770VDD_1V8の Warning-Alertをシャント電圧: 30mV (シャント電流: 3A)に設定
Current Voltage Monitor10x0B: Channel-3 Critical-Alert Limit0x2710VDD_3V3の Critical-Alertをシャント電圧: 50mV (シャント電流: 5A)に設定
Current Voltage Monitor10x0C: Channel-3 Warning-Alert Limit0x1770VDD_3V3の Warning-Alertをシャント電圧: 30mV (シャント電流: 3A)に設定
Current Voltage Monitor10x0F: Mask/Enable0x0C00Current Voltage Monitor 1の Critical-Alertピン、Warning-Alertピンのラッチの有効化を設定
Current Voltage Monitor20x07: Channel-1 Critical-Alert Limit0x2710VDD_3V3_SYS_Aの Critical-Alertをシャント電圧: 50mV (シャント電流: 5A)に設定
Current Voltage Monitor20x08: Channel-1 Warning-Alert Limit0x1770VDD_3V3_SYS_Aの Warning-Alertをシャント電圧: 30mV (シャント電流: 3A)に設定
Current Voltage Monitor20x09: Channel-2 Critical-Alert Limit0x2710VDD_3V3_SYS_Bの Critical-Alertをシャント電圧: 50mV (シャント電流: 5A)に設定
Current Voltage Monitor20x0A: Channel-2 Warning-Alert Limit0x1770VDD_3V3_SYS_Bの Warning-Alertをシャント電圧: 30mV (シャント電流: 3A)に設定
Current Voltage Monitor20x0B: Channel-3 Critical-Alert Limit0x2710VDD_3V3_IOの Critical-Alertをシャント電圧: 50mV (シャント電流: 5A)に設定
Current Voltage Monitor20x0C: Channel-3 Warning-Alert Limit0x1770VDD_3V3_IOの Warning-Alertをシャント電圧: 30mV (シャント電流: 3A)に設定
Current Voltage Monitor20x0F: Mask/Enable0x0C00Current Voltage Monitor 2の Critical-Alertピン、Warning-Alertピンのラッチの有効化を設定
Temperature Sensor10x01: Configuration register0x0200Temperature Sensor 1の ALERTピンの動作を Interrupt Modeに設定 (1Byteのレジスタの為、MSB Byteの書き込み値に設定される)
Temperature Sensor10x02: TLOW register0x4B00Temperature Sensor 1の TLOWを 75℃に設定
Temperature Sensor10x03: THIGH register0x5000Temperature Sensor 1の THIGHを 80℃に設定
Temperature Sensor20x01: Configuration register0x0200Temperature Sensor 2の ALERTピンの動作を Interrupt Modeに設定 (1Byteのレジスタの為、MSB Byteの書き込み値に設定される)
Temperature Sensor20x02: TLOW register0x4B00Temperature Sensor 2の TLOWを 75℃に設定
Temperature Sensor20x03: THIGH register0x5000Temperature Sensor 2の THIGHを 80℃に設定
Temperature Sensor30x01: Configuration register0x0200Temperature Sensor 3の ALERTピンの動作を Interrupt Modeに設定 (1Byteのレジスタの為、MSB Byteの書き込み値に設定される)
Temperature Sensor30x02: TLOW register0x4B00Temperature Sensor 3の TLOWを 75℃に設定
Temperature Sensor30x03: THIGH register0x5000Temperature Sensor 3の THIGHを 80℃に設定

センサーデバイスの初期化のための I2Cアクセスの実行中に、BHM Retry Count Setting Registerに設定されている回数の I2Cエラーが発生した場合、BHM Interrupt Status Registerの対応するセンサーデバイスの I2CERRビットがセットされます。 また、I2Cエラーが発生したデバイスへの以降の初期化設定はスキップされます。 ひとつのセンサーデバイスに I2Cエラーが起きても、I2CERRビットがセットされていないセンサーの初期化アクセスは正常に完了しています。

ソフトウェア指示によるセンサーデバイスへの I2Cアクセス

この章では、SC OBC FPGAに実装されるセンサーデバイス (Current Voltage Monitor 及び 温度センサー)に、ソフトウェアの指示によりアクセスする方法を説明します。

BHMは、RTLに指定する Verilog parameterの値に従い、センサーデバイスのレジスタを初期化する機能を持っています。 この機能とは別に、センサーデバイスのレジスタに対し 任意の I2Cアクセスを行いたい場合は、ソフトウェア指示によるセンサーデバイスへのアクセスを行います。

ソフトウェア指示によりセンサーデバイスのレジスタにデータを書き込むためのレジスタアクセスフローを以下に示します。

./images/bhm_sw_write_seq.png

1: センサーデバイスに書き込む 2 Byteのデータを BHM Software Access Write Data Registerに書き込みます。 このレジスタに書き込まれたデータがそのままデバイスのレジスタに書き込まれます。

2: レジスタ書き込みを行うセンサーデバイスとレジスタアドレスを設定するため、BHM Software Access Control Registerの BHM_SWDEVSELと BHM_SWREGADRを書き込みます。 同時に、センサーデバイスへの書き込みアクセスを行うため、BHM_SWRWSELに “0” (Write Access)を設定し、BHM_SWACCREQに “1”をセットします。 BHM_SWACCREQビットが “1”にセットされた事をきっかけに、BHMはセンサーデバイスへの I2Cアクセスを開始します。

3: BHMによるセンサーデバイスへの書き込みアクセスの完了は、SYSMON_BHM_INT割り込みのアサートにより検出する事ができます。 割り込みを検出したとき、BHM Interrupt Status Registerの BHM_SW_ACCENDビットがセットされている場合、ソフトウェア指示によるセンサーデバイスへの I2Cアクセスが正常に完了した事を示します。

4: Board Health Interrupt Status RegisterのBHM_SW_ACCENDビットに “1”を書き込むと、BHM_SW_ACCENDビットをクリアする事ができます。

ソフトウェア指示によるセンサーデバイスのレジスタ書き込み中に、I2Cアクセスのエラーが発生した場合は、BHM Interrupt Status Registerの BHM_SW_ACCERRビットに “1”にセットされ、センサーデバイスへの I2Cアクセスは停止します。

ソフトウェア指示によりセンサーデバイスのレジスタからデータを読み出すためのレジスタアクセスフローを以下に示します。

./images/bhm_sw_read_seq.png

1: レジスタ読み出しを行うセンサーデバイスとレジスタアドレスを設定するため、BHM Software Access Control Registerの BHM_SWDEVSELと BHM_SWREGADRを書き込みます。 同時に、センサーデバイスからの読み出しアクセスを行うため、BHM_SWRWSELに “1” (Read Access)を設定し、BHM_SWACCREQに “1”をセットします。 BHM_SWACCREQビットが “1”にセットされた事をきっかけに、BHMはセンサーデバイスへの I2Cアクセスを開始します。

2: BHMによるセンサーデバイスへの書き込みアクセスの完了は、SYSMON_BHM_INT割り込みのアサートにより検出する事ができます。 割り込みを検出したとき、BHM Interrupt Status Registerの BHM_SW_ACCENDビットがセットされている場合、ソフトウェア指示によるセンサーデバイスへの I2Cアクセスが正常に完了した事を示します。

3: Board Health Interrupt Status RegisterのBHM_SW_ACCENDビットに “1”を書き込むと、BHM_SW_ACCENDビットをクリアする事ができます。

4: BHMがセンサーデバイスのレジスタから読み出したデータは、BHM Software Access Read Data Registerに格納されます。 BHM Software Access Read Data Registerを読み出す事で、センサーデバイスから読み出したデータを取得できます。

ソフトウェア指示によるセンサーデバイスのレジスタ読み出し中に、I2Cアクセスのエラーが発生した場合は、BHM Interrupt Status Registerの BHM_SW_ACCERRビットが “1”にセットされ、センサーデバイスへの I2Cアクセスは停止します。

レジスタ詳細

System Monitorは、Base Address 0x4F04_0000に配置されています。

OffsetSymbolRegisterInitial
0x0000SYSMON_WDOG_CTRLWatchdog Control Register0x00075A5A
0x0010SYSMON_WDOG_SIVALWatchdog Signal Interval Register0x00B71AFF
0x0030SYSMON_INT_STATUSSystem Monitor Interrupt Status Register0x00000000
0x0034SYSMON_INT_ENABLESystem Monitor Interrupt Enable Register0x00000000
0x0040SYSMON_SEM_STATESEM Controller State Register0x00000000
0x0044SYSMON_SEM_ECCOUNTSEM Error Correction Count Register0x00000000
0x0048SYSMON_SEM_HTIMEOUTSEM Heartbeat Timeout Register0x000000FF
0x0050SYSMON_SEM_EINJECT1SEM Error Injection Command Register 10x00000000
0x0054SYSMON_SEM_EINJECT2SEM Error Injection Command Register 20x00000000
0x1000 - 0x1FFFSYSMON_XADC_REGXADC Register Window----------
0x2000BHM_INICTLRBHM Initialization Access Control Register0x0000001F
0x2004BHM_ACCCTLRBHM Access Control Register0x00000000
0x2010BHM_ISRBHM Interrupt Status Register0x00000000
0x2014BHM_IERBHM Interrupt Enable Register0x00000000
0x2020BHM_1V0_SNTVRBHM VDD_1V0 Shunt Voltage Monitor Register0x80000000
0x2024BHM_1V0_BUSVRBHM VDD_1V0 Bus Voltage Monitor Register0x80000000
0x2028BHM_1V8_SNTVRBHM VDD_1V8 Shunt Voltage Monitor Register0x80000000
0x202CBHM_1V8_BUSVRBHM VDD_1V8 Bus Voltage Monitor Register0x80000000
0x2030BHM_3V3_SNTVRBHM VDD_3V3 Shunt Voltage Monitor Register0x80000000
0x2034BHM_3V3_BUSVRBHM VDD_3V3 Bus Voltage Monitor Register0x80000000
0x2038BHM_3V3SYSA_SNTVRBHM VDD_3V3_SYS_A Shunt Voltage Monitor Register0x80000000
0x203CBHM_3V3SYSA_BUSVRBHM VDD_3V3_SYS_A Bus Voltage Monitor Register0x80000000
0x2040BHM_3V3SYSB_SNTVRBHM VDD_3V3_SYS_B Shunt Voltage Monitor Register0x80000000
0x2044BHM_3V3SYSB_BUSVRBHM VDD_3V3_SYS_B Bus Voltage Monitor Register0x80000000
0x2048BHM_3V3IO_SNTVRBHM VDD_3V3_IO Shunt Voltage Monitor Register0x80000000
0x204CBHM_3V3IO_BUSVRBHM VDD_3V3_IO Bus Voltage Monitor Register0x80000000
0x2050BHM_TEMP1RBHM Temperature1 Monitor Register0x80000000
0x2054BHM_TEMP2RBHM Temperature2 Monitor Register0x80000000
0x2058BHM_TEMP3RBHM Health Temperature3 Monitor Register0x80000000
0x2060BHM_SW_CTLRBHM Software Access Control Register0x00000000
0x2064BHM_SW_WDTRBHM Software Access Write Data Register0x00000000
0x2068BHM_SW_RDTRBHM Software Access Read Data Register0x00000000
0x2080BHM_PSCRBHM Prescale Setting Register0x00000077
0x2084BHM_ACCCNTRBHM Retry Count Setting Register0x00000002
0x20C0BHM_ASRBHM Access Status Register0x00000000
0xF000SYSMON_VERSystem Monitor IP Version Register-

Watchdog Control Register (Offset 0x0000)

Watchdog Control Registerは、SC OBC FPGAの Watchdogの制御を行うためのレジスタです。 本レジスタにより Watchdog Counterの満了時間の設定や、Software Watchdog Timerをリロードする事ができます。

システムの起動後、SC OBC FPGAの Watchdog Timer回路は、TRCHに対し Watchdog信号のトグルを開始します。 ソフトウェアは Software Watcdog Timeフィールドに設定されている Software Watchdog Timerの満了時間以内に、Watchdog Service Registerにアクセスし Software Watchdog Timerをリロードする必要があります。 Software Watchdog Timerが満了すると、SC OBC FPGAの Watchdog Timer回路は、TRCHに対する Watchdog信号のトグルを停止し、TRCHに対しソフトウェアに異常が起きた事を通知します。

初期状態では、Software Watchdog Timerのの満了時間は 128 [sec] に設定されています。 ソフトウェアが、定期的にSoftware Watchdog Timerをリロードできる状態となった後、Software Watchdog Timeフィールドを適切な値に変更する事で 異常検知のタイミングを設定する事ができます。

bitSymbolFieldDescriptionR/W
31:19-ReservedReserved-
18:16SW_WDOG_TIMESoftware Watchdog TimeSoftware Watchdog Timerの満了時間を設定するためのフィールドです。0x0: 1 [sec] 0x1: 2 [sec] 0x2: 4 [sec] 0x3: 8 [sec] 0x4: 16 [sec] 0x5: 32 [sec] 0x6: 64 [sec] 0x7: 128 [sec]R/W
15:0WDOG_WSRWatchdog Service RegisterSoftware Watchdog Timerをリロードするためのフィールドです。0x5A5Aと 0xA5A5を交互に書き込む事で、Software Watchdog Timerをリロードする事ができます。このフィールドを読み出すと、Software Watchdog Timerをリロードするために次に書き込む値(0x5A5A または 0xA5A5)を読み出す事ができます。R/W

Watchdog Signal Interval Register (Offset 0x0010)

Watchdog Signal Interval Registerは、FPGA_WATCHDOG信号のトグル間隔を設定するためのレジスタです。

FPGA_WATCHDOGが Highレベル または Lowレベルとなるクロックサイクル数を規定します。Watchdog Signalのカウンタは 24 MHzで動作するため、以下の式で設定値を求める事ができます。

$WDOG\_SIVAL設定値 = \frac{FPGA\_WATCHDOG\ High/Lowレベル幅 [s]}{\frac{1}{24 × 106}} - 1$

bitSymbolFieldDescriptionR/W
31:24-ReservedReserved-
23:0WDOG_SIVALWatchdog Signal IntervalWatchdog Signalの Highレベルまたは Lowレベルの幅を設定するフィールドです。初期値は 500 [ms]に設定されています。R/W

Clock Monitor Register (Offset 0x0020)

Clock Monitor Registerは、SC OBC FPGAのクロック状態を示すレジスタです。

bitSymbolFieldDescriptionR/W
31:17-ReservedReserved-
16PLL_LOCKPLL Lock StatusSC OBC FPGAの PLLの状態を示します。0: PLL Unlock 1: PLL LOCKRO
15:13-ReservedReserved-
12UCLK2_STSUser Clock 2 StatusUser Clock 2のクロックの動作状態を示します。 0: クロック停止中 1: クロック動作中RO
11UCLK1_STSUser Clock 1 StatusUser Clock 1のクロックの動作状態を示します。 0: クロック停止中 1: クロック動作中RO
10ULPICLK_STSULPI Reference Clock StatusULPI Reference Clockのクロックの動作状態を示します。 0: クロック停止中 1: クロック動作中RO
9MAXICLK_STSMain AXI Clock StatusMain AXI Clockのクロックの動作状態を示します。 0: クロック停止中 1: クロック動作中RO
8SYSCLK_STSSystem Clock StatusSystem Clockのクロックの動作状態を示します。 0: クロック停止中 1: クロック動作中RO
7:2-ReservedReserved-
1:0OSC_CLKENOSC Clock EnableSC OBC FPGAの入力クロック (源発信クロック)の Enable信号の状態を示します。bit 0: Oscillator 1の状態を示します。 bit 1: Oscillator 2の状態を示します。これらのビットが “1”の時、クロックは Enableです。RO

Hardware Status 1/2 Register (Offset 0x0024/Offset 0x0028)

Hardware Status Registerは、SC OBC FPGAのハードウェアの状態を示すレジスタです。

このレジスタは、ソフトウェアから見ると、Scratchpadとして動作します。 Loaderによって、ハードウェアの健全性が確認されるとこのレジスタに書き込みを行います。 Flight Softwareは、起動時にこのレジスタを読み出す事で、ハードウェアの健全性を知る事ができます。

このレジスタは、SC OBC FPGAの Configuration後に一度だけ初期化されます。 Code Memory Select Registerの ITCMENビットがセットされた時に発行されるシステムリセットでは、このレジスタはクリアされません。

このレジスタのフィールドの詳細は未定です。

bitSymbolFieldDescriptionR/W
31:0HWARE_STATUS1Hardware Status 1T.B.D.R/W
bitSymbolFieldDescriptionR/W
31:0HWARE_STATUS2Hardware Status 2T.B.D.R/W

System Monitor Interrupt Status Register (Offset 0x0030)

System Monitor Interrupt Status Registerは、System Monitorの割り込みステータスレジスタです。 それぞれのビットは”1”をセットすると、割り込みをクリアする事ができます。

SEM Controllerの異常を示すビット (bit 9、bit 10、bit 11) は、”1”をセットすると割り込みをクリアする事はできますが、SEM Controllerの異常が取り除かれるわけではないため、システムの再起動を行う必要があります。

bitSymbolFieldDescriptionR/W
31:5-ReservedReserved-
11SEM_HTIMEOUT_INTSEM Heartbeat Timeout InterruptSEM Controllerの Heartbeat信号が Timeoutしたときにセットされる割り込みビットです。SEM Controllerが出力する Heartbeat信号が SEM Heartbeat Timeout Registerで設定するクロック数アサートされなかった時セットされます。R/WC
10SEM_HALTED_INTSEM Halted InterruptSEM Controllerが Fatal Errorにより Haltしたときにセットされる割り込みビットです。SEM Current State Registerの全ての有効ビットがセットされたとき、この割り込みがセットされます。R/WC
9SEM_UNCORRECT_INTSEM Uncorrectable InterruptSEM Controllerが訂正不能なエラーを検出したときセットされる割り込みビットです。この割り込みがセットされたとき、SEM Controllerは IDLEステートに遷移し コンフィギュレーションメモリの監視を停止します。R/WC
8SEM_ECORRECT_INTSEM Error Correction InterruptSEM Controllerがエラーを訂正したときセットされる割り込みビットです。R/WC
7PLL_UNLOCK_INTPLL Unlock InterruptPLLが異常により Unlockしたときセットされる割り込みビットです。R/WC
6:5-ReservedReserved-
4UCLK2_STOP_INTUser Clock 2 Stop InterruptUser Clock 2が異常により停止したときセットされる割り込みビットです。R/WC
3UCLK1_STOP_INTUser Clock 1 Stop InterruptUser Clock 1が異常により停止したときセットされる割り込みビットです。R/WC
2ULPICLK_STOP_INTULPI Clock Stop InterruptULPI Clockが異常により停止したときセットされる割り込みビットです。R/WC
1MAXICLK_STOP_INTMain AXI Clock Stop InterruptMain AXI Clockが異常により停止したときセットされる割り込みビットです。R/WC
0SYSCLK_STOP_INTSystem Clock Stop InterruptSystem Clockが異常により停止したときセットされる割り込みビットです。R/WC

System Monitor Interrupt Enable Register (Offset 0x0034)

System Monitor Interrupt Enable Registerは、System Monitorが監視するイベントを割り込み出力信号に通知するか設定するためのレジスタです。

bitSymbolFieldDescriptionR/W
31:5-ReservedReserved-
11SEM_HTIMEOUT_ENBSEM Heartbeat Timeout Interrupt EnableSEM_HTIMEOUT_INTイベントが発生した時、割り込み信号を発生させるかどうかを設定します。R/W
10SEM_HALTED_ENBSEM Halted Interrupt EnableSEM_HALTED_INTイベントが発生した時、割り込み信号を発生させるかどうかを設定します。R/W
9SEM_UNCORRECT_ENBSEM Uncorrectable Interrupt EnableSEM_UNCORRECT_INTイベントが発生した時、割り込み信号を発生させるかどうかを設定します。R/W
8SEM_ECORRECT_ENBSEM Error Correction Interrupt EnableSEM_ECORRECT_INTイベントが発生した時、割り込み信号を発生させるかどうかを設定します。R/W
7PLL_UNLOCK_ENBPLL Unlock Interrupt EnablePLL_UNLOCK_INTイベントが発生した時、割り込み信号を発生させるかどうか設定します。R/W
6:5-ReservedReserved-
4UCLK2_STOP_ENBUser Clock 2 Stop Interrupt EnableUCLK2_STOP_INTイベントが発生した時、割り込み信号を発生させるかどうか設定します。R/W
3UCLK1_STOP_ENBUser Clock 1 Stop Interrupt EnableUCLK1_STOP_INTイベントが発生した時、割り込み信号を発生させるかどうか設定します。R/W
2ULPICLK_STOP_ENBULPI Clock Stop Interrupt EnableULPICLK_STOP_INTイベントが発生した時、割り込み信号を発生させるかどうかを設定します。R/W
1MAXICLK_STOP_ENBMain AXI Clock Stop Interrupt EnableMAXICLK_STOP_INTイベントが発生した時、割り込み信号を発生させるかどうかを設定します。R/W
0SYSCLK_STOP_ENBSystem Clock Stop Interrupt EnableSYSCLK_STOP_INTイベントが発生した時、割り込み信号を発生させるかどうかを設定します。R/W

SEM Controller State Register (0ffset 0x0040)

SEM Controller State Registerは SC OBC FPGAに実装する、SEM Controllerのステートを示すレジスタです。

セットされているビットを確認する事により、ソフトウェアは SEM Controllerがどのような状況にあるか把握する事ができます。 また、Currentステートと Previousステートを比較する事によって、ステートの遷移を把握する事ができます。

Currentステート、Previousステートの全てのビットが Highにセットされているとき、SEM Controllerに重大なエラーが起きた事を示します。 また、全てのビットが Lowにクリアされているとき、SEM Controllerは IDLE状態である事を示します。

bitSymbolFieldDescriptionR/W
31:21-ReservedReserved-
20SEM_PRE_INJECTSEM Previous Injection StateSEM Controllerの前のステートがエラー挿入ステートだった事を示します。RO
19SEM_PRE_CLASSIFICSEM Previous Classification StateSEM Controllerの前のステートが分類ステートだった事を示します。RO
18SEM_PRE_CORRECTSEM Previous Correction StateSEM Controllerの前のステートが訂正ステートだった事を示します。RO
17SEM_PRE_OBSERVESEM Previous Oveservation StateSEM Controllerの前のステートが監視ステートだった事を示します。RO
16SEM_PRE_INITSEM Previous Initilize StateSEM Controllerの前のステートが初期化ステートだった事を示します。RO
15:5-ReservedReserved-
4SEM_CUR_INJECTSEM Current Error Injection StateSEM Controllerがエラー挿入ステートである事を示します。このビットのみが Highにセットされているとき、SEM Controllerはエラー挿入ステートです。RO
3SEM_CUR_CLASSIFICSEM Current Classification StateSEM Controllerが分類ステートである事を示します。このビットのみが Highにセットされているとき、SEM Controllerは分類ステートです。RO
2SEM_CUR_CORRECTSEM Current Correction StateSEM Controllerが訂正ステートである事を示します。このビットのみが Highにセットされているとき、SEM Controllerは訂正ステートです。RO
1SEM_CUR_OBSERVESEM Current Oveservation StateSEM Controllerが監視ステートである事を示します。このビットのみが Highにセットされているとき、SEM Controllerは監視ステートです。RO
0SEM_CUR_INITSEM Current Initilize StateSEM Controllerが初期化ステートである事を示します。このビットのみが Highにセットされているとき、SEM Controllerは初期化ステートです。このビットは FPGAが動作を開始した後に 1度だけ発生する初期化の間アクティブになります。RO

SEM Error Correction Count Register (Offset 0x0044)

SEM Error Correction Count Registerは、SEM Controllerが行ったエラー訂正数をカウントします。

bitSymbolFieldDescriptionR/W
31:16-ReservedReserved-
15:0SEMCCOUNTSEM Correction CountSEM Controllerが訂正したエラーの数を保持します。このレジスタに書き込みを行うと、書き込む値によらずカウント値が 0にクリアされます。R/WC

SEM Heartbeat Timeout Register (Offset 0x0048)

SEM Heartbeat Timeout Registeは SEM Controllerが出力する Heartbeat信号の Timeout時間を設定するレジスタです。 Xilinxの SEM Controller (v4.1)では、Heartbeat信号のアサート間隔は 150クロックと規定されており、本レジスタの値は修正する必要はありません。

bitSymbolFieldDescriptionR/W
31:8-ReservedReserved-
7:0HTIMEOUTHeartbeat Timeout ValueSEM Controllerが出力する Heartbeat信号の受信Timeout時間を設定します。SEM Controllerのステートが、監視ステートのとき このレジスタに設定されるカウント値まで Heartbeat信号がアサートされないとき、SEM Heartbeat Timeout割り込みを発生させます。R/W

SEM Error Injection Command Register 1/2 (Offset 0x0050/0x0054)

SEM Error Injection Command Register は、SEM Controller のエラー挿入機能を使用するためのレジスタです。 このレジスタを使用し、SEM Controllerのエラー挿入インターフェースにコマンドを入力する事により、エラー挿入機能を使用する事ができます。

このレジスタは試験専用レジスタであり、FPGA インプリ時のコンフィギュレーションにより、無効化する事ができます。

SEM Controller へのコマンド送信は、SEM Error Injection Command Register 2 への書き込みをきっかけに行われます。 そのため、SEM Error Injection Command Register 1 への書き込みは、必ず SEM Error Injection Command Register 2 の書き込み前に行ってください。

bitSymbolFieldDescriptionR/W
31:0EINJECT1Error Injection 1SEM Controllerのエラー挿入インターフェースにコマンドを入力するためのフィールドです。このフィールドにはエラー挿入コマンドの Bit 31:0 を設定します。R/W
bitSymbolFieldDescriptionR/W
31:8-ReservedReserved-
7:0EINJECT2Error Injection 2SEM Controllerのエラー挿入インターフェースにコマンドを入力するためのフィールドです。このフィールドにはエラー挿入コマンドの Bit 39:32 を設定します。このフィールドをセットすると SEM Error Injection 1 の設定値と合わせ SEM Controllerにエラーコマンドが送信されます。R/W

XADC Register Window (Offset 0x1000-1FFF)

XADC Register Fieldは、SC OBC FPGAに搭載されている Xilinxの ADCモジュールとのアクセスを行うための領域です。

XADCは Xilinx 7シリーズ FPGAに搭載される ADCモジュールです。 XADCには 12 bit、毎秒 1 Mサンプルの ADCとオンチップセンサーが含まれています。 SC OBC FPGAでは、XADCのレジスタを読み出す事により、FPGAのダイの温度と入力電源の監視を行う事ができます。

XADCの詳細は Xilinxのドキュメント (UG480: 7シリーズ FPGAおよび Zynq-7000 All Programmable SoC XADCデュアル 12ビット 1 MPSPS アナログ-デジタルコンバーター ユーザーズガイド)を参照してください。

XADCのレジスタにアクセスするためには、ベースアドレスを 0x4F041000とし Bit 11:4に 対象となるXADCのレジスタアドレスを設定する事で行えます。 Status Registerにアクセスするためのレジスタアドレスを以下に示します。

OffsetNameDescription
0x1000Temperature Statusオンチップ温度センサーの測定結果が格納されます。Bit 15:4の 12 Bitが温度センサーの伝達関数に対応します。
0x1010VCCINT StatusオンチップVCCINT電圧モニターの測定結果が格納されます。Bit 15:4の 12 Bitが電圧センサーの伝達関数に対応します。
0x1020VCCAUX StatusオンチップVCCAUX電圧モニターの測定結果が格納されます。Bit 15:4の 12 Bitが電圧センサーの伝達関数に対応します。
0x1060VCCBRAM StatusオンチップVCCBRAM電圧モニターの測定結果が格納されます。Bit 15:4の 12 Bitが電圧センサーの伝達関数に対応します。
0x1200Max Temperature電源投入または最後に XADCをリセットしてから記録された最大温度測定値が格納されます。
0x1210Max VCCINT電源投入または最後に XADCをリセットしてから記録された最大VCCINT測定値が格納されます。
0x1220Max VCCAUX電源投入または最後に XADCをリセットしてから記録された最大VCCAUX測定値が格納されます。
0x1230Max VCCBRAM電源投入または最後に XADCをリセットしてから記録された最大VCCBRAM測定値が格納されます。
0x1240Min Temperature電源投入または最後に XADCをリセットしてから記録された最小温度測定値が格納されます。
0x1250Min VCCINT電源投入または最後に XADCをリセットしてから記録された最小VCCINT測定値が格納されます。
0x1260Min VCCAUX電源投入または最後に XADCをリセットしてから記録された最小VCCAUX測定値が格納されます。
0x1270Min VCCBRAM電源投入または最後に XADCをリセットしてから記録された最小VCCBRAM測定値が格納されます。

System Monitorの XADC Register Windowからは、XADCのすべてのレジスタ領域にアクセスする事ができますが、アラーム機能は現状実装されておりません。

BHM Initialization Access Control Register (Offset 0x2000)

BHM Initialization Access Control Registerは、OBC Moduleに実装するセンサーの初期化に関する制御を行うためのレジスタです。 Board Health Monitorは、このレジスタを制御することによって、センサーに対し初期化のためのレジスタアクセスを実行します。

Initialization Requestビットを “1”にセットすると、Initialization Enableビットが “1”にセットされているセンサーに初期化を行います。 Initialization RequestビットとInitialization Enableビットは、同時にセットすることができます。

センサーに設定する初期値は、RTL設計時にVerilogパラメータで指定する事ができます。

bitSymbolFieldDescriptionR/W
31:17-ReservedReserved-
16BHM_INIT_REQInitialization RequestOBC Moduleに実装するセンサーの初期化を開始するためのビットです。このビットに”1”をセットすると、初期化を開始します。Initialization Enableがセットされている全てのセンサーの初期化が完了すると、このビットは自動的に “0”にクリアされます。R/W
15:5-ReservedReserved-
4BHM_TEMP3_INITENTemperature Sensor 3 Initialization EnableTemperature Sensor 3 の初期化を有効化するためのビットです。0: Temperature Sensor 3 Initialization Disable 1: Temperature Sensor3 Initialization EnableR/W
3BHM_TEMP2_INITENTemperature Sensor 2 Initialization EnableTemperature Sensor 2 の初期化を有効化するためのビットです。0: Temperature Sensor 2 Initialization Disable 1: Temperature Sensor2 Initialization EnableR/W
2BHM_TEMP1_INITENTemperature Sensor 1 Initialization EnableTemperature Sensor 1 の初期化を有効化するためのビットです。0: Temperature Sensor 1 Initialization Disable 1: Temperature Sensor1 Initialization EnableR/W
1BHM_CVM2_INITENCurrent Voltage Monitor 2 Initialization EnableCurrent Voltage Monitor 2 の初期化を有効化するためのビットです。0: Current Voltage Monitor 2 Initialization Disable 1: Current Voltage Monitor2 Initialization EnableR/W
0BHM_CVM1_INITENCurrent Voltage Monitor 1 Initialization EnableCurrent Voltage Monitor 1 の初期化を有効化するためのビットです。0: Current Voltage Monitor 1 Initialization Disable 1: Current Voltage Monitor1 Initialization EnableR/W

BHM Access Control Register (Offset 0x2004)

BHM Access Control Registerは、OBC Moduleに実装するセンサーからのセンサーデータの自動読み出しに関する設定を行うためのレジスタです。

対象のセンサーの Monitor Enableビットを “1”にセットしておくと、GPTMRモジュールに実装する Hardware Schedulerから タイミングパルスを受信するたびに、対応するセンサーからデータを読み出します。

bitSymbolFieldDescriptionR/W
31:5-ReservedReserved-
4BHM_TEMP3_MONIENTemperature Sensor 3 Monitor EnableTemperature Sensor 3からセンサーデータを読み出すための設定を行うビットです。 このビットが “1”にセットされている時に Hardware Schedulerからタイミングパルスを受信すると、Temperature Sensor 3から温度データを読み出します。BHM_TEMP3_I2CERR 割り込みが発生した場合、このビットは自動的に”0”にクリアされます。 0: Temperature Sensor 3 Monitor Disable 1: Temperature Sensor 3 Monitoring EnableR/W
3BHM_TEMP2_MONIENTemperature Sensor 2 Monitor EnableTemperature Sensor 2からセンサーデータを読み出すための設定を行うビットです。 このビットが “1”にセットされている時に Hardware Schedulerからタイミングパルスを受信すると、Temperature Sensor 2から温度データを読み出します。BHM_TEMP2_I2CERR 割り込みが発生した場合、このビットは自動的に”0”にクリアされます。 0: Temperature Sensor 2 Monitor Disable 1: Temperature Sensor 2 Monitoring EnableR/W
2BHM_TEMP1_MONIENTemperature Sensor 1 Monitor EnableTemperature Sensor 1からセンサーデータを読み出すための設定を行うビットです。 このビットが “1”にセットされている時に Hardware Schedulerからタイミングパルスを受信すると、Temperature Sensor 1から温度データを読み出します。BHM_TEMP1_I2CERR 割り込みが発生した場合、このビットは自動的に”0”にクリアされます。 0: Temperature Sensor 1 Monitor Disable 1: Temperature Sensor 1 Monitoring EnableR/W
1BHM_CVM2_MONIENCurrent Voltage Monitor 2 Monitor EnableCurrent Voltage Monitor 2からセンサーデータを読み出すための設定を行うビットです。このビットが “1”にセットされている時に Hardware Schedulerからタイミングパルスを受信すると、Current Voltage Monitor 2からシャント電圧とバス電圧データを読み出します。BHM_CVM2_I2CERR 割り込みが発生した場合、このビットは自動的に”0”にクリアされます。 0: Current Voltage Monitor 2 Monitor Disable 1: Current Voltage Monitor2 Monitoring EnableR/W
0BHM_CVM1_MONIENCurrent Voltage Monitor 1 Monitor EnableCurrent Voltage Monitor 1からセンサーデータの読み出すための設定を行うビットです。このビットが “1”にセットされている時に Hardware Schedulerからタイミングパルスを受信すると、Current Voltage Monitor 1からシャント電圧とバス電圧データを読み出します。BHM_CVM1_I2CERR 割り込みが発生した場合、このビットは自動的に “0”にクリアされます。0: Current Voltage Monitor 1 Monitor Disable 1: Current Voltage Monitor1 Monitoring EnableR/W

BHM Interrupt Status Register (Offset: 0x2010)

BHM Interrupt Status Registerは、Board Health Monitorの割り込みステータスレジスタです。 それぞれのビットは “1”をセットすると、割り込みをクリアする事ができます。

bitSymbolFieldDescriptionR/W
31:19-ReservedReserved-
18BHM_TEMP_ALERTTemperature Sensor Alert Detect温度センサーから Alert信号を受信したことを示すビットです。OBC Module上に実装される、いずれかの温度センサーが Alert信号をアサートした時、本ビットが”1”にセットされます。R/WC
17BHM_CVM_WARNCurrent Voltage Monitor Warning Alert DetectCurrent Voltage Monitorから Warning Alert信号を受信したことを示すビットです。OBC Module上に実装される、いずれかの Current Voltage Monitorが Warning信号をアサートした時、本ビットが”1”にセットされます。R/WC
16BHM_CVM_CRITCurrent Voltage Monitor Critical Alert DetectCurrent Voltage Monitorから Critical Alert信号を受信したことを示すビットです。OBC Module上に実装される、いずれかの Current Voltage Monitorが Critical信号をアサートした時、本ビットが”1”にセットされます。R/WC
15:14-ReservedReserved-
13BHM_SW_I2CERRSoftware I2C Errorソフトウェア指示によるセンサーへのアクセスにおいてエラーが発生したことを示すビットです。BHM Retry Count Setting Registerに設定されているリトライ回数を超えるエラーが連続で発生した場合に、本ビットが “1”にセットされます。R/WC
12BHM_TEMP3_I2CERRTemperature Sensor 3 I2C ErrorTemperature Sensor 3 へのアクセスにおいてエラーが発生した事を示すビットです。センサーの初期化とデータ読み出しのどちらのエラーも本ビットに通知されます。BHM Retry Count Setting Registerに設定されているリトライ回数を超えるエラーが連続で発生した場合に、本ビットが “1”にセットされます。R/WC
11BHM_TEMP2_I2CERRTemperature Sensor 2 I2C ErrorTemperature Sensor 2 へのアクセスにおいてエラーが発生した事を示すビットです。センサーの初期化とデータ読み出しのどちらのエラーも本ビットに通知されます。BHM Retry Count Setting Registerに設定されているリトライ回数を超えるエラーが連続で発生した場合に、本ビットが “1”にセットされます。R/WC
10BHM_TEMP1_I2CERRTemperature Sensor 1 I2C ErrorTemperature Sensor 1 へのアクセスにおいてエラーが発生した事を示すビットです。センサーの初期化とデータ読み出しのどちらのエラーも本ビットに通知されます。BHM Retry Count Setting Registerに設定されているリトライ回数を超えるエラーが連続で発生した場合に、本ビットが “1”にセットされます。R/WC
9BHM_CVM2_I2CERRCurrent Voltage Monitor2 I2C ErrorCurrent Voltage Monitor 2 へのアクセスにおいてエラーが発生した事を示すビットです。センサーの初期化とデータ読み出しのどちらのエラーも本ビットに通知されます。BHM Retry Count Registerに設定されているリトライ回数を超えるエラーが連続で発生した場合に、本ビットが “1”にセットされます。R/WC
8BHM_CVM1_I2CERRCurrent Voltage Monitor1 I2C ErrorCurrent Voltage Monitor 1 へのアクセスにおいてエラーが発生した事を示すビットです。センサーの初期化とデータ読み出しのどちらのエラーも本ビットに通知されます。BHM Retry Count Registerに設定されているリトライ回数を超えるエラーが連続で発生した場合に、本ビットが “1”にセットされます。R/WC
7:2-ReservedReserved-
1BHM_SW_ACCENDSoftware Access Endソフトウェア指示によるセンサーへの I2Cアクセスが完了した事を示すビットです。センサーのレジスタへのデータ書き込み または、読み出しが完了した時、本ビットが “1”にセットされます。R/WC
0BHM_INIT_ACCENDInitialization Access Endセンサーの初期化が完了した事を示すビットです。BHM Initialization Access Control RegisterのInitialization Requestをセットした後に、Initialization Enableビットがセットされている全てのセンサーの初期化が完了した時、本ビットが “1”にセットされます。R/WC

BHM Interrupt Enable Register (Offset: 0x2014)

BHM Interrupt Enable Registerは、Board Health Monitorの割り込みイベントを割り込み信号に通知する設定を行うためのレジスタです。

本レジスタのビットが “1”にセットされている時、その割り込み要因に対応する Interrupt Status Registerのビットが “1”にセットされると、割り込み信号がアサートします。

bitSymbolFieldDescriptionR/W
31:19-ReservedReserved-
18BHM_TEMP_ALERTENBTemperature Sensor Alert Detect EnableBHM_TEMP_ALERTイベントが発生した時に割り込み信号を発生させるかどうかを設定します。R/W
17BHM_CVM_WARNENBCurrent Voltage Monitor Warning Alert Detect EnableBHM_CVM_WARNイベントが発生した時に割り込み信号を発生させるかどうかを設定します。R/W
16BHM_CVM_CRITENBCurrent Voltage Monitor Critical Alert Detect EnableBHM_CVM_CRITイベントが発生した時に割り込み信号を発生させるかどうかを設定します。R/W
15:14-ReservedReserved-
13BHM_SW_I2CERRENBSoftware I2C Access Error EnableBHM_SW_I2CERRイベントが発生した時に割り込み信号を発生させるかどうかを設定します。R/W
12BHM_TEMP3_I2CERRENBTemperature Sensor3 Auto I2C Access Error EnableBHM_TEMP3_I2CERRイベントが発生した時に割り込み信号を発生させるかどうかを設定します。R/W
11BHM_TEMP2_I2CERRENBTemperature Sensor2 Auto I2C Access Error EnableBHM_TEMP2_I2CERRイベントが発生した時に割り込み信号を発生させるかどうかを設定します。R/W
10BHM_TEMP1_I2CERRENBTemperature Sensor1 Auto I2C Access Error EnableBHM_TEMP1_I2CERRイベントが発生した時に割り込み信号を発生させるかどうかを設定します。R/W
9BHM_CVM2_I2CERRENBCurrent Voltage Monitor2 Auto I2C Access Error EnableBHM_CVM2_I2CERRイベントが発生した時に割り込み信号を発生させるかどうかを設定します。R/W
8BHM_CVM1_I2CERRENBCurrent Voltage Monitor1 Auto I2C Access Error EnableBHM_CVM1_I2CERRイベントが発生した時に割り込み信号を発生させるかどうかを設定します。R/W
7:2-ReservedReserved-
1BHM_SW_ACCENDENBSoftware Access End EnableBHM_SW_ACCENDイベントが発生した時に割り込み信号を発生させるかどうかを設定します。R/W
0BHM_INIT_ACCENDENBInitialization Access End EnableBHM_INIT_ACCENDイベントが発生した時に割り込み信号を発生させるかどうかを設定します。R/W

BHM VDD_1V0 Shunt Voltage Monitor Register (Offset 0x2020)

BHM VDD_1V0 Shunt Voltage Monitor Registerは、VDD_1V0 電源ドメインの Shunt Voltageを読み出すためのレジスタです。

BHM Shunt Voltage Monitor Registerに格納されるデータは、Current Voltage Monitor INA3221-Q1の Shunt Voltage Registerからの取得データです。 Shunt Voltageの実効データは Bit 15:3に格納されます。 Bit 2:0は ALL 0が格納されます。

bitSymbolFieldDescriptionR/W
31BHM_1V0_SNTV_NUPDVDD_1V0 Shunt Voltage Not Updatedセンサーデータの更新状態を示すビットです。このビットが “1”にセットされている時、BHM_1V0_SNTVフィールドが前回の読み出し時から更新されていない事を示します。BHMがセンサーからデータを読み出した時、このビットは “0”にクリアされ、BHM_1V0_SNTV を読み出したときこのビットは”1”にセットされます。また、リセット解除後にセンサーデータが取得されていない状態でも、このビットは “1”を示します。RO
30:16-ReservedReserved-
15:0BHM_1V0_SNTVVDD_1V0 Shunt Voltage MonitorVDD_1V0 電源ドメインのシャント電圧を読み出すためのフィールドです。シャント電圧の実効データは Bit 15:3に格納されます。RO

BHM VDD_1V0 Bus Voltage Monitor Register (Offset 0x2024)

BHM VDD_1V0 Bus Voltage Monitor Registerは、VDD_1V0 電源ドメインの Bus Voltageを読み出すためのレジスタです。

BHM Bus Voltage Monitor Registerに格納されるデータは、Current Voltage Monitor INA3221-Q1の Bus Voltage Registerからの取得データです。 Bus Voltageの実効データは Bit 15:3に格納されます。 Bit 2:0は ALL 0が格納されます。

bitSymbolFieldDescriptionR/W
31BHM_1V0_BUSV_NUPDVDD_1V0 Bus Voltage Not Updatedセンサーデータの更新状態を示すビットです。このビットが “1”にセットされている時、BHM_1V0_BUSVフィールドが前回の読み出し時から更新されていない事を示します。BHMがセンサーからデータを読み出した時、このビットは “0”にクリアされ、BHM_1V0_BUSV を読み出したときこのビットは”1”にセットされます。また、リセット解除後にセンサーデータが取得されていない状態でも、このビットは “1”を示します。RO
30:16-ReservedReserved-
15:0BHM_1V0_BUSVVDD_1V0 Bus Voltage MonitorVDD_1V0 電源ドメインのバス電圧を読み出すためのフィールドです。バス電圧の実効データは Bit 15:3に格納されます。RO

BHM VDD_1V8 Shunt Voltage Monitor Register (Offset 0x2028)

BHM VDD_1V8 Shunt Voltage Monitor Registerは、VDD_1V8 電源ドメインの Shunt Voltageを読み出すためのレジスタです。

bitSymbolFieldDescriptionR/W
31BHM_1V8_SNTV_NUPDVDD_1V8 Shunt Voltage Not Updatedセンサーデータの更新状態を示すビットです。このビットが “1”にセットされている時、BHM_1V8_SNTVフィールドが前回の読み出し時から更新されていない事を示します。BHMがセンサーからデータを読み出した時、このビットは “0”にクリアされ、BHM_1V8_SNTV を読み出したときこのビットは”1”にセットされます。また、リセット解除後にセンサーデータが取得されていない状態でも、このビットは “1”を示します。RO
30:16-ReservedReserved-
15:0BHM_1V8_SNTVVDD_1V8 Shunt Voltage MonitorVDD_1V8 電源ドメインのシャント電圧を読み出すためのフィールドです。シャント電圧の実効データは Bit 15:3に格納されます。RO

BHM VDD_1V8 Bus Voltage Monitor Register (Offset 0x202C)

BHM VDD_1V8 Bus Voltage Monitor Registerは、VDD_1V8 電源ドメインの Bus Voltageを読み出すためのレジスタです。

bitSymbolFieldDescriptionR/W
31BHM_1V8_BUSV_NUPDVDD_1V8 Bus Voltage Not Updatedセンサーデータの更新状態を示すビットです。このビットが “1”にセットされている時、BHM_1V8_BUSVフィールドが前回の読み出し時から更新されていない事を示します。BHMがセンサーからデータを読み出した時、このビットは “0”にクリアされ、BHM_1V8_BUSV を読み出したときこのビットは”1”にセットされます。また、リセット解除後にセンサーデータが取得されていない状態でも、このビットは “1”を示します。RO
30:16-ReservedReserved-
15:0BHM_1V8_BUSVVDD_1V8 Bus Voltage MonitorVDD_1V8 電源ドメインのバス電圧を読み出すためのフィールドです。バス電圧の実効データは Bit 15:3に格納されます。RO

BHM VDD_3V3 Shunt Voltage Monitor Register (Offset 0x2030)

BHM VDD_3V3 Shunt Voltage Monitor Registerは、VDD_3V3 電源ドメインの Shunt Voltageを読み出すためのレジスタです。

bitSymbolFieldDescriptionR/W
31BHM_3V3_SNTV_NUPDVDD_3V3 Shunt Voltage Not Updatedセンサーデータの更新状態を示すビットです。このビットが “1”にセットされている時、BHM_3V3_SNTVフィールドが前回の読み出し時から更新されていない事を示します。BHMがセンサーからデータを読み出した時、このビットは “0”にクリアされ、BHM_3V3_SNTV を読み出したときこのビットは”1”にセットされます。また、リセット解除後にセンサーデータが取得されていない状態でも、このビットは “1”を示します。RO
30:16-ReservedReserved-
15:0BHM_3V3_SNTVVDD_3V3 Shunt Voltage MonitorVDD_3V3 電源ドメインのシャント電圧を読み出すためのフィールドです。シャント電圧の実効データは Bit 15:3に格納されます。RO

BHM VDD_3V3 Bus Voltage Monitor Register (Offset 0x2034)

BHM VDD_3V3 Bus Voltage Monitor Registerは、VDD_3V3 電源ドメインの Bus Voltageを読み出すためのレジスタです。

bitSymbolFieldDescriptionR/W
31BHM_3V3_BUSV_NUPDVDD_3V3 Bus Voltage Not Updatedセンサーデータの更新状態を示すビットです。このビットが “1”にセットされている時、BHM_3V3_BUSVフィールドが前回の読み出し時から更新されていない事を示します。BHMがセンサーからデータを読み出した時、このビットは “0”にクリアされ、BHM_3V3_BUSV を読み出したときこのビットは”1”にセットされます。また、リセット解除後にセンサーデータが取得されていない状態でも、このビットは “1”を示します。RO
30:16-ReservedReserved-
15:0BHM_3V3_BUSVVDD_3V3 Bus Voltage MonitorVDD_3V3 電源ドメインのバス電圧を読み出すためのフィールドです。バス電圧の実効データは Bit 15:3に格納されます。RO

BHM VDD_3V3_SYS_A Shunt Voltage Monitor Register (Offset 0x2038)

BHM VDD_3V3_SYS_A Shunt Voltage Monitor Registerは、VDD_3V3_SYS_A 電源ドメインの Shunt Voltageを読み出すためのレジスタです。

bitSymbolFieldDescriptionR/W
31BHM_3V3SYSA_SNTV_NUPDVDD_3V3_SYS_A Shunt Voltage Not Updatedセンサーデータの更新状態を示すビットです。このビットが “1”にセットされている時、BHM_3V3SYSA_SNTVフィールドが前回の読み出し時から更新されていない事を示します。BHMがセンサーからデータを読み出した時、このビットは “0”にクリアされ、BHM_3V3SYSA_SNTV を読み出したときこのビットは”1”にセットされます。また、リセット解除後にセンサーデータが取得されていない状態でも、このビットは “1”を示します。RO
30:16-ReservedReserved-
15:0BHM_3V3SYSA_SNTVVDD_3V3_SYS_A Shunt Voltage MonitorVDD_3V3_SYS_A 電源ドメインのシャント電圧を読み出すためのフィールドです。シャント電圧の実効データは Bit 15:3に格納されます。RO

BHM VDD_3V3_SYS_A Bus Voltage Monitor Register (Offset 0x203C)

BHM VDD_3V3_SYS_A Bus Voltage Monitor Registerは、VDD_3V3_SYS_A 電源ドメインの Bus Voltageを読み出すためのレジスタです。

bitSymbolFieldDescriptionR/W
31BHM_3V3SYSA_BUSV_NUPDVDD_3V3_SYS_A Bus Voltage Not Updatedセンサーデータの更新状態を示すビットです。このビットが “1”にセットされている時、BHM_3V3SYSA_BUSVフィールドが前回の読み出し時から更新されていない事を示します。BHMがセンサーからデータを読み出した時、このビットは “0”にクリアされ、BHM_3V3SYSA_BUSV を読み出したときこのビットは”1”にセットされます。また、リセット解除後にセンサーデータが取得されていない状態でも、このビットは “1”を示します。RO
30:16-ReservedReserved-
15:0BHM_3V3SYSA_BUSVVDD_3V3_SYS_A Bus Voltage MonitorVDD_3V3_SYS_A 電源ドメインのバス電圧を読み出すためのフィールドです。バス電圧の実効データは Bit 15:3に格納されます。RO

BHM VDD_3V3_SYS_B Shunt Voltage Monitor Register (Offset 0x2040)

BHM VDD_3V3_SYS_B Shunt Voltage Monitor Registerは、VDD_3V3_SYS_B 電源ドメインの Shunt Voltageを読み出すためのレジスタです。

bitSymbolFieldDescriptionR/W
31BHM_3V3SYSB_SNTV_NUPDVDD_3V3_SYS_B Shunt Voltage Not Updatedセンサーデータの更新状態を示すビットです。このビットが “1”にセットされている時、BHM_3V3SYSB_SNTVフィールドが前回の読み出し時から更新されていない事を示します。BHMがセンサーからデータを読み出した時、このビットは “0”にクリアされ、BHM_3V3SYSB_SNTV を読み出したときこのビットは”1”にセットされます。また、リセット解除後にセンサーデータが取得されていない状態でも、このビットは “1”を示します。RO
30:16-ReservedReserved-
15:0BHM_3V3SYSB_SNTVVDD_3V3_SYS_B Shunt Voltage MonitorVDD_3V3_SYS_B 電源ドメインのシャント電圧を読み出すためのフィールドです。シャント電圧の実効データは Bit 15:3に格納されます。RO

BHM VDD_3V3_SYS_B Bus Voltage Monitor Register (Offset 0x2044)

BHM VDD_3V3_SYS_B Bus Voltage Monitor Registerは、VDD_3V3_SYS_B 電源ドメインの Bus Voltageを読み出すためのレジスタです。

bitSymbolFieldDescriptionR/W
31BHM_3V3SYSB_BUSV_NUPDVDD_3V3_SYS_B Bus Voltage Not Updatedセンサーデータの更新状態を示すビットです。このビットが “1”にセットされている時、BHM_3V3SYSB_BUSVフィールドが前回の読み出し時から更新されていない事を示します。BHMがセンサーからデータを読み出した時、このビットは “0”にクリアされ、BHM_3V3SYSB_BUSV を読み出したときこのビットは”1”にセットされます。また、リセット解除後にセンサーデータが取得されていない状態でも、このビットは “1”を示します。RO
30:16-ReservedReserved-
15:0BHM_3V3SYSB_BUSVVDD_3V3_SYS_B Bus Voltage MonitorVDD_3V3_SYS_B 電源ドメインのバス電圧を読み出すためのフィールドです。バス電圧の実効データは Bit 15:3に格納されます。RO

BHM VDD_3V3_IO Shunt Voltage Monitor Register (Offset 0x2048)

BHM VDD_3V3_IO Shunt Voltage Monitor Registerは、VDD_3V3_IO 電源ドメインの Shunt Voltageを読み出すためのレジスタです。

bitSymbolFieldDescriptionR/W
31BHM_3V3IO_SNTV_NUPDVDD_3V3_IO Shunt Voltage Not Updatedセンサーデータの更新状態を示すビットです。このビットが “1”にセットされている時、BHM_3V3IO_SNTVフィールドが前回の読み出し時から更新されていない事を示します。BHMがセンサーからデータを読み出した時、このビットは “0”にクリアされ、BHM_3V3IO_SNTV を読み出したときこのビットは”1”にセットされます。また、リセット解除後にセンサーデータが取得されていない状態でも、このビットは “1”を示します。RO
30:16-ReservedReserved-
15:0BHM_3V3IO_SNTVVDD_3V3_IO Shunt Voltage MonitorVDD_3V3_IO 電源ドメインのシャント電圧を読み出すためのフィールドです。シャント電圧の実効データは Bit 15:3に格納されます。RO

BHM VDD_3V3_IO Bus Voltage Monitor Register (Offset 0x204C)

BHM VDD_3V3_IO Bus Voltage Monitor Registerは、VDD_3V3_IO 電源ドメインの Bus Voltageを読み出すためのレジスタです。

bitSymbolFieldDescriptionR/W
31BHM_3V3IO_BUSV_NUPDVDD_3V3_IO Bus Voltage Not Updatedセンサーデータの更新状態を示すビットです。このビットが “1”にセットされている時、BHM_3V3IO_BUSVフィールドが前回の読み出し時から更新されていない事を示します。BHMがセンサーからデータを読み出した時、このビットは “0”にクリアされ、BHM_3V3IO_BUSV を読み出したときこのビットは”1”にセットされます。また、リセット解除後にセンサーデータが取得されていない状態でも、このビットは “1”を示します。RO
30:16-ReservedReserved-
15:0BHM_3V3IO_BUSVVDD_3V3_IO Bus Voltage MonitorVDD_3V3_IO 電源ドメインのバス電圧を読み出すためのフィールドです。バス電圧の実効データは Bit 15:3に格納されます。RO

BHM Temperature 1-3 Monitor Register (Offset 0x2050 - 0x2058)

BHM Temperature 1-3 Monitor Registerは、Temperature Sensor 1-3の温度データを読み出すためのレジスタです。

BHM Temperature 1-3 Monitor Registerに格納されるデータは、温度センサー TMP175-Q1の Temperature Registerからの取得データです。 温度センサーの実効データは Bit 15:4に格納されます。 Bit 3:0は ALL 0が格納されます。

bitSymbolFieldDescriptionR/W
31BHM_TEMP1_NUPDTemperature 1 Not Updatedセンサーデータの更新状態を示すビットです。このビットが “1”にセットされている時、BHM_TEMP1フィールドが前回の読み出し時から更新されていない事を示します。BHMがセンサーからデータを読み出した時、このビットは “0”にクリアされ、BHM_TEMP1 を読み出したときこのビットは”1”にセットされます。また、リセット解除後にセンサーデータが取得されていない状態でも、このビットは “1”を示します。RO
30:16-ReservedReserved-
15:0BHM_TEMP1Temperature 1 MonitorTemperature Sensor 1から取得した温度データを読み出すためのフィールドです。温度センサーの実効データは Bit 15:4に格納されます。RO
bitSymbolFieldDescriptionR/W
31BHM_TEMP2_NUPDTemperature 2 Not Updatedセンサーデータの更新状態を示すビットです。このビットが “1”にセットされている時、BHM_TEMP2フィールドが前回の読み出し時から更新されていない事を示します。BHMがセンサーからデータを読み出した時、このビットは “0”にクリアされ、BHM_TEMP2 を読み出したときこのビットは”1”にセットされます。また、リセット解除後にセンサーデータが取得されていない状態でも、このビットは “1”を示します。RO
30:16-ReservedReserved-
15:0BHM_TEMP2Temperature 2 MonitorTemperature Sensor 2から取得した温度データを読み出すためのフィールドです。温度センサーの実効データは Bit 15:4に格納されます。RO
bitSymbolFieldDescriptionR/W
31BHM_TEMP3_NUPDTemperature 3 Not Updatedセンサーデータの更新状態を示すビットです。このビットが “1”にセットされている時、BHM_TEMP3フィールドが前回の読み出し時から更新されていない事を示します。BHMがセンサーからデータを読み出した時、このビットは “0”にクリアされ、BHM_TEMP3 を読み出したときこのビットは”1”にセットされます。また、リセット解除後にセンサーデータが取得されていない状態でも、このビットは “1”を示します。RO
30:16-ReservedReserved-
15:0BHM_TEMP3Temperature 3 MonitorTemperature Sensor 3から取得した温度データを読み出すためのフィールドです。温度センサーの実効データは Bit 15:4に格納されます。RO

BHM Software Access Control Register (Offset 0x2060)

BHM Software Access Control Registerは、ソフトウェア指示により センサーの任意のレジスタにアクセスするための制御を行うレジスタです。

BHMは Software I2C Access Request (BHM_SWACCREQ)に “1”をセットすると、BHM_SWDEVSEL・BHM_SWREGADR・BHM_SWRWSELに設定された情報をもとにアクセスを行います。 BHM_SWACCREQと他の設定フィールドは、同時にセットすることができます。

BHM_SWRWSELに “0”を設定し、センサーへのライトアクセスを行う場合は、予め BHM Software Access Write Data Registerにライトデータを書き込んでおく必要があります。

bitSymbolFieldDescriptionR/W
31:25-ReservedReserved-
24BHM_SWACCREQSoftware I2C Access RequestSoftwareによるセンサーへのアクセスを開始するためのリクエストビットです。このビットに”1”をセットするとセンサーアクセスを開始します。センサーへのアクセスが完了すると、このビットは自動的に “0”にクリアされます。R/W
23:19-ReservedReserved-
18:16BHM_SWDEVSELSoftware I2C Access Device SelectSoftwareによるセンサーへのアクセスを行う時のセンサーデバイスを選択するためのフィールドです。0x0: Current Voltage Monitor 1 0x1: Current Voltage Monitor 2 0x2: Temperature Sensor 1 0x3: Temperature Sensor 2 0x4: Temperature Sensor 3 0x5-0x7: 設定禁止R/W
15:8BHM_SWREGADRSoftware I2C Access Register AddressSoftwareによるセンサーへのアクセスを行う時のセンサーのレジスタのアドレスを設定するためのフィールドです。R/W
7:1-ReservedReserved-
0BHM_SWRWSELSoftware I2C Access Read/Write SelectSoftwareによるセンサーへのアクセスを行う時のアクセス方向 (リード/ライト)を設定するためのビットです。 0: Write Access 1: Read AccessR/W

BHM Software Access Write Data Register (Offset 0x2064)

BHM Software Access Write Data Registerは、ソフトウェア指示による I2Cアクセスにおいて、センサーに送信するデータを書き込むためのレジスタです。

bitSymbolFieldDescriptionR/W
31:16-ReservedReserved-
15:0BHM_SWWRDATASoftware I2C Access Write Dataセンサーに送信するデータを設定するフィールドです。R/W

BHM Software Access Read Data Register (Offset 0x2068)

BHM Software Access Read Data Registerは、ソフトウェア指示による I2Cアクセスによってセンサーから受信したデータを読み出すためのレジスタです。

bitSymbolFieldDescriptionR/W
31:16-ReservedReserved-
15:0BHM_SWRDDATASoftware I2C Access Read Dataセンサーから受信したデータを読み出すためのフィールドです。RO

BHM Prescaler Register (Offset 0x2080)

BHM Prescale Registerは、BHMがセンサーと行う I2Cの 通信タイミングを設定するためのレジスタです。

OBC Module上のセンサーとの通信は I2Cの Standard mode (100 Kbps)で行います。 このレジスタには、以下の計算値で設定される値を設定してください。

$BHM\_CLKPSC = \frac{System\ Clock\ frequency [MHz]}{0.1} - 1$

bitSymbolFieldDescriptionR/W
31:16-ReservedReserved-
15:0BHM_CLKPSCI2C Prescale From System Clockシステムクロックで I2Cの 1周期を生成するカウント数を設定します。R/W

BHM_CLKPDCの設定による I2C通信の各タイミングは、以下の式で計算できます。

$START\ Hold\ Time(tHDSTA)[s] = System\ Clock\ period[s] × \frac{BHM\_CLKPSC+1}{2}$

$STOP\ Setup\ Time(tSUSTO)[s] = System\ Clock\ period[s] × \frac{BHM\_CLKPSC+1}{2}$

$Repeated\ START\ Setup\ Time(tSUSTA)[s] = System\ Clock\ period[s] × \frac{BHM\_CLKPSC+1}{2}$

$SCL\ High\ Time(tHIGH)[s] = System\ Clock\ period[s] × \frac{BHM\_CLKPSC+1}{2}-5$

$Data\ Hold\ Time(tHDDAT)[s] = System\ Clock\ period[s] × 5$

$Data\ Setup\ Time(tSUDAT)[s] = System\ Clock\ period[s] × \frac{BHM\_CLKPSC+1}{2}$

$SCL\ Low\ Time(tLOW)[s] = tHDDAT[s] + tSUDAT[s]$

$Bus\ Free\ Time(tBUF)[s] = System\ Clock\ period[s] × \frac{BHM\_CLKPSC+1}{2}+5$

システムクロックが 48MHz, 24MHzの場合において、I2Cを 100 kbpsに設定する場合の設定値と、I2Cのタイミングを以下に示します。

ParameterSystem Clock=48MHz[default]System Clock=24MHz
SYSMON_BHM_CLKPSC[15:0] 設定値0x01DF [Divide by 480]0x00EF [Divide by 240]
START Hold Timing (tHDSTA)240 Cycle [5.00us]120 Cycle [5.00us]
STOP Setup Timing (tSUSTO)240 Cycle [5.00us]120 Cycle [5.00us]
Repeated START Setup Timing (tSUSTA)240 Cycle [5.00us]120 Cycle [5.00us]
Clock High Timing (tHIGH)235 Cycle [4.90us]115 Cycle [4.79us]
Data Hold Timing (tHDDAT)5 Cycle [0.10us]5 Cycle [0.21us]
Data Setup Timing (tSUDAT)240 Cycle [5.00us]120 Cycle [5.00us]
Clock Low Timing (tLOW)245 Cycle [5.10us]125 Cycle [5.21us]
Bus Free Timing (tBUF)245 Cycle [5.10us]125 Cycle [5.21us]

BHM Retry Count Register (Offset 0x2084)

BHM Retry Count Registerは、BHMが行うセンサーへのアクセスにおける、リトライ回数の上限を設定するためのレジスタです。

BHMは I2Cバスの通信においてセンサーからアクノリッジが送信されてこない場合にバスエラーと認識します。 BHMはバスエラーが起こった場合、BHM_I2CACCCNTに設定された回数のリトライアクセスを行います。

I2Cアクセスが頻発する事により、BHM_I2CACCCNTに設定されたリトライを行ってもエラーが改善しなかった場合、BHMは I2Cアクセスを停止します。 このとき、BHM Access Control Registerの対象のセンサーの Enableビットを Disableに設定するとともに、BHM Interrupt Status Registerの対象のセンサーの I2C Access Errorビットをセットし、割り込みを発生します。

bitSymbolFieldDescriptionR/W
31:8-ReservedReserved-
7:0BHM_I2CACCCNTI2C Access CountI2Cアクセスにおけるリトライ回数を設定するフィールドです。R/W

BHM Access Status Register (Offset 0x20C0)

BHM Access Status Registerは、BHM機能が持つ I2Cバスの状態を示すレジスタです。

このレジスタの全てのビットが “0”を示す時、I2Cバスは Idle状態であることを示します。

bitSymbolFieldDescriptionR/W
31:6-ReservedReserved-
5BHM_SW_BUSYSoftware Access Busyソフトウェアからの指示により、BHMが いずれからのセンサーに対して行うアクセスの状態を示すビットです。RO
4BHM_TEMP3_BUSYTemperature Sensor3 Access BusyBHMが Temperature Sensor 3に対して行う自動アクセスの状態を示すビットです。センサーの初期化時とデータ読み出し時に、このビットは “1”を示します。RO
3BHM_TEMP2_BUSYTemperature Sensor2 Access BusyBHMが Temperature Sensor 2に対して行う自動アクセスの状態を示すビットです。センサーの初期化時とデータ読み出し時に、このビットは “1”を示します。RO
2BHM_TEMP1_BUSYTemperature Sensor1 Access BusyBHMが Temperature Sensor 1に対して行う自動アクセスの状態を示すビットです。センサーの初期化時とデータ読み出し時に、このビットは “1”を示します。RO
1BHM_CVM2_BUSYCurrent Voltage Monitor2 Access BusyBHMが Current Voltage Monitor 2に対して行う自動アクセスの状態を示すビットです。センサーの初期化時とデータの読み出し時に、このビットは “1”を示します。RO
0BHM_CVM1_BUSYCurrent Voltage Monitor1 Access BusyBHMが Current Voltage Monitor 1に対して行う自動アクセスの状態を示すビットです。センサーの初期化時とデータの読み出し時に、このビットは “1”を示します。RO

System Monitor IP Version Register (Offset: 0xF000)

System Monitor IP Version Registerは、System Monitorの IPコアバージョンを示すレジスタです。

bitSymbolFieldDescriptionR/W
31:24SYSMON_MAJVERSystem Monitor IP Major VersionSystem MonitorコアのMajor Versionを示します。RO
23:16SYSMON_MINVERSystem Monitor IP Minor VersionSystem MonitorコアのMinor Versionを示します。RO
15:0SYSMON_PATVERSystem Monitor IP Patch VersionSystem MonitorコアのPatch Versionを示します。RO