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.

TPS65400: I2C communication problems

Part Number: TPS65400
Other Parts Discussed in Thread: 66AK2G12

Team,

Urgent question for a major customer of mine. 

I'm starting with you guys, though I am aware this may need to be moved to another forum. My customer designed in the TPS65400 onto their board to help power their 66AK2G12 processor. They are basically trying to use the example code that lets the K2G talk to the pmic on the K2G evm, just tweaking the code to instead talk to the TPS65400 on their custom board. Unfortunately they are having trouble communicating with the TPS65400 via I2C. Can you confirm at least that the TPS65400 is not misbehaving based on the scopeshot of the I2C bus? From customer:

I modified RTOS I2C_BasicExample_evmK2G_armTestProject to access PMIC TPS659118 on K2G EVM board.

The RTOS example code is to access EEPROM through I2C0. I changed BOARD_I2C_EEPROM_INSTANCE from 0 to 2 to access PMIC TPS659118 through I2C2.

I was able to read PMIC TPS659118 register values.

But I always read 0xFF back when I use the same code with changes of I2C address and command to match my board.

My board has K2G and PMIC TPS65400. TPS65400 supports PMBus protocol SMBus version 2.0. Here is a scopeshot of the I2C bus when communicating with the TPS65400:

 

From the I2C_SCL and I2C_SDA waveforms I captured on scope, it seems there is a missing narrow pulse at cursor b on I2C_SDA signal line(green color).

Compare that to the same attempt of communication with the TPS659118:


The I2C_SCL signal is in yellow color and I2C_SDA signal is in green. You can see there is a narrow pulse at cursor a (right after ACK bit) which TPS65400 doesn’t have.

Does RTOS I2C API supports PMBus protocol SMBus version 2.0? If so, Is there any changes I need to do to access TPS65400?

 

Thanks,

Brian

  • Hi, Brian

    Some comments:

    1. In the TPS65400 screenshot, which register(command code) do you try to write? please confirm the command code is right.

    2. Have you ever tried other command code for TPS65400? Can't communicate with tps65400 at all?

    3. Do you have the schematic of TPS65400? i want to check the HW.

     

     

  • Thanks Zhao for the response. See below:

    1.In the TPS65400 screenshot, which register(command code) do you try to write? please confirm the command code is right.

    Ans1: As you can see the decoded I2C data in B1 channel(purple color) from scope screen, the I2C address of TPS65400 is "6A".

    The command code is "19" which is CAPABILITY.

     

     

    2. Have you ever tried other command code for TPS65400? Can't communicate with tps65400 at all?

    Ans2: We have tried other command codes, e.g. 00h PAGE, 10h WRITE_PROTECT, ADh IC_DEVICE_ID, e.t.c but all read back "FF."

    You can see the communication between K2G processor and TPS65400 on the I2C_SDA line (green color).

    TPS65400(as I2C Slave) drives the ACK bit on I2C_SDA line after device address and WRITE bit.

    It also drives ACK on I2C_SDA line after Command code.

     

    3. Do you have the schematic of TPS65400? i want to check the HW.

    Ans3: Sent to you offline, and let me know if you want to continue the conversation offline after that or take it back here.

     

    Thanks,

    Brian

  • Hi, Brian

     

    The schematic looks ok.

    It looks K2G can't communicate with tps65400 at all.

     

    Confirm with you:

    After power on, is every rail normal working? The DVDD_DDR, CVDD, 3.3VD, DVDD18 are all normal?

     

     

  • we have taken this offline