Post Go back to editing

EVAL-ADV7282A-M I2C detect not work

Hi,

i have EVAL-ADV7282A-M and Nvidia Jetson Nano. 

Problem.

I can't detect chip ADV7282A-M from Jetson Nano on I2C bus.

Description of problem

I connected EVAL-ADV7282A-M debug pins to I2C Nvidia Jetson Nano bus:

EVAL Nano
SDA -> SDA(Bus 1, GPIO pin 3)
SCL -> SCL(Bus 1, GPIO pin 5)
GND ->  GND(GPIO pin 6)


When i run detection on jetson, i can't find any device on bus:

 

jetson-nano@jetsonnano-desktop:~$ sudo i2cdetect -y -r 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- -- 

The signal on oscilloscope when detection is started:

But if i try to read some register it work fine: 

jetson-nano@jetsonnano-desktop:~$ sudo i2cget -y 1 0x21 0x7A
0xf8

I'm new to this and I have no idea what the problem might be. Can help me with this?

  • Hi,

     Please make sure whether you are using the correct I2C address.   

        The addresses given in the data sheet are 8-bit read and write addresses.
        Sometimes software drivers expect 7.-bit addressing as an input So 0x42 becomes 0x21 (Right shift by 1).
    Note : i2c slave address 0x42 is the 8 bit address, If your software driver expect 7 bit address then the value is right shift by one 0x42>> 1 = 0x21

    We use 8-bit I2C instead of 7-bit addressing, requires bit shifting to match up. Check that the driver is outputting the right address or sweep all possible addresses to see if it responds.

    Please make sure with below expert comments,

        1.make sure the power rails are good
        2.make sure the device is out of reset and the reset goes high after both power rails are stable.
        3.make sure SDA and SCL signals are going to the right pins.  I've swapped them before, it was very embarrassing when someone finally pointed it out to me.
        4.Verify the pull up resistors on SDA and SCL, 2.2k - 10k.
        5.Verify the SDA and SCK signals wiggle and are the right amplitude.  0 - 3.3V
        6.Verify the I2C SDA master becomes an input or is tri-stated during the ACK bit so the ADV7282 can pull SDA low.
        7.Verify you are using the correct device address.
        8.Verify the start command is correct.
        9.Check to see if you can access anything else tied to the I2C bus, like eeprom.  Tie something to the bus to make sure the bus is working as expected.
    Refer here https://ez.analog.com/video/f/q-a/11215/adv7393-i2c

    Thanks,

    Poornima

  • Thanks for reply.

    So. I still can't detect chip.  

     In DVP Software the Device Scaner can find the chip:

    In my Jetson Nano i2cdetect command can't find chip:

    jetson-nano@jetsonnano-desktop:~$ sudo i2cdetect -y -r 1
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: -- -- -- -- -

    i2cdetect using 7-bit addressing as an input. if I understand correctly, the i2cdetect should find the 7-bit address of the chip. (0x42 >> 1 = 0x21)

    I completed the checklist but couldn't find the problem:

    1.make sure the power rails are good

    Checked. SDA and SCL is 3.3V 
       

    2.make sure the device is out of reset and the reset goes high after both power rails are stable.

    Checked. Reset pin on eval board are high. 
       

    3.make sure SDA and SCL signals are going to the right pins.  I've swapped them before, it was very embarrassing when someone finally pointed it out to me.

    Checked. SDA and SCL are going to the right pins.
       

    4.Verify the pull up resistors on SDA and SCL, 2.2k - 10k.

    Checked. My Jetson Nano have pull up SDA and SCL 4.7k resistors. 
       

    5.Verify the SDA and SCK signals wiggle and are the right amplitude.  0 - 3.3V

    Checked. SDA and SCL have  right amplitude.
       

    6.Verify the I2C SDA master becomes an input or is tri-stated during the ACK bit so the ADV7282 can pull SDA low.
    Checked.   

    7.Verify you are using the correct device address.

    Checked. i2cdetect using 7 bit adress. Scaning 0x03-0x77 adresses. 

    8.Verify the start command is correct.

    Do you mean start condition?(link

    if Yes, it is checked.

    9.Check to see if you can access anything else tied to the I2C bus, like eeprom.  Tie something to the bus to make sure the bus is working as expected.

    Checked. I connected EEPROM memory chip to I2C bus and it's work correctly(i can detect it using i2cdetect. And i can read/write registers)

  • Hi,

     Please follow section 2- Setting up the ADV7282-M Evaluation board at 6011.ADV7282-MinstallationguideRevA.pdf

    Thanks,

    Poornima

  • I followed section 2 of the instructions.

    The problem still remains.

    The problem:

    When i use DVP software all fine.  

    When i connect my Jetson Nano I2C bus to I2C headers on Eval board i can't detect the chip through the i2cdetect utility on the jetson nano.

    I checked:

    • power rails
    • pull up resistors 
    • pin connection
    • I2C bus on Jetson nano working as expected with another I2C slave device
    • oscillogram when i trying to detect chip looks fine, but there is no answers from chip
  • Hi,

     Could you please crosscheck whether you are missing any Jumper settings in eval board to detect  ADV7282A-M chip

     Also check the user guide for Jetson nano and ADV7282, for any fundamental need to takecare between both.

     Please https://ez.analog.com/video/w/documents/708/adv7280-adv7280-m-design-support-files

    Thanks,

    Poornima

  • Hi,

     Please let us know your issue?

    Thanks,

    Poornima

  • I have the same problem as Vekym discribed

  • Hi,

    1. Please make sure you have the right address, a lot of software defines I2C addresses as 7-bit addresses(i.e In that case we need to right shift the 8 bit map address to one),our i2c driver work with 8-bit address.

    2. Please try below sequence,
         a. Power up the chip as normal
         b. With a jumper wire or probe, pull the reset pin low to get a good solid hardware reset after power up.
         c.Try I2C transaction again.

    3.Can you verify that the I2C bus works with any other device on the bus?

    4. Please check that the reset and power-down pins are controlled in the manner described in the datasheet "optimal power-up sequence" section.

    5. Please make sure whether Jetson TX2 software driver has been configured properly according to ADV728x. Refer https://www.linuxtv.org/downloads/legacy/video4linux/API/V4L2_API/spec-single/v4l2.html#field-order

    Thanks,

    Poornima