I2C モードによる通信

I2C モード
PIC の持つ I2C(Inter Integrated Circuit)モードは PIC と基板上の別の IC 相互間とのシリアル通信を行うものです。一つのマスタ IC で複数のスレープ IC との通信を行うことができます。
この通信は I-squared-C とか アイ・スケア・シー とも呼ぶようです。

I2C モードではマスタからの SCL(クロック)とSDA (データ)の2本の線に並列接続されたスレーブとの通信を行います。
並列接続されているスレーブはそれぞれ固有のチップアドレスを持っているのでマスタがそのチップアドレスを指定して通信を行います。

詳しい通信フォーマットは PIC などの参考文献にでているのでここでは省略いたします。

I2C 通信ではタイミングチャート通りのプログラムを作成するのは面倒です。
PIC に MSSP (Master Synchronous Serial Port) モジュールが内蔵されているものを使用すると I2C 通信は簡単にできます。
面倒だと思われる送受信のタイミング・プログラムを作る手間は要りません。


I2C の初期化設定
PIC の MSSP モジュールで I2C 通信を行う場合は次の制御レジスタを設定します。
  SSPxCON1 レジスタ
  SSPxCNO2 レジスタ
  SSPxNON3 レジスタ
  SSPxSTAT レジスタ
  SSPxADD レジスタ
などで x は 1 か 2 です。これらの他、割込みに関するレジスタがあります。


I2C 通信を体験してみました。
PIC に液晶表示器とソフトウエアラジオ IC を接続した FM ラジオをつくってみました。 FM ラジオ をご覧ください。

2020.5.11