Hi, I have a challenge regarding the measurement subsystem of the LTC4015.
I am using it in a battery powered application controlled by an MCU where the MCU spends most of it's time in a light sleep mode (~98%).
However, when I initiate a measurement (as per the datasheet pg. 21), the MCU will be awake, and so will give me far too high a value for IBAT.
I have tried to do steps a. and b. and then immediately set the MCU to sleep again for 50ms, however this doesn't help any - presumably the MCU is not able to go to sleep quick enough,
Do you have any ideas on better ways to handle this? Does the LTC4015 only do a single sample when triggered like this, or is the sampling continuous? If so I caould maybe trigger a sample, sleep for 2 samples, and wake up and fetch the last one?
(I do have a plan B, which is to use the coloumb counter for consumption measurement, however with our battery size this gives me a minimum data resolution of 1.5mAh which is less than ideal).
I've tried the following now without any significant change in results:
Set FORCE_MEAS_SYS_ON_BF to 1.
Sleep for 50/100/200/500 ms
Wake up and immediately read IBAT
I did in the end not find a solution to this, so I am using the coloumb-counter to measure power draw. This does have the benefit of being by it's nature a "holistic" power draw monitor, so I believe it…
I wonder if you are just getting a high initial measurement due to starting up. It will continue to sample until you stop forcing telemetry on, so you could just wait for another measurement to finish in order to verify the current. If you do so, does that yield a different result?
Set EN_MEAS_SYS_VALID_ALERT_BF and FORCE_MEAS_SYS_ON_BF to 1
Sleep until SMBALERT-line is pulled low
Wake up and immediately set FORCE_MEAS_SYS_ON_BF to 0
Read all values including IBAT
All the above pick up the full powerdraw of the active MCU.
I believe because the measurement subsystem of the LTC4015 has a high enough sample rate that it has time to perform a measurement after I wake up before I have time to get the IBAT value from before waking.
If this is the case, even though it's making this use case a bit tricky, that is still pretty impressive for the chip.. :)
I would suspect that may the case. Some delay after enabling the measurement system may be required. It takes just a few ms per update. You might also monitor the TELEMETRY_VALID bit to tell when data is ready to be read.
I did in the end not find a solution to this, so I am using the coloumb-counter to measure power draw. This does have the benefit of being by it's nature a "holistic" power draw monitor, so I believe it should give very accurate results. For our use case we can live with the resolution being comparatively low.