JAJA834B May 2024 – April 2025 TPS2HCS10-Q1
I2T トリップコードのサンプル コードは、システムでI2T イベントが発生したときにハイサイド スイッチのイベントを処理する方法を示します。このコード例では、デバイスが I2T フォルト用にラッチ モードに設定されていることを想定し、I2T イベントが発生した後でデバイスをリセットするための正しいイベント シーケンスを示しています。自動再試行モード (I2T_CONFIG_CHx レジスタの TCLDN_CHx がタイムアウトに設定されている場合) では、デバイスは、チャネルを再度イネーブルする前に、適切な時間だけ自動的に待機します。
なお、このコード例では FAULT ピンが立ち下がりエッジ割り込みとして使用されるように設定されています。I2T トリップが発生すると、オープン ドレイン構成の FAULT ピンが Low に引き下げられ、マイコンに割り込みがかかります。その後、マイコン上のソフトウェアがデバイスの動作を再開させ、必要な対策を実行してデバイスを再度有効にすることができます。ラッチ モードでは、I2T トリップ イベントの発生後に適切な手順を以下に示します。
次に、関連するコードの一部を示します。
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);
}