Community Translation - Determining if a Slave is Present on the Bus - KBA83391

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Kenshow
Level 8
Level 8
Distributor - Marubun (Japan)
50 solutions authored 25 solutions authored 10 solutions authored

Hi,               

I would like to translate KBA83391 into Japanese.

Please confirm to my work.

Thanks,

Kenshow

0 Likes
2 Replies
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi, Kenshow-san

Confirm to work this KBA.

Thanks,

Jenna

Jenna Jo
0 Likes
Kenshow
Level 8
Level 8
Distributor - Marubun (Japan)
50 solutions authored 25 solutions authored 10 solutions authored

Hi Jenna-san,

                                

Japanese translation was over.
Please check below.

Original KBA:

Determining if a Slave is Present on the Bus - KBA83391

Thanks.

Kenshow

==============================

タイトル: スレーブがバスに存在するかどうかの確認 - KBA83391

バージョン:*A

質問:

I2CHWマスターを使用しているときに、特定のアドレスを持つスレーブがバス上に存在するかどうかをどのように判断すればよろしいでしょうか?

回答:

I2CHW_fSendStartAPIを使用して、特定のアドレスを持つスレーブがバス上にあるかどうかを確認できます。このAPIは、I2Cバス開始条件を生成し、アドレスとR/Wビットを送信してから、ACK結果を返します。戻り値がゼロ以外の場合、スレーブはアドレス(バス上に存在する)を確認します。戻り値がゼロの場合、スレーブはアドレス(バス上に存在しない)を確認できなかったことを示します。次のコードスニペットの例は、バス上にアドレス0x50のスレーブがあるかどうかをチェックします。

If(I2CHW_fSendStart(0x50, I2CHW_WRITE)
{
    // バスに存在するスレーブ
}
else
{
    // バスに存在しないスレーブ
}

I2CHW_bRead(0); // 高レベルAPIを使用するようにI2CHW_SCRレジスタを設定します
I2CHW_SendStop(); // I2Cバスをリセットします
I2CHW_EnableInt(); // I2C割り込みを再度有効にします

// ここではbWriteBytesfReadBytesなどの高レベルAPIを使用します

ノート:

  1. スレーブをチェックした後、I2CHW_bRead(0)を呼び出して高レベルAPIを使用するようにI2CHW_SCRレジスタを設定し、I2CHW_SendStopを呼び出してI2Cバスをリセットすることを忘れないでください。
  2. fSendStartおよびSendStop APIは、I2C割り込みを無効にします。I2C割り込み(bWriteBytesfReadBytesなど)を必要とする高レベルAPIを使用している場合は、I2CHW_EnableInt()を呼び出してI2C割り込みを再度有効にすることを忘れないでください。

==============================

14-August-2020

  Kenshow

0 Likes