Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
26 changes: 18 additions & 8 deletions examples/Example3-Trickle_Charging/Example3-Trickle_Charging.ino
Original file line number Diff line number Diff line change
Expand Up @@ -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 <RV-3028-C7.h>
Expand All @@ -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(;;);

}
5 changes: 5 additions & 0 deletions src/RV-3028-C7.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions src/RV-3028-C7.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down