OSDN Git Service

First commitment for the BlackTank LPC1769.
[blacktank/blacktank.git] / i2c_subsystem.h
1 /**
2  * @file i2c_subsystem.h
3  * @brief I2C制御関数群
4  * @date 2011/02/19
5  * @author Takemasa Nakamura
6  * @details
7  * 最初に @ref i2c_init 関数を使って、I2Cペリフェラルを初期化する。
8  * @ref i2c_send_2bytes 関数は2バイトデータをI2Cデバイスに送る関数である。
9  * この関数はアドホックな版であり、割り込みは使っていない。
10  */
11
12 #ifndef I2C_SUBSYSTEM_H_
13 #define I2C_SUBSYSTEM_H_
14
15 /**
16  * @brief ISC0の初期化を行う。
17  * @details
18  * I2C0にポートを割り当て、初期化する。
19  * I2C動作クロックは100kHzにしているが、
20  * これはI2Cの標準モードの最大クロックである。
21  * LPC1768のコアクロックは100MHzと計算しているが、
22  * もしコアクロックがことなるなら、再設定が必要である。
23  */
24 void i2c_init();
25
26 /**
27  * @brief I2C0からTLV320AIC23Bへデータを送信する
28  * @param addr 7bitのI2Cアドレス。右揃え。
29  * @param data0 バイト0のデータ
30  * @param data1 バイト1のデータ
31  * @details
32  * 与えられたI2Cアドレスのデバイスに、2バイトデータを送る。
33  * 基本的にはLPC1768のユーザーズマニュアルUM10360で解説されている
34  * 状態遷移のうち、成功する場合だけをなぞっている。
35  * 失敗した場合にはメッセージを表示するだけで、とくに回復はしていない。
36  */
37 void i2c_send_2bytes( int addr, int data0, int data1 );
38
39 #endif /* I2C_SUBSYSTEM_H_ */