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.

BQ25180: problem with distinguishing pushbutton presses with wake1 and wake2 timers, TS_OPEN_STAT register

Part Number: BQ25180

I use BQ25180 in my prototype. 

- I want to use its pushbutton functionality with both wake1 and wake2 press times (and of course long-press for ship mode)

- I do not use TS, so, as recommended by data sheet, I used pull down resistor 10k from TS/MR to ground

My original idea after reading the data sheet was to use wake1 interrupt for short press and wake2 for 2sec press by reading register WAKE1_FLAG and WAKE2_FLAG complemented by capability of directly reading the TS/MR pushbutton status through TS_OPEN_STAT. This is needed for early distinguishing short press from 2sec one - after wake1 interrupt simply have a look on pin status and if it is open it means short press and you know that immediately. Otherwise you would have to wait for not-getting wake2 interrupt and this 2 sec delay is not acceptable for the user interface. However after testing the device I found that TS_OPEN_STAT does not serve this purpose. It is probably meant only for TS failure detection. In my case it is always low.

How am I supposed to use BQ25180 to distinguish short press without the need for waiting for not-having wake2?

Can I somewhat violate data sheet by not using 10k pull down resistor and then monitor the push button instant state by reading TS_OPEN_STAT?

thank you.

  • Hi,

    That is an interesting scenario. I will look into how this can be implemented and do some in lab testing. I have an idea to use the TS measurement as an indicator, but is there any issue with charge being disabled while the button is pressed?

    Best Regards

  • I have done an experiment with removing pulldown TS/MR resistor. It is not a solution, the battery does not charge any more. I have also noticed another thread https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1101100/bq25180-a-way-to-read-button-thermistor-pin-state-in-real-time?keyMatch=BQ25180%20WAKE on the same topics, but monitoring TS temperature thresholds changes (affected by pushing the button) works only when on battery. it does not work when on external V_BUS voltage.

    I am getting a bit desperate. The chip design essentially does not allow 2 sec wake2 press detection without firs firing on short wake1 press, or by postponing the decision on wake1 till no-wake2 occurs. I am now investigating a "last resort" solution with somewhat reseting the wake counter after the first wake1 event to measure again wake1. this would lead only to 2x wake1 latency but being complicated by the need of external timing counter for no-second-wake1

    I would appreciate any help on this.

    thank you

  • Hi Jan,

    works only when on battery. it does not work when on external V_BUS voltage.

    To clarify, this solution only works when VBUS voltage is present, not when battery is present. This was the recommendation I was aiming to present as it provides some resolution (at least while VIN is present). Unfortunately, there isn't really another internal way of actively checking the status of the MR button while in battery mode.

    Alternative solutions would be checking TSMR for voltage pulses with directly with a host controller. The presence of voltage pulses (about 180 mS period between pulses) indicate that the button is not pressed. If no voltage pulses are present then the button will be pressed (this is how it is detected as pressed within the device during BAT mode).

    Would any of those solutions work?

    Best Regards,

    Juan Ospina