I’m attempting to put an MP2790 into discharge mode. A summary of the registers:
- FET_SRC is set for register control
- FET_CFG is simple, though I see the same behaviour in direct mode
- I start with ACTIVE_CTRL having all FETs off, later attempting 3 (charge + discharge FETs on)
- STBY_PFET_EN = 1
- STBY_STATE_EN = 0 due to some current limitations on our board
- PROTECT_IN_SAFE_CFG = 0
- I do not use plugin detection
- ALERT_POL = 1
- DSG_SOFTON_EN = 1
- INT_ALERT_CTRL = 1
- Most interrupts and faults are enabled
There’s a lot more (that I can provide on request).
The current behaviour is that the I2C bus to the chip is functioning fine, xAlert is functioning basically fine; but after I set ACTIVE_CTRL to attempt to get both the charge and discharge FETs enabled, only one set enables and the other stays disabled. This is confirmed when I check the power status, where I’m only at NORMAL A, and the FET status where CHG_DRV is 1 but DSG_DRV is 0.
I assume I’m encountering this scenario:
If only one FET driver is off due to a fault, the state is maintained.
I’ve checked all of the following locations for fault bits:
- 01 power status
- 02 standby status
- 0E watchdog status
- 11 FET status
- 20 OC status
- 27 SC status
- cell overvolt, cell undervolt, cell mismatch, cell dead
- every bit in interrupt 0 and interrupt 1
The BM doesn’t tell me why it’s only half-enabled. How can I figure this out, and how can I fix it so that I get into Normal B?