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.

TDA4VM: I2C not outputting signal

Part Number: TDA4VM


Hi,

We are trying to communicate from I2C0 or I2C1 with the deserializer DS90UB962WRTDTQ1 on a custom board but we get no response.

We have probed the I2C buses, and there is no I2C SCL signal present on the I2C pin (4.7k pullups present on both I2C lines).

We are using same dts files than we use in the EVM board. Should we change some config in order to get the I2C running?

Addtional info: wkup_I2C is working, as we are able to communicate with PMICs

Any suggestion on what could we try to solve it?

Thank you!

  • Hi Daniel,

    From which core are you trying to access i2c? If it is R5F, yes, you would have to change dts file and remove these i2c instances from Linux. In addition, please also check if pinmux is setup correctly for these i2c instances.. Make sure that it is not getting overwritten by some other module.. You could try reading the pinmux register from Linux prompt and confirm the values.. 

    Regards,

    Brijesh

  • Hi Brijesh,

    Yes it is planned for the R5F to access these i2c, however for the initial test we try to read the i2c bus from A72 and u-boot or Linux. From your answer, this should work with the default configuration, yes? Any quick solution to check and probe i2c from R5F?

    We have to double check the pinmux configuration but so far we have not seen any error in the setting. 

    Can you provide an example to check the pinmux settings from Linux prompt in order to confirm the values as you suggested?

    Do you have any additional suggestions we could test?

    Thank you and Best Regards,

    Max

  • Hi Max,

    Can you try using i2cdetect utility from Linux console to detect all i2c clients connected on given i2c instance, like "i2cdetect -r -y 0" to detect i2c clients on instance 0? 

    Are you trying this on EVM? This is because i2c lines are available on multiple pads, so depending on pad used on your board for i2c, we need to configure pinmux.. 

    Regards,

    Brijesh

  • Hi Brijesh,

    I am replying for Max here.

    Find attached i2cdetect output of our custom board, we have noticed some ghost devices in the bus, for example the 0x06 in bus 2.

    root@j7-evm:~# i2cdetect -r -y 0
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
    10: -- -- 12 -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: -- -- -- -- -- -- -- --                         
    root@j7-evm:~# i2cdetect -r -y 1
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          [  120.021235] omap_i2c 40b10000.i2c: controller timed out
    -- [  121.077236] omap_i2c 40b10000.i2c: controller timed out
    -- [  122.101243] omap_i2c 40b10000.i2c: controller timed out
    -- ^C[  123.125235] omap_i2c 40b10000.i2c: controller timed out
    
    root@j7-evm:~# i2cdetect -r -y 2
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- 06 -- -- -- -- -- -- -- -- -- 
    10: -- -- -- 13 -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- 48 49 4a 4b 4c 4d 4e 4f 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: -- -- -- -- -- -- -- --                         
    root@j7-evm:~# [  127.708784] Initializing XFRM netlink socket
    
    root@j7-evm:~# i2cdetect -r -y 3
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: -- -- -- -- -- -- -- --                         
    root@j7-evm:~# [  132.382417] process 'docker/tmp/qemu-check869688510/check' started with executable stack
    
    root@j7-evm:~# i2cdetect -r -y 2
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
    10: -- -- -- 13 -- -- -- -- -- -- -- -- 1c -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- 3a -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- 48 49 4a 4b 4c 4d 4e 4f 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: -- -- -- -- -- -- -- --                         
    root@j7-evm:~# i2cdetect -r -y 4
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: -- -- -- -- -- -- -- --                         
    root@j7-evm:~# i2cdetect -r -y 5
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: -- -- -- -- -- -- -- --                         
    root@j7-evm:~# i2cdetect -r -y 6
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          [  161.109245] omap_i2c 2040000.i2c: controller timed out
    -- ^C[  162.165239] omap_i2c 2040000.i2c: controller timed out
    
    root@j7-evm:~# i2cdetect -r -y 7
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          [  165.397253] omap_i2c 2050000.i2c: controller timed out
    -- ^C[  166.421273] omap_i2c 2050000.i2c: controller timed out
    

    We are trying it in our custom board, we have the buses connected to the following pins:

    • wkup_i2c0_scl  -> J25
    • wkup_i2c_sda   -> H24
    • i2c0_scl  -> AC5
    • i2c0_sda  -> AA5
    • i2c1_scl  -> Y6
    • i2c1_sda  -> AA6

    Thank you.

    Best regards, Mohamed.

  • Hi Brijesh,

    We measured the signal of the i2c0/i2c1_scl and i2c0/i2c1_sda at the output of the TDA4VM chip with the following results:

    • i2c0:

    • i2c1:


    Could it be that the clock signal is not adequate? And if that is the case, how can it be solved?

    We tried to recognize the Serializer at lower frequencies (100kHz) where the signal integrity does not seem to be influenced by the slope and did not detect it either.

    Best regards, 

    Mohamed.

  • Mohamed,

    I have checked dts file and found the Linux is also using AC5 and AA5 lines for the i2c0 lines.. so seems pins are correct. 

    Looking at the i2cdetect output, it is only detecting only one client device, ie device at the address 0x12. Could you please check if this is correct?

    Is this the address of the ub962 that you have connected on i2c0? Also if it is not, is the ub962 really powered on? or may be reference clock input provided for the deserializer?

    Regards,

    Brijesh 

  • Hi Brijesh,

    Thanks a lot for your support. The issue has been resolved. In our case, the issue was PDB signal on ub962. After configuration of the PMIC voltage outputs on our custom board, PDB signal was still low. We had to change pinmux settings for the connected GPIO and pull it high. 

    Now we see the expected result (0x3c) on i2c bus 3: 

    root@j7-evm:~# i2cdetect -r -y 3
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --
    

    Thank you and Best Regards,

    Max

  • Thanks Max for the update, since this issue is resolved, i am closing this ticket.

    Regards,

    Brijesh

  • Hi all,

    Great to see! Many thanks for the support and collaboration!


    Best regards,
    François.