englandsaurusSFE:
That looks like the value you would see for two 10K resistors at 3.3V… Have you tried removing the pull-ups from the I2C bus using the onboard jumper?
Hi englandsaurusSFE ,
I’ve looked more into this issue and am happy to report I’ve made some progress.
To start I removed the I2C pullups and cut the capacitor jumper but was still getting 643 uA (0.6 mA) when using “rtc.enableLowPower()”. As the I2C pull-up resistors are 2.2kOhms, I didn’t really expect them to be the cause. Instead, I focused my attention on the CLK/INT, PSW and RST pins that each were pulled high with 10kOhm resistors. From the [RV-1805 application manual you can see that the CLK/INT, PSW and RST are all open drain outputs, hence the need for the pull-up resistors. However, when I measured the voltage on these pins, CLK/INT was 3.3V but PSW and RST were both ~0V (0.0080V).
So, next I took a closer look at the Control1 (10h), Control2 (11h) and Oscillator Status Register (1Dh) registers to figure out how to get the PSW and RST pins also to 3.3V. After setting the RSTP bit (bit 3) in the Control1 (10h) register to 1, the voltage on the pin jumped to 3.3V and the current draw instantly dropped from 643 uA to 325 uA. This made me realize I was definitely on the right track.
After further experimentation with the PSW registers, I was able to determine that you need to set the LKP bit (bit 5) of the Oscillator Status Register (1Dh) to 0 in order to unlock the PSW pin (I realize this can also be accomplished using: “rtc.setPowerSwitchLock(0);”) and then the PSWB bit (bit 5) of the Control1 (10h) needs to be set to 1. This produced a voltage of 3.3V on the PSW pin and the current draw dropped to 0.25 uA (225 nA). The PSWC (bit 1) of the Control1 register should also be set to 0, but this didn’t seem to make any difference on the current draw.
So there you have it! Long story short, a couple of small modifications to the library are needed to ensure that the CLK/INT, PSW and RST pins are all set to 3.3V by default to allow users to have a significantly lower current draw from this module.
I’d also like to point out that the “rtc.enableLowPower();” function still has no effect whatsoever on current draw. After looking at the function I noticed that it actually disables the RTC’s I2C when placed into low power. Given that I don’t know if it will automatically reenable the I2C when waking up from an alarm, I’d caution users to avoid this function, especially since you can achieve such a low power operating current of 0.25 uA.
Cheers,
Adam](https://cdn.sparkfun.com/assets/0/8/4/2/f/RV-1805-C3_App-Manual.pdf)