RTC Temperature compensation for RL78/I1C


Does anybody know how to do RTC compensation with respect to temperature value in I1C ?

In I1B, there was an option to feed the crystal PPM value into the SUBCUD register but no such option is present in I1C.


  • Renesas has an RL78 RTC app note that shows how to perform temperature compensation for fSUB = 32768HZ oscillator.
    RL78 Family Real-Time-Clock Watch Error Correction function an_r01an3333eu0100_rl78_rtc.zip (sample code and app note)

    As you mention, RL78/I1C does not have SUBCUD adjustment register.
    I1C uses the RADJ adjustment register with 6 bits adjustment that are either added or subtracted every 8 seconds, 10 seconds, 32 seconds or 60 seconds in Automatic adjustment mode. The Adjustment is in fSUB error cycles multiplied by the number of seconds per update. You can see examples (9.3.9 Time error adjustment function) in the RL78/I1C Hardware User's manual on page 374 of R01UH0587EJ0200 Rev.2.00, Aug 31, 2018

    To convert from PPM to cycles:
    1 HZ at 32768HZ means 1,000,000/32768 = 30.52PPM per 1HZ

    So 32768HZ +/-50PPM = 32768HZ +/- (50PPM/30.52PPM) = 32768HZ +/- 1.638HZ