I2C制御関数です(I2Cマスター制御)。外部シリアルEEPROM(I2C)との通信用です。
わずらわしI2Cの通信速度設定は選択するだけです。他のI2Cデバイス(I2Cスレーブ)に対しても改良で対応できるでしょう。
関数名 内容 void InitI2C() I2Cの初期化 unsigned char EEPROMreadI2C(unsigned int I2Cadr, unsigned int EEPadr) 1バイト読み込み void EEPROMwriteI2C(unsigned int I2Cadr, unsigned int EEPadr, unsigned char data) 1バイト書き込み
- 24FC64は64Kビット(8Kバイト)のEEPROMです。
- 最大通信速度は400KHzです。
- EEPROMの書き込み時間は5msです。(I2CのSTOP信号受信後)
- I2Cスレーブアドレスは 1 0 1 0 A2 A1 A0 R/W です。(I2Cのコントロール)
- I2C.hをインクルードしてください。
- 動作クロックに応じてI2C.cファイル内のFOSC,PLL,FCYを指定してください。
例、7.37MHz Internal RC oscillator, 16x PLL enabled #define FOSC 7372800 #define PLL 16 #define FCY FOSC*PLL/4- 内蔵発振は7.372MHz±2%でキャリブレーション(工場出荷時調整)されています(±0.14744MHz)。
- I2Cの通信速度をI2C.cファイルで選択してください[100KHz,400KHz,1MHz]。
//#define FSCL 100000 #define FSCL 400000 //#define FSCL 1000000- 400KHzの場合、I2C_SLW_DISの代わりにI2C_SLW_ENを選択してください。
- I2Cのプルアップは通信速度で選択します。
- 100KHz時、10K
- 400KHz,1MHz時、2K
I2C.zip(C)2010 All rights reserved by Einstein.
- I2C.h
- I2C.c
- Sample.c