LTE Boron PMIC questions


I am using a boron with a backup power supply of fairly large capacitors (5.3V at max charge) instead of using a battery, which should give the unit about 60 seconds to report any kind of power failure before shutting off. These capacitors are being charged by an aftermarket charge controlling IC instead of being charged by the boron itself, so I wanted to disable charging for the Li+ pin, as we were having strange behavior that we suspected was due to the boron trying to charge the capacitors at the same time a charge controlling IC was.

The unit was functioning correctly, but I wanted to disable charging from the boron to the capacitors and also wanted the CHG led to stop blinking for fault conditions or a disconnected battery.

I have tried using the example code found in this post and using the datasheet for the boron’s PMIC (snipit included below, no need to dig through) with the I2C commands and applying it to MISC_CONTROL_REGISTER, which has settings for enabling/disabling the ChargeFaultINT and the BatFaultINT, which I assumed would alter the behavior of the boron during the conditions for these faults, hopefully disabling the CHG LED. The results have been a little strange.

void setup()
// Put initialization like pinMode and begin functions here.
byte DATA = 0b01001000;

The bits in the string relate to the Misc control register, details for which can be found below:

//Misc Operation Control Register
--- Force DPDM detection
7: DPDM_EN  0: Not in D+/D– detection,
            1: Force D+/D– detection.
            Default: (0)
--- Safety Timer Setting during Input DPM and Thermal Regulation
6: TMR2X_EN 0: Safety timer not slowed by 2X during input DPM or thermal regulation
            1: Safety timer slowed by 2X during input DPM or thermal regulation
            Default: (1)
--- Force BATFET Off (this essentially disconnects the battery from the system)
5: BATFET_Disable   0: Allow Q4 turn on
                    1: Turn off Q4
                    Default: (0)
4: 0 – Reserved. Must write "0"
3: 1 – Reserved. Must write "1"
2: 0 – Reserved. Must write "0"
1: INT_MASK[1]      0: No INT during CHRG_FAULT
                    1: INT onCHRG_FAULT
0: INT_MASK[0]      0: No INT during BAT_FAULT
                    1: INT on BAT_FAULT

The Boron seems to be discharging the capacitors, preventing them from charging past 4.3V and now I seem to have an issue where the 3V line gradually drops until the EN Pin falls to LOW logic, leaving the unit without power. I am also using the PMIC().disableCharging() method, so it would stand to reason that management of battery charge would stop, not allowing the boron to meddle with it.

It would be great to know if I am even on the correct track to accomplishing this, or if anyone has dealt with programming the PMIC on the LTE Boron before or has dealt with a similar issue and has a solution, any help would be appreciated.

I’m wondering if you should try the Caps without the external charger IC.
Let them float at 4.2V from the Boron’s PMIC (a fake Li-Po).
Yes you give up some capacity, but it’s a pretty simple solution.

PMIC pmic;   
FuelGauge fuel;

void setup() {
  pmic.setChargeVoltage(4208);  //  Set Li-Po/CAP charge termination voltage to 4.21V, 
  // note: use pmic.enableCharging() or pmic.disableCharging() if needed.  PMIC settings are "Sticky"

void loop() {   
// check fuel.getVCell() on a schedule (millis comparison).  If it ever drops below ~4V, 
// then your Caps are discharging (you've lost external power) & you need to Publish an Alert and Go to Sleep at 1mA.