PICでI2Cを試す(リピートスタートコンディション)

以前、ArduinoでMPU-6050という加速度&ジャイロの6軸センサーをI2Cで接続していたのを思い出して、ソースコードを読んでいたらリピートスタートコンディションというのを使っているらしい。

一度、スタートコンディションでバスを取得した後、続けて他のI/Oを行いたい場合に、ストップコンディションを発行せずに続けて(リピート)スタートコンディションを発行することで、バスを握ったままアドレスを指定してI/Oを行えるらしい。アドレスを指定できるので別のデバイスでも指定可能ということらしい。

なので、さっきのマスター版の最初のスタートコンディション部分をリピートスタートコンディションに置き換えてみたら、それでも動いた。

というか、PICにはスタートコンディションとリピートスタートコンディションで別のビット(SSPCON2bits.SENとSSPCON2bits.RSEN)を使うけど、AVRではTWCRレジスタのTWSTAビットしか使っていないから根本的に違いが無いのかも知れない。

カテゴリー: AVR, PIC タグ: , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください