お世話になっております。
題記の通り、I2Cバスインターフェースのタイムアウト検出機能についての質問です。
バス異常状態を検出すると、RIICnFER.TMOE = 1 であれば、下記の(1)or(2)or(3)の条件成立時に、
RIICnSR2.TMOFに1がたつ、という意味で大丈夫でしょうか?
(図23.39もそのような描き方ですが、文章中にバス異常検出するとどうなる?という記載がないので念のため)
<以下、ハードウエアマニュアルの1324pageのコピー&ペースト>
RIIC にはSCL ラインに一定時間以上変化が見られない状態を検出するタイムアウト検出機能を備えています。RIIC はSCL ラインがLow またはHigh に固定されたまま一定時間以上経過したことを検知し、バスの異常状態を検出することができます。タイムアウト検出機能はSCL ラインの状態を監視し、Low またはHigh の時間を内部カウンタでカウントします。タイムアウト検出機能はSCL ラインに変化(立ち上がり/立ち下がり)があった場合、内部カウンタをリセットし、変化がない場合カウント動作を続けます。SCL ラインに変化がないまま内部カウンタがオーバフローすると、RIIC はタイムアウトを検出しバス異常状態を知らせることができます。このタイムアウト検出機能はRIICnFER.TMOE ビットが“1” のとき有効で、以下のときにSCL ラインのLow 固定またはHigh 固定のバス異常状態を検出します。(1)バスビジー状態(RIICnCR2.BBSY = 1)で、マスタモード(RIICnCR2.MST = 1)時(2)バスビジー状態(RIICnCR2.BBSY = 1)で、スレーブモード(RIICnCR2.MST = 0)かつ自スレーブアドレス一致(RIICnSR1 レジスタ≠ 00H)時(3)バスフリー状態 (RIICnCR2.BBSY = 0)で、スタートコンディション発行要求中( RIICnCR2.ST ビットが”1”)の期間タイムアウト検出機能の内部カウンタは、RIICnMR1.CKS[2:0] ビットで設定された内部基準クロック(IICφ)をカウントソースとして動作し、ロングモード選択時(RIICnMR2.TMOS ビット= 0)16 ビットカウンタ、ショートモード選択時(TMOS ビット= 1)14 ビットカウンタとなります。
以上、よろしくお願いいたします。