LPCXpesso IDE 〜 I2C通信

前回の記事ではSPI通信を取り上げましたが、今回は、LPCXpresso IDEでの、I2C通信の使い方をご紹介したいと思います。I2C通信の信号線は、以下の2線です。
SCL:シリアル・クロック
SDA:シリアル・データ
マスタとスレーブが存在し双方向通信できます。アドレスが付与されるので、複数個のデバイスを接続できるのが特長です。
LPCXpresso IDEには、SPI通信と同様にサンプルプログラムが含まれています。i2c.hとi2c.cがdriverディレクトリにありますので、これをドライバとして使用する事ができますが、ハードウエアの仕様に合わせて内容を書き換える必要があります。LPCXpressoをマスタ・デバイスとする場合の一例として、最低でも以下の部分を書き換える必要があります。

(1)スレーブ・アドレス
i2c.hのPCF8595_ADDRを適したアドレスに変更する必要があります。紛らわしいので名前を変えた方が良いかもしれません。PCF8595はデバイス名なので使用している部品名に置き換える事になります。

#define PCF8594_ADDR	0xA0

(2)ビット・レート
ビットレート関連の設定を行います。i2c.hの67行目付近になります。

#define I2SCLH_SCLH			0x00000180  /* I2C SCL Duty Cycle High Reg */
#define I2SCLL_SCLL			0x00000180  /* I2C SCL Duty Cycle Low Reg */
#define I2SCLH_HS_SCLH		0x00000015  /* Fast Plus I2C SCL Duty Cycle High Reg */
#define I2SCLL_HS_SCLL		0x00000015  /* Fast Plus I2C SCL Duty Cycle Low Reg */

その他、ハードウエアの仕様によって必要に応じて書き換える必要があります。i2c.hとi2c.cの名前は必要に応じて変えておいた方が良いかも知れません。

→その他のLPCXpresso関連情報

Sponsored Link