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 data not being sent to on Contract Negotiation Event

Part Number: TPS65987D
Other Parts Discussed in Thread: BQ25713,

I'm following this on from my previous post: https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1001039/tps65987d-i2c3-as-master-not-working/3699964#3699964

 

We have progressed very little from above and the post was closed and locked before I had a chance to submit any of my findings.

 

To bring you up to speed:

  • We are using port I2C2 as a slave (and debug) and I2C1 as master (to the Charger: BQ25713)
  • To keep things simple:
    • On POR and/or Hard reset we are configuring the charger as per the rows in green in the table below.
    • We only have 2 contracts: 1 sink and 1 source, both are 5V, 3A
    • We have only set up I2C master events for Sink PDO1. Upon successful sink contract, the input current to the charger will be limited to 3A
    • Upon detach the charge current will be set to 0A and current limit into charger set to 500mA

Function

Addr

Initial Value

Description/settings

Charge Option 0

00

        800E

Fixed initialisation

Charge Current Register

02

        0000

Changes depending on Source available

USB-C present = 0x0bc0

Not present = 0x0000

Charge Voltage Register

04

        20D0

Fixed initialisation

OTG Voltage Register

06

        09C4

Fixed initialisation

OTG Current Register

08

        3C00

Fixed initialisation

Input Voltage Register

0A

        0300

Fixed initialisation

Minimum System Voltage

0C

        1A00

Fixed initialisation

Input Current Register

0E

        0a00

Changes depending on Contract

0x0a00 - 500mA - No PDO

0x1E00 - 1.5A - PDO4 (NA)

0x2800 - 2A - PDO2 & 4 (NA)

0x3C00 - 3A - PDO0 & 3

 

Charge Status Register

20

        8000

Read Back

Prochot Status Register

22

        B800

Read Back

Input Current Limit In Use

24

        4100

Read Back

VBUS and PSYS Voltage Read Back

26

        3400

Read Back

Charge and Discharge Current Read Back

28

        0000

Read Back

Input Current and CMPIN Voltage Read Back

2A

        0000

Read Back

System and Battery Voltage Read Back

2C

        0000

Read Back

Manufacture ID and Device ID Read Back

2E

        E040

Read Back

Device ID Read Back

2F

        00E0

Read Back

Charge Option 1

30

        9300

Fixed initialisation

Charge Option 2

32

        0077

Fixed initialisation

Charge Option 3

34

        0434

0x0434 = NO OTG, 0x1434 = OTG Enabled upon Sink contract negotiation

Prochot Option 0

36

        4A81

Fixed initialisation

Prochot Option 1

38

        41A0

Fixed initialisation

ADC Option

3A

        A07F

Fixed initialisation

 

 

 

The Problem

Firstly the POR/HR and Detach event data is being sent correctly (see below for Detach data and attachements for both events):

The POR data is considerably long and though it best to send a raw saleae file.

 

The issue comes when a contract is negotiated. When I enter debug mode on the PD controller, the Contract is active:

but when I inspect the I2C1 line to the charger, no data is sent on this event. Why is this?

I'm pretty Sure I have set up the master events correctly.

I should have attached all the relevant files, if there's anything missing please inform me ASAP.

Data Captures and Project Config.zip