Reply
Newbie
Posts: 1
Registered: ‎06-12-2011

Please, check the malfunction of "sg_i2c_controller".

Hi,

 

I'm trying to connecct Omnivision OV7725 camera moudle instead of original OV9715.

 

The OV7725 i2c slave address are 0x42 for write and 0x43 for read. (OV9715 has 0x60 and ox61.)

So, I changed IIC_ADDR 0x21 for OV7725. (Original IIC_ADDR is 0x30 for OV9715.)

 

During test, I found malfunction of read register operation.

 

In case of normal read operation for ov9715, sda data wave form is:

 

 0 1 1 0 | 0 0 0 0 | 0 | 0 0 0 0 | 0 0 0 0 | 0 | 1 | 0 1 1 0 | 0 0 0 1 | 0 | 

   0x60(addr W)     A       Register addr   A         0x61(add Read)

 

In case of abnormal read operation for ov7725, sda data wave form is:

 

 0 1 0 0 | 0 0 1 0 | 0 | 0 0 0 0 | 0 0 0 0 | 0 | 1 | 0 1 0 0 | 0 0 1 0 | 0 |

   0x42(addr W)     A       Register addr   A          0x42(addr Write)

                                                                           ------------------------

                                                                           erroneous point

 

The problem is that "sg_i2c_controller" does not output  address for read(0x43) in case of

ov7725 read operation.

 

How could I sove this problem ?

Please, Help me !

 

Best regards,

  

 

Highlighted
Avnet Employee (Star Contributor)
Posts: 471
Registered: ‎04-16-2009

Re: Please, check the malfunction of "sg_i2c_controller".

I am very sceptic that the I2C controller is not generating a LSB of 1 during the read cycle.

Do you have a oscilloscope capture of this ?

 

If you are absolutely certain, I can generate the I2C transaction (and ignore the nACKs since I don't have this image sensor) to investigate what is going on.

 

------------------------------------------------------

 

Do you know if the OV7725 has 8 bit addressing or 16 bit addressing ?

 

I made some tests for another client with the OV2715 image sensor, which uses 16 bit addressing.

In this case, we had to use the IicEWrite / IicERead functions (16 bit addressing) instead of the IicWrite / IicRead functions (8 bit addressing).

 

Do you get a response if you use IicERead function ?

 

Regards,

 

Mario.