diff --git a/README.md b/README.md index 0b7365d..5fa4480 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,7 @@ _every_second_ specifies the interrupt to occur either every second or every min ### Trickle Charge functions ###### `enableTrickleCharge(uint8_t tcr = TCR_15K)` ###### `disableTrickleCharge()` +###### `bool isTrickleChargeEnabled()` At "enableTrickleCharge" you can choose the series resistor: TCR_3K for 3kOhm TCR_5K for 5kOhm diff --git a/examples/Example3-Trickle_Charging/Example3-Trickle_Charging.ino b/examples/Example3-Trickle_Charging/Example3-Trickle_Charging.ino index 1018321..b19b8e8 100644 --- a/examples/Example3-Trickle_Charging/Example3-Trickle_Charging.ino +++ b/examples/Example3-Trickle_Charging/Example3-Trickle_Charging.ino @@ -9,6 +9,10 @@ This example shows how to set the Trickle Charge Configuration of RTC RV-3028-C7. Open the serial monitor at 115200 baud. + + Assumptions, + 1) You have a rechargable battery, or capacitor, connected to Vbackup. See datasheet. + */ #include @@ -31,21 +35,27 @@ void setup() { Serial.println(); //Trickle Charger - Serial.print("Config EEPROM 0x37 before: "); - Serial.println(rtc.readConfigEEPROM_RAMmirror(0x37)); + Serial.print("Config EEPROM 0x37 before:\t0b"); + Serial.println(rtc.readConfigEEPROM_RAMmirror(0x37),BIN); - rtc.enableTrickleCharge(TCR_3K); //series resistor 3kOhm - //rtc.enableTrickleCharge(TCR_5K); //series resistor 5kOhm - //rtc.enableTrickleCharge(TCR_9K); //series resistor 9kOhm + //rtc.enableTrickleCharge(); // uses default value of 15kOhm + rtc.enableTrickleCharge(TCR_3K); //series resistor 3kOhm + //rtc.enableTrickleCharge(TCR_5K); //series resistor 5kOhm + //rtc.enableTrickleCharge(TCR_9K); //series resistor 9kOhm //rtc.enableTrickleCharge(TCR_15K); //series resistor 15kOhm - //rtc.disableTrickleCharge(); //Trickle Charger disabled + //rtc.disableTrickleCharge(); //Trickle Charger disabled - Serial.print("Config EEPROM 0x37 after: "); - Serial.println(rtc.readConfigEEPROM_RAMmirror(0x37)); + Serial.print("Config EEPROM 0x37 after:\t0b"); + Serial.println(rtc.readConfigEEPROM_RAMmirror(0x37), BIN); + Serial.println("\t\t (1 = ON) TCE Bit ^ ^^ TCR Bits (00 = 3k, 01 = 5k, 10 = 9k, 11 = 15k)"); //For more information see https://www.microcrystal.com/fileadmin/Media/Products/RTC/App.Manual/RV-3028-C7_App-Manual.pdf#page=48 } void loop() { + Serial.print("TCE bit = "); + Serial.println(rtc.isTrickleChargeEnabled()); + for(;;); + } diff --git a/src/RV-3028-C7.cpp b/src/RV-3028-C7.cpp index 41123f0..4a2d5fe 100644 --- a/src/RV-3028-C7.cpp +++ b/src/RV-3028-C7.cpp @@ -647,6 +647,11 @@ void RV3028::disableTrickleCharge() writeConfigEEPROM_RAMmirror(EEPROM_Backup_Register, EEPROMBackup); } +bool RV3028::isTrickleChargeEnabled() +{ + return readBit(EEPROM_Backup_Register, EEPROMBackup_TCE_BIT); +} + /********************************* 0 = Switchover disabled diff --git a/src/RV-3028-C7.h b/src/RV-3028-C7.h index 0661304..e07ae02 100644 --- a/src/RV-3028-C7.h +++ b/src/RV-3028-C7.h @@ -261,6 +261,7 @@ class RV3028 void enableTrickleCharge(uint8_t tcr = TCR_15K); //Trickle Charge Resistor default 15k void disableTrickleCharge(); + bool isTrickleChargeEnabled(); bool setBackupSwitchoverMode(uint8_t val); void enableClockOut(uint8_t freq);