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.

TPS65987D: I2C1 slave not showing up to embedded controller

Part Number: TPS65987D

Tool/software:

Hi there, 

Pretty basic question - why is the TPS65987D not showing up to the host device? I have it directly wired to the EC over the i2c1 lanes, and used the standard.pjt GUI tool to flash my configuration. 

Do I need to select the correct I2C_ADDR addressing as per the resistor configuration in the General Settings configuration mode before generating the binary to flash to the SPI module? 

Any help would be appreciated or direction on what settings I need to set. I would like to use it in a slave configuration only. 

Regards

Ben

  • By the way, here is my attached project file: 
    drive.google.com/.../view

  • And of course, attaching my schematic as well for good measure. 

  • Hello,

    What are you seeing in the GUI window?

    Do I need to select the correct I2C_ADDR addressing as per the resistor configuration in the General Settings configuration mode before generating the binary to flash to the SPI module? 

    Can you use the Adapter settings to sweep and confirm the device is connected and responding?  Yes. you will want to match the Addressing with the target.

    Regards,

    Chris

  • Hi Chris, 

    I am not using an Adapter at the moment, I have currently embedded the hardware on a PCB with the RK3588 being the host device.

    I can confirm its polling other devices on the bus using i2cdetect, of which I currently have 2 (+ the TPS65987D, which doesn't show up). Other two devices are active at addresses 0x1A and 0x36. 

    The datasheet states all i2c buses require pull-ups, of which I have left I2C2 floating. Could this be a source of the issue? 

    I am wondering if there are any settings I need to configure in the GUI to get I2C1 working as a slave device? Please advise if possible :) 

    Ben

  • Hello,

    The datasheet states all i2c buses require pull-ups, of which I have left I2C2 floating. Could this be a source of the issue?

    No.  I do not believe so.

    What address are you expecting the PD to be at based upon your ADCIN configuration 0x20-0x23?  Can you try all of these addresses to see if the PD acknowledges any of them?

    I am wondering if there are any settings I need to configure in the GUI to get I2C1 working as a slave device? Please advise if possible :) 

    By default these should be unselected.  

    Regards,

    Chris

  • Hi Chris, 

    Thanks for the reply. I have two 100k resistors there so expecting it to be at address 0x22. 

    Let me clarify - I do need to select the correct targeting address before flashing the binary in the tool under Device Initialization Chain or not? Or is this only related to adapter or for any master to probe the slave device correctly? I believe by default it is set to 0x22, with resistor divider of 100k/100k for R1/R2 on ADCIN2.

    By default, the Device Initialization Chain sets this to I2C_ADDR 0 where Port1 is set to 0x20. Could this be the issue? 

    I also believe the i2c bus master GPIOs has internal pull-ups. I still need the external pull-ups going to LDO_3v3? (I included them anyway). 

    Best

    Ben

  • Hello,

    Let me clarify - I do need to select the correct targeting address before flashing the binary in the tool under Device Initialization Chain or not?

    No.  If you are not using the GUI with the TIVA or FTDI then this is not needed.  The I2C1 address is determined by the resistors on ADCIN2.

    By default, the Device Initialization Chain sets this to I2C_ADDR 0 where Port1 is set to 0x20. Could this be the issue? 

    I do not believe so, but it would seem a simple thing to test.

    https://www.ti.com/lit/ug/slvub60c/slvub60c.pdf

    I also believe the i2c bus master GPIOs has internal pull-ups. I still need the external pull-ups going to LDO_3v3? (I included them anyway). 

    The PD controller has no internal pullups on the I2C lines.  External pullups are required.

    Regards,

    Chris

  • Thanks Chris, 

    I've simply made the blunder of flipping the data and clock lanes. All fixed now and showing up on the bus. (facepalm).

    Cheers

    Ben