FAQ
I2Cについて
- マスタ送信(スタートコンディション発生命令)を実行しても、転送終了割り込み(INTbit=1)が発生しないのですが...。
- ストップコンディション割り込みに対応していますか?
- マスタ時にスタートコンディション発生後、通信相手のスレーブがSDAラインをLow駆動し通信異常を起こしているにも関わらずマスタはクロックを出し続ける。(対象:MB90F574A)
- I2C送受信中にStop Mode(SPL=0)に入った場合、どうなりますか? (対象:MB90370series)
1. マスタ送信(スタートコンディション発生命令)を実行しても、転送終了割り込み(INTbit=1)が発生しないのですが...。
I2CバスのレベルがSCL=L、SDA=Lである可能性があります。本状態でスタートコンディション発生命令を実行すると、マスタはクロック出力できない為、転送終了割り込みを発生(INTbit=1)しません。この状態に陥ると、BBbit=0、ALbit=1の状態になりますので、BBbit、ALbitにて検出しI2Cをディセーブルにして本状態を解除してください。
2. ストップコンディション割り込みに対応していますか?
ストップコンディション割り込みには対応していません。BBbitをソフトで監視してストップコンディションを検出する必要があります。
3. マスタ時にスタートコンディション発生後、通信相手のスレーブがSDAラインをLow駆動し通信異常を起こしているにも関わらずマスタはクロックを出し続ける。(対象:MB90F574A)
FMCファミリー搭載のI2Cでは、マスタ時にスタートコンディション発生後、SCLがフリーであれば、9クロック必ず出力される仕様になっております。9クロック出力後に、INTbit割り込み要因が立ち割り込みに遷移致します。本割り込みルーチン内で各フラグをチェックする必要があります。なお、バスエラー発生時には、バスエラー発生直後にバスエラー割り込みが発生し、I2Cはハードで自動的にディセーブル状態となります。
4. I2C送受信中にStop Mode(SPL=0)に入った場合、どうなりますか? (対象:MB90370series)
- マスタモード(クロック出力している)の場合
I2C送受信途中の状態でstop modeに遷移しますので、stop mode解除後、残りのクロックを出力します。
SCL、SDA端子は、stop mode遷移直前の状態を保持します(SPL=0時)。 - スレーブモード(クロック出力していない)の場合
I2C送受信途中の状態でstop modeに遷移致しますので、stop mode解除後、残りのクロック入力を待ちます。
stop mode時のSCL、SDA端子は、stop mode遷移直前の状態を保持します(SPL=0時)。
