I2C制御関数です(I2Cマスター制御)。
100kbit/s(standard mode)です。送受信バッファー(グローバル変数)
関数名 内容 void initI2C() I2Cの初期化 void putsI2C(unsigned char w, unsigned char addr) 送信関数、wは送信バイト数、addrはI2Cアドレス void getsI2C(unsigned char w, unsigned char r, unsigned char addr) 受信関数、wは送信バイト数、rは受信バイト数、addrはI2Cアドレス
関数名 内容 I2C送信バッファー unsigned char I2C_Send[10] I2C受信バッファー unsigned char I2C_Recv[10]
- I2Ca.hをインクルードしてください。
- I2Ca.lppをプロジェクトに登録してください。
- 送信バッファーにデータを格納して、putsI2Cを実行します。
- 送信バッファーにデータを格納して、getsI2Cを実行します。受信バッファーに格納されます。
- マスターからスレーブを制御します。
- I2Cの通信速度にはstandard mode(100Kbit/s)、fast mode(400Kbit/s)、fast mode plus(1Mbit/s)があります。
- I2Cアドレスは7ビットです。プログラム上は8ビットで表現します。
- 例えば、ADT7410(温度センサ)のアドレス(7ビット)は0x48ですが、プログラム上(8ビット)は左シフトした0x90で表現します。
- I2Cアドレス(8ビット)の最下位ビットで、リードライトが決まります。1ならリード、0ならライトです。
- putsI2C関数とgetsI2C関数では自動的にリードライトのビットを制御するので、意識する必要はありません。
- I2Cの送信は送信データを設定し、送信するバイト数をputsI2C関数に指定します。
- I2Cの受信はコマンドなどの送信を伴い、その後受信します。I2Cの受信は送信データを設定し、送信するバイト数と受信するバイト数をgetsI2C関数に指定します。
- I2Cの送信例です。putsI2C(2, Address)
- I2Cの受信例です。getsI2C(1, 2, Address)
- 赤文字が送信バイトで、青文字が受信バイトです。
- システムクロック32MHzを前提に調整しています。
- I2Cのロジック電圧は5Vです。3.3Vには変換が必要です。
- 送受信バッファー数は10です。超えないようにしてください。
I2C.zip©2010-2015 All rights reserved by Einstein.
- I2Ca.h
- I2Ca.lpp
- Sample.c