池畑です。 H8/3664のI2Cトラブルで、”マイコンテクニカルサポートセンタ”に聞いていたとこ ろ 最後に返ってきたのが下記の内容。 で、”IICモジュールを変更したH8/3694を開発中ですので、ご検討お願いします。” だとさ。ふざけるな!!!! -------------------------------------------- 【回答】 本IICでは、割り込みへの応答が遅れた場合に、受信データレジスタにデータが あり、現在シフトレジスタに受信中なのか、シフトレジスタもいっぱいで 受信完了しているのかを判断する手段がありません。そのため、割り込みの応答 が1バイトの送信時間以内でなければなりません。 停止条件を検出すると常にSTOPフラグがセットされますが、これもIRICのクリア タイミングによってはうまく判定することができない可能性があります。 このため、 ・割り込みの応答が1バイトの送信時間以内にする。 ・あらかじめ送受信のプロトコルで転送バイト数を決めておく。 ことが必要です。こうした場合にはIRICがセットされていたら IRICフラグをクリアし受信データレジスタをリードする。 最終バイトは停止条件が発行されてから、受信データレジスタを リードすることでうまく通信ができるものと思います。 --------------------------------------------