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.

TPS25750: BQ25792 is resetting register to defaults on USB detach

Part Number: TPS25750
Other Parts Discussed in Thread: BQ25792

Hello.

I'm using TPS25750 + BQ25792 combo.

I Have USB connected to TPS25750 (VBUS ~5-20V) and I have MCU connected to TPS25750 and performing below operations at startup:
-Patch TPS25750 over I2C (Low Region Binary generated using latest GUI)
-Setup BQ25792 using 4CC: I2Cr and I2Cw commands (i.e set EN_ADC=1,  SFET_PRESENT=1, IBAT_EN=1, WATCHDOG=0)

Device is then working normally and as expected until I unplug USB power source (VBUS ~0V), then my settings (ie. SFET_PRESENT=1, IBAT_EN=1) are restored back to Defaults.

When MCU is running, TPS25750 is also always provided with stable 3.3V on VIN_3V3 pin.

Is that normal behaviour and should I always monitor for every USB plug detach and setup BQ25792?

Do we know in which scenarios TPS25750 is sending reset command to BQ25792?

Regards Mateusz Kusmierz

  • Hi Mateusz,

    This is normal behaviour if utilizing a MCU to write to these devices as the TPS25750 will want to write to the BQ device during these events. So yes, you would need to monitor for USB plug detach and attach events/scenarios other than when the PD device resets itself. 

    Thanks,
    Field

  • So what is proper way of controlling this?

    Why TI did not put a mask during writing to a register so bits like IBAT_EN and SFET_PRESENT would not be overritten by TPS? I understand there are bunch of registers and bits that TPS must fully control to make this system work, but there are also dozen bits that can be set up to whatever value user needs.

    Other way is, those non-critical bits (especially SFET_PRESENT) should be available in GUI so when generating patch for TPS, souser would be able to define those and make this system work with shipFET even without external MCU.

    Could You please provide me with detailed list of events and BQ registers that are set to what values?

    Could You please provide me with instructions of how to modify generated patch to make this BQ's 0x14 register be written with different value (enable SFET_PRESENT and IBAT_EN)? Is there a document that describes this patch structure?

    If none of that is possible, can You tell me exactly on wtich INT event TPS to sets SFET_PRESENT and IBAT_EN to 0?

  • Hi Mateusz,

    Do you have a .json of your configuration settings that I may be able to look at? Do you know what value of the register 0x14 that you want, and what value is being written to 0x14 instead? I believe you are seeing 1Ch in register 0x14 is this correct? I may be able to assist further if you can provide me the .json. 

    If you are setting up the BQ device manually, then it may be possible via the configuration to not select a BQ device, which may get rid of these undesired writes. Or are you using some of the writes that the TPS25750 does to the BQ device?

    After power on, the events that may be needed would be attach, detach, and when a contract is negotiated. 

    Thanks,
    Field

  • I'm unable to attach json file here.

    I will just send it in plain text:

    {"questionnaire":{"version":"7.0.4.7","answers":[4,null,3,null,1,2,1,null,1,null,0,16.8,3,0.12,0.52],"options":{},"configID":"0000","vendorID":"0000"},"configuration":{"data":{"selected_ace":[{"register":6,"data":[0,0,0,0,0,0,0,0]},{"register":22,"data":[8,0,0,0,0,0,0,0,0,0,3]},{"register":50,"data":[0,168,42,44,145,1,38,44,209,2,0,44,177,4,0,244,65,6,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"register":51,"data":[4,44,145,1,16,44,209,2,0,44,177,4,0,44,65,6,0,69,65,6,0,0,0,0,0,0,0,0,0]},{"register":92,"data":[48,4,0,0,0,0,0,0,0,16,0,0,0,4,0,0,48,4,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"register":117,"data":[0,0,0,0]}]}}}

    I want SFET_PRESENT to be 1, and IBAT_EN to be 1. Other bits are controlled by TPS so I'm not sure what they should be but I think I have found some TI xlsx document that showed 0x14 register to be written with 0x1c value.


    If they are 1C they should be BC for my configuration. 

    Obviously we have decided to go with TPS + BQ combo to use TPS feature that allows it to set up BQ current etc. So I want BQ device to be selected in configuration and have it's current etc. managed by TPS.

    Will you be able to modify GUI in such a way to add SFET_PRESENT and IBAT_EN options (and possibly other bits that are not modified by TPS), so users could select what they desire?

    Thank You.

  • Hi Mateusz,

    Thanks for including this in here and the quick response, this worked for me to use it with the GUI. I'll go in and see if I can make these changes to give the output you desire (BCh) to 0x14.

    I understand and it makes sense to use the combination, so no worries there, just wanted to make sure. I believe they are currently in the process of updating the GUI for this, but do not know if so and do not have a timeline for you. 

    Please allow me till tomorrow to generate these low region binaries for you with these implemented changes.

    Thanks,
    Field

  • Hi Mateusz,

    Can you please try the below files which should output BCh to 0x14 and let me know the functionality and output? I have provided multiple files based on what you may need. 

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/196/LowRegion_5F00_1115.bin

    LowRegion_1115.c

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/196/FullFlash_5F00_1115.bin

    FullFlash_1115.c

    Thanks,
    Field