Hi,
I am working on a design with the TPS65988DH USB PD Controller.
I am using I2C1 interrupt for the Plug detection event.
At all the time, the value of register 0x14 and 0x18 is 0x0b.
Also, I cannot set the 0x18 value (in order to clear it).
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.
Hi,
I am working on a design with the TPS65988DH USB PD Controller.
I am using I2C1 interrupt for the Plug detection event.
At all the time, the value of register 0x14 and 0x18 is 0x0b.
Also, I cannot set the 0x18 value (in order to clear it).
Hi,
Do you see the I2C transaction matching what you saw? Do you map the GPIO to the Plug event and is the GPIO toggles correctly?
Are you following the I2C format per the Host Interface TRM? Are you able to read/write other registers?
Please send the pjt file and can you capture the full I2C transaction using a logic analyzer like Saleae?
Regards,
Peter
Hi Peter,
I have checked the GPIO Plug event also. It is toggling properly.
Even for the I2C interrupt, the Voltage level of the I2C interrupt is going low when I connect a Plug to the port.
But I cannot set the register 0x18 with i2cset.
That's the issue - I am unable to clear that interrupt via SW.
I have to power cycle to clear that interrupt
Or is there any other way to clear the interrupt?
Hi,
Are you using the Application GUI to read or write the register and is the GUI in Debug mode?
There's a user guide under Documents tab that will tell you more on debug mode and using manual instead of polling to execute single register one at a time.
Regards,
Peter
Hi Peter,
I am using the i2cset command to write the register and the i2cget command to read the register.
I am not using the debug mode in the GUI.
Hi,
I believe the issue is it's not the correct I2C format.
You can see the format in the HI TRM link here or TPS65988 datasheet for the format.

Hi,
No, that's not what I meant.
The i2cset/i2cget command needs to follow the I2C format in the HI TRM. There is an additional byte for the byte count before the data bytes.
Once you have the correct format you should be able to write or read any of the registers.
Regards,
Peter
Hi Peter,
I need to clear the Bit 3 (Plugin or removed interrupt).
I have checked the register details of 0x18.
While reading initially, the value of 0x18 is 0x0b.
i2cset command will write the first 8 bits of the register. So I guess the interrupt would be cleared and it is clearing
I could see the GPIO becoming one but the issue is even after clearing the first 8 bits when we are reading it, the register value of 0x18 is showing the same as 0x0b as before.
And also the behavior of GPIO toggling seems inconsistent
Hi,
Can you capture the I2C transactions for your write and read so I can verify?
Regards,
Peter
Hi Peter,
I am observing some transitions in the I2C data lines and also the Interrupt line is toggling properly.
The only issue is that the I2C read value is the same ALWAYS...
Hi,
Attached is the I2C transaction that you should see when reading and clearing the INT bit.
Without seeing your transaction I can't tell what's wrong.
Regards,
Peter