The pullup on SDA is probably too strong. A lot of the omnivision
sensors don't like the traditional pullup values (4.7k) and require you
to use something more like 10K.
The 'xxxx' is where your slave should ACK the address sequence - and
there really shouldn't be a conflict here, unless you have more than one
sensor...
Steve
Gabriele Filosofi wrote:
Hi.
My CCDC camera chip OV7670 is connected onto the I2C bus by mean a
voltage translator PCA9306, because DM644x has 1.8V level I/O, while
OV7670 uses 2.8V.
Following Darius’s suggestions I’ve tryed to read OV7670’s internal
registers using this function:
/static u8 reg_read(struct i2c_client *client, const u8 reg)/
/{/
/ u8 i2c_buf[2];/
/ i2c_buf[0] = reg;/
/ i2c_master_send(client, i2c_buf, 1);/
/ i2c_master_recv(client, i2c_buf, 1);/
/ return i2c_buf[0];/
/}/
Using the following convention:
"___" for 0V level
"xxx" for 1V level
"---" for 2.8V level
on the oscilloscope I always see:
SCL ---__--__--__--__--__--__--__--__--__--____________ ...
___________-------
SDA --_____----________________----____xxxx------------ ...
----------__------
i.e.
START 0 1 0 0 0 0 1 W X ... STOP
In other words, *the i2c master (**DM644x**) **puts **only the I2C
address (0x21) **onto the bus**,** **and nothing more!*
I suppose "xxx" it is due to a conflict condition on the SDA line, and
this conflict condition prevents the first i2c_master_send() call to
be completed.
Otherwise, could the device be damaged?
Any comment will be appreciated.
Gabriele
_____________________________________________
*Da:* Gabriele Filosofi
*Inviato:* mercoledì 1 ottobre 2008 12.11
*A:* '[email protected]'
*Oggetto:* How to interface to OV7670
Hi,
I need to write a loadable module to drive a CCDC device OMNIVISION
OV7670 on the I2C bus.
I found a guy who came across a problem similar to mine:
_http://article.gmane.org/gmane.comp.video.video4linux/38082_
Also, he told to me that there is no support for multi-message for
this device, as confirmed by Omnivision technical guy, and that I must
use 8bit I2C commands to communicate with OV7670.
However, there are a lot of functions (i2c_transfer,
i2c_master_send/recv, i2c_smbus_write/read_byte) and I don’t know
which I should use.
In brief, I’m wondering if anybody knows how to access this device (or
a similar one) onto the I2C bus.
A code implementation example it would be greatly appreciated.
Thanks in advance,
Gabriele
------------------------------------------------------------------------
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source