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.

TPS65986: C_CC1 and C_CC2 go to HiZ during I2C-transfer

Part Number: TPS65986

Dear Experts,

System consists of TPS65986, bq25892 charger and host MCU. All three are connected to same I2C-bus and MCU is a master. TPS65986 receives power from external USB-charger and feeds it through to bq25892 which charges the battery.

Problem occurs during dead-battery situation, meaning that TPS65986 is powered from VBUS. MCU is accessing to bq25892's registers during start-up routines. I2C address of bq25892 is 0x6B and the register which is accessed is 0x03. When MCU sends 6B03, TPS65986 removes pull-downs from C_CC1 and C_CC2. Due to this external charger cuts off VBUS and device shuts down because there is no power.

If MCU is accessing to different register, there is no issue. This happens only if 6B03 is sent. For example, 6B04 is not causing any issues.

Any ideas what could cause such odd behavior?

Rgds,

Juha

  • Juha,

    What is the I2C address of TPS65986 and BQ25892 in this implementation?

    Regards,
    Atiq
  • Juha:

    What version of firmware are you using? You can read the version from register 0x0F of the device. The configuration tool will also show the version number on the general settings tab.

    Thanks,
    Brad.
  • Juha:

    We just figured out why you are seeing strange problems when using address 0x6B. The firmware used to have a "all ACE" feature that worked like a broadcast address. This feature has been removed from the firmware that executes from RAM. But, it is still supported in the TPS65981/2/6 boot ROM.

    The Boot ROM sets up two I2C address, a unique one for itself and the all ACE address. These address are based on information in the OTP and from external pins. When the standard hardware configuration is used the unique address for the device is 0x38 and the all ACE address ix 0x6B. The Boot ROM programs the I2C hardware so that it responds on both addresses. This is the cause of the PD controller acting odd when the BQ device (at address 0x6B) is written.

    To disable the all ACE feature, the firmware downloaded by the boot ROM reprograms the I2C hardware to only respond to the unique device address. That means 0x6B is removed. I proved this on an EVM in my office. When downloaded firmware is executing the device only responds to address 0x38. But, if I force the device to continue executing the Boot ROM, the device responds to addresses 0x38 and 0x6B. I forced the device to continue executing the Boot ROM by erasing the flast on my board.

    So, the solution is to make sure you have a valid firmware image in the device flash. Your observations tell me that either your flash is blank or it contains a bad/corrupted firmware image.
  • Thanks Brad,

    Is there any plans to remove ACE address -feature from ROM-code?


    Rgds,
    Juha
  • Juha:

    No, there are no plans to release a new version of the device with a new ROM.

    Regards,

    Brad.