This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM6467 I2C Addresses

Other Parts Discussed in Thread: CDCE949

We are trying to address an image sensor that is hooked up to the VPID expansion port on the DM6467 DVEVM but we do not know how to address the image sensor to set it up via the I2C bus. Our biggest problem is what address will the device use. Do we have to assign the address to the device by writing to it at initialization or does it automatically receive an address. Our team has never used I2C before so any help or guidance on this issue is appreciated.

  • normally the i2c device data-sheet (image sensor in this case) would specify how the address is defined.  I2C devices often define more than one possible I2C address; which one is used is sometimes determined by pulling a certain pin down or sometimes it is determined by some register configuration.  Bottom line, you cannot just assign any i2c address you wish, you need to refer to the device data-sheet for supported i2c addresses by that device and how to select which one is used.

  • Hi,

    One quick addition,

    Generally, if your Image sensor is a standard chip, then it has a fixed 7-bit slave address, with the last bit toggling between 0 and 1 for read/write operation as per your requirement ( though image sensor might just have read address only )

    Regards,

    Sidharth

  • Ok, our chip is an OmniVision OV5633. They give a tool to access the SCCB which is basically the same as I2C, and the address it uses to address the image sensor is 6C, is that what we would use in our coding then?

    It appears the DVEVM has a component with the address of 6C already, it is the CDE949 or CDCE949. Is there a way to disable this device ot use the image sensor.

  • First, It seems like this device CDE949 provides the audio clock, so you may want to take that into consideration before disabling it.  That said, I am not sure how to disable this myself ( do not have my software handy); however, you do have the entire Linux Kernel source, so you can always find which file registers this I2C address and and trace back the file to a module in the kernel which you can then disable via menuconfig.

  • Hi Juan,

    Referring to your earlier post, I wanted to ask if it is really possible to disable an I2C slave device via software/kernel level configuration?

    Because, as per I2C protocol, the master sends the slave address on the SDA line and waits for an acknowledge from the slave who has the same address. SO disabling a slave device like CDCE949 might require preventing SDA line from reaching the device ( something like removing he IC or disconnecting its SDA pin from the board) or removing its powersupply or using selectable jumpers if any.

    In a nutshell, I think it might require hardware configurations on board rather than software level changes?Am I right?

    Regards,

    Sid

  • I was wondering the same, if the device is still there and a disable command is given to the devices at 6C then both devices should disable themselves. Any command given to that address would seemingly go to both devices at that location. I am posting to make sure that me and Sid are correct.

  • Sidharth Garde said:

    Hi Juan,

    Referring to your earlier post, I wanted to ask if it is really possible to disable an I2C slave device via software/kernel level configuration?

    Because, as per I2C protocol, the master sends the slave address on the SDA line and waits for an acknowledge from the slave who has the same address. SO disabling a slave device like CDCE949 might require preventing SDA line from reaching the device ( something like removing he IC or disconnecting its SDA pin from the board) or removing its powersupply or using selectable jumpers if any.

    In a nutshell, I think it might require hardware configurations on board rather than software level changes?Am I right?

    Regards,

    Sid

     

    That is a good point.  I was thinking you can disable the part of the kernel that send requests to CDC949 so essentially you will have no I2C traffic intended for this device.  However, since it would still be present in the bus, trying to access the sensor with the same I2C address may cause CDC949 to respond (assuming power on state defaults to a working condition) instead of the intended sensor device.  I had not thought about this.

  • Richard Hall said:

    I was wondering the same, if the device is still there and a disable command is given to the devices at 6C then both devices should disable themselves. Any command given to that address would seemingly go to both devices at that location. I am posting to make sure that me and Sid are correct.

    Richard,

    Does the omnivision OV5633 part not offer alternate I2C addresses you can use?  Often devices support more than one I2C address they can use.  Otherwise, I am afraid we you may be looking at some hardware mods.  I just went through the DM6467 EVM Tech Ref Manual and there does not appear to be a way to disable this device via hardware switch or jumper. 

  • Hi Juan,

    Thanks for clarifying my doubt.

    Richard, one thing you can try and do is lift the SDA pin of CDCE949 in air so that its is not connected to the I2C SDA bus,..

    that way you can access your sensor,....

    For an SMD device,, it might be a tedious job, but that seems to be the only solution or try going for an alternate image sensor.

    Regards,

    Sid

  • Juan Gonzales said:

    I was wondering the same, if the device is still there and a disable command is given to the devices at 6C then both devices should disable themselves. Any command given to that address would seemingly go to both devices at that location. I am posting to make sure that me and Sid are correct.

    Richard,

    Does the omnivision OV5633 part not offer alternate I2C addresses you can use?  Often devices support more than one I2C address they can use.  Otherwise, I am afraid we you may be looking at some hardware mods.  I just went through the DM6467 EVM Tech Ref Manual and there does not appear to be a way to disable this device via hardware switch or jumper. 

    [/quote]

    We are actually trying to contact OmniVision about this issuea as well. We could not find that I2C address in the documentation, I had to look at their I2C access tool and found it there. As such we are not yet sure if they have other addresses that it can use.

  • I just got a reply from OmniVision that the only I2C write address for the OV5633 is 0x6C and the only read address for it is 0x6D, so it looks like we will have to do some desoldering tomorrow.