Anyone manage STM32L0 RTC calibration?
Hi
I am working on using the RTC, and have a project coming up that requires to run from battery for a couple of years. I will be using the RTC for tim stamp information. I know I will have to keep calibrating the RTC occasionally , and looking a the reference manual I see the below code. I dont have any input I can use for calibration (50Hz mains etc), and wondering if anyone has any code that can work out how to do this without any external reference input?
Many Thanks
Scott
/* (1) Write access for RTC registers */
/* (2) Enable init phase *//* (3) Wait until it is allow to modify RTC register values *//* (4) set prescaler, 40kHz/125 => 320 Hz, 320Hz/320 => 1Hz *//* (5) New time in TR *//* (6) Disable init phase *//* (7) Wait until it's allow to modify calibartion register *//* (8) Set calibration to around +20ppm, which is a standard value @25°C *//* Note: the calibration is relevant when LSE is selected for RTC clock *//* (9) Disable write access for RTC registers */RTC->WPR = 0xCA; /* (1) */RTC->WPR = 0x53; /* (1) */RTC->ISR = RTC_ISR_INIT; /* (2) */while((RTC->ISR & RTC_ISR_INITF)!=RTC_ISR_INITF) /* (3) */{/* add time out here for a robust application */}RTC->PRER = (124<<16) | 319; /* (4) */RTC->TR = RTC_TR_PM | Time; /* (5) */RTC->ISR &=~ RTC_ISR_INIT; /* (6) */while((RTC->ISR & RTC_ISR_RECALPF) == RTC_ISR_RECALPF) /* (7) */{/* add time out here for a robust application */}RTC->CALR = RTC_CALR_CALP | 482; /* (8) */RTC->WPR = 0xFE; /* (9) */RTC->WPR = 0x64; /* (9) */