- TI MSP430シリーズ 3クロック
384 :774ワット発電中さん[sage]:2012/08/25(土) 11:37:28.44 ID:pYSCUEPO - CLKストレッチが出来ないってことはない筈だが、、、、時々信じられないほどの
芋モジュールがあるから、あり得ないことはない。 例えば、 マスターから、スレーブにたいして、「20番目のデータを送れ」というような コマンドを送る。スレーブは、直ぐにリード動作が始まると、結果を準備できない。 スレーブの準備に1msecから20msecかかるような場合は、マスターは常に20msec待って リードを開始しなくてはならなくなる。これは非常にロスが生まれる。 TIのサンプルでは、すべて割り込みで処理している。したがって、リード割り込みが 入った時に、レジスタにデータをセットしないでリターンするなら、クロックストレッチが 起こらなければならい。この状態で、スレーブはデータが準備出来たら、レジスタに データをセットする。すると、リードが再開して次の割り込みが入り始める。 これが正解だろう。 このようにならないとしたら、このモジュールは芋決定だな。 もしくは、リード開始をスタートから開始するなら、スタート割り込みを受け付けたら 割り込みを禁止してリターンする。すると、次のリードで割り込みが入らないので、 クロックストレッチにならなくてはならない。データが準備出来たら、割り込みを 有効にする。 この場合クロックストレッチされてスレーブがハングすると、マスターは回復する 手段はない。 別のNMIかなにかを準備する必要がある。そもそも通信仕様が信じられない ほどの芋だな。
|