[Armadillo:07797] Re: armadillo-440 =?ISO-2022-JP?B?GyRCJHI7SE1RJDckPxsoQg==?=I2C =?ISO-2022-JP?B?GyRCISYbKEI=?=START/STOP コンディションの発行について
Ohtaki Yuichiro
email@hidden
2012年 1月 11日 (水) 12:01:52 JST
大滝です。
i2cのSTART/STOPコンディションの発行は
i2c.hに書かれているi2c_msgという構造体で決まります。
i2c_msg一個に付きstart一個という感じです。
下のプログラムはIPUを通したCMOSセンサのドライバのソースへ
linux-2.6.26-at14\drivers\media\video\mxc\capture\mt9v111.c
のI2Cの通信の部分です。
このCMOSセンサはライトシーケンスは
Start|SlaveAddr|Ack|RegAddr|Ack|DATA|Ack|Start|SlaveAddr|Ack|RegAddr|Ack|DATA|Ack|Stop
というような反復スタートになっています。
static int mt9v111_i2c_client_xfer(unsigned int addr, char *reg, int reg_len,
char *buf, int num, int tran_flag)
{
struct i2c_msg msg[2];
int ret;
msg[0].addr = addr;
msg[0].len = reg_len;
msg[0].buf = reg;
msg[0].flags = tran_flag;
msg[0].flags &= ~I2C_M_RD;
msg[1].addr = addr;
msg[1].len = num;
msg[1].buf = buf;
msg[1].flags = tran_flag;
if (tran_flag & MXC_I2C_FLAG_READ) {
msg[1].flags |= I2C_M_RD;
} else {
msg[1].flags &= ~I2C_M_RD;
}
ret = i2c_transfer(mt9v111_i2c_client.adapter, msg, 2);
if (ret >= 0)
return 0;
return ret;
}
At 10:07 12/01/10, you wrote:
>松本と申します。
>
>今回は、armadillo-440を使用したI2Cに関する質問をさせていただきます。
>
>writeからreadに移行する際に、STOPコンディションではなく反復STARTを行いた
>いのですが、
>START/STOPコンディションの発行を設定・変更する方法はありませんでしょうか。
>
>ご存知の方がいらっしゃいましたら、御教授の程よろしくお願いいたします。
>
>_______________________________________________
>armadillo mailing list
>email@hidden
>http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
armadillo メーリングリストの案内