I2C マスタ使用時の衝突処理について

Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
AkNa_2677371
Level 1
Level 1
5 sign-ins Welcome! First question asked

PSoC5LP(CY8CKIT-059)でI2Cのマスターを使用している際にスレーブ側(ソフトウェアで組まれたスレーブ)が止まることがあり、

このためバスが解放されずに動作を停止してしまうことがあります。

こちらの対処としてI2Cを一度停止させてた上でクロック端子に強制的にクロックを与えてスレーブ側の

データを吐き出させたいのですが、どのように行えばよいでしょうか。

補足:

以前、同様のスレーブを他のマイコンで使用した際は、バス衝突を検出後、

ソフトウェアでクロック端子へ強制的にHigh/Low信号を与えて解消させておりました。

PSoCではペリフェラルに接続された端子をソフトウェアから強制的に動作させる方法が分からないため、

同様の手法がとれておりません。

0 件の賞賛
1 解決策
Anonymous
適用対象外

PSoC5LPでI2Cマスターを使用している祭に、I2Cバス衝突を処理するために割り込みハンドラが使用されます。

PSoC Creatorでデバッグモードを使用して、エラーの原因を確認することをお勧めします。 エラーが割り込みハンドラにある場合、コールバック関数を使用してエラーステータスから抜け出すことができます。

以上、よろしくお願いいたします。

Nada

元の投稿で解決策を見る

1 返信
Anonymous
適用対象外

PSoC5LPでI2Cマスターを使用している祭に、I2Cバス衝突を処理するために割り込みハンドラが使用されます。

PSoC Creatorでデバッグモードを使用して、エラーの原因を確認することをお勧めします。 エラーが割り込みハンドラにある場合、コールバック関数を使用してエラーステータスから抜け出すことができます。

以上、よろしくお願いいたします。

Nada