JAJA834B May   2024  – April 2025 TPS2HCS10-Q1

 

  1.   1
  2.   概要
  3.   商標
  4. 1ソフトウェア エコシステム
  5. 2プラットフォーム ドライバ
    1. 2.1 ドライバ コンセプト
    2. 2.2 サポート対象のプラットフォーム
    3. 2.3 他のプラットフォームへの移植
    4. 2.4 API ガイド
      1. 2.4.1  tHCSResponseCode Union リファレンス
      2. 2.4.2  float_t HCS_convertCurrent (uint16_t rawValue、uint16_t ksnsVal、uint16_t snsRes)
      3. 2.4.3  float_t HCS_convertTemperature (uint16_t rawValue)
      4. 2.4.4  float_t HCS_convertVoltage (uint16_t rawValue)
      5. 2.4.5  tHCSResponseCode HCS_getChannelFaultStatus (uint8_t chanNum、uint16_t * fltStatus)
      6. 2.4.6  tHCSResponseCode HCS_getDeviceFaultSatus (uint16_t * fltStatus)
      7. 2.4.7  tHCSResponseCode HCS_gotoLPM (tps2hcsxx_man_lpm_exit_curr_ch1_mask_t ch1ExitCurrent、tps2hcsxx_man_lpm_exit_curr_ch2_mask_t ch2ExitCurrent、uint16_t existingValue)
      8. 2.4.8  tHCSResponseCode HCS_gotoSleep (void )
      9. 2.4.9  tHCSResponseCode HCS_initializeDevice (TPS2HCSXXQ1_CONFIG * config)
      10. 2.4.10 tHCSResponseCode HCS_readRegister (uint8_t addr、uint16_t * readValue)
      11. 2.4.11 tHCSResponseCode HCS_setSwitchState (uint8_t swState)
      12. 2.4.12 tHCSResponseCode HCS_updateConfig (TPS2HCS10Q1_CONFIG * config)
      13. 2.4.13 tHCSResponseCode HCS_wakeupDevice (void )
      14. 2.4.14 tHCSResponseCode HCS_writeRegister (uint8_t addr、uint16_t payload)
  6. 3構成および評価ツール
  7. 4サンプル コード
    1. 4.1 空の例
    2. 4.2 I2T トリップの例
    3. 4.3 低消費電力モードの例
    4. 4.4 電流センスの例
  8. 5まとめ
  9. 6参考資料
  10. 7改訂履歴

I2T トリップの例

I2T トリップコードのサンプル コードは、システムでI2T イベントが発生したときにハイサイド スイッチのイベントを処理する方法を示します。このコード例では、デバイスが I2T フォルト用にラッチ モードに設定されていることを想定し、I2T イベントが発生した後でデバイスをリセットするための正しいイベント シーケンスを示しています。自動再試行モード (I2T_CONFIG_CHx レジスタの TCLDN_CHx がタイムアウトに設定されている場合) では、デバイスは、チャネルを再度イネーブルする前に、適切な時間だけ自動的に待機します。

なお、このコード例では FAULT ピンが立ち下がりエッジ割り込みとして使用されるように設定されています。I2T トリップが発生すると、オープン ドレイン構成の FAULT ピンが Low に引き下げられ、マイコンに割り込みがかかります。その後、マイコン上のソフトウェアがデバイスの動作を再開させ、必要な対策を実行してデバイスを再度有効にすることができます。ラッチ モードでは、I2T トリップ イベントの発生後に適切な手順を以下に示します。

  1. 影響を受けるチャネルを無効にする
  2. I2T_CONFIG_CHxレジスタのTCLDN_CHxを適切なクールダウン時間に設定します
  3. マイコンをスリープさせて、指定された時間だけ待機する
  4. I2T_CONFIG_CHx レジスタの TCLDN_CHx をラッチモードに戻す
  5. チャネルを再度イネーブルにする

次に、関連するコードの一部を示します。

        if(currentValue & TPS2HCSXX_FLT_STAT_CH1_I2T_FLT_CH1_MASK)
        {
            /* Disabling the channel */
            HCS_setSwitchState(0);

            /* Setting the device to 2s retry state */
            exportConfig.i2tConfigCh1.value.bits.TCLDN_CH1 =
                (tcldn_ch1_en_4p0s_mask);
            HCS_writeRegister(TPS2HCSXX_I2T_CONFIG_CH1_REG,
                        exportConfig.i2tConfigCh1.value.word);

            /* Waiting for two milliseconds. At this point, normally
                yield the tasks if in an RTOS, but wait for
                an interrupt here.  */

            DL_TimerA_startCounter(TIMER_0_INST);
            while(timerTriggered == false)
            {
                __WFI();
            }
            timerTriggered = false;

            /* Setting back to latch mode */
            exportConfig.i2tConfigCh1.value.bits.TCLDN_CH1 = 0;
            HCS_writeRegister(TPS2HCSXX_I2T_CONFIG_CH1_REG,
                        exportConfig.i2tConfigCh1.value.word);

            /* Re-enabling the channel */
            HCS_setSwitchState(1);
        }