Pmu and audio soft control: quick start, 1 rtc examples, 1 rtc oscillator power-on – Rainbow Electronics AT73C246 User Manual
Page 132: 2 rtc oscillator power-off, 3 rtc domain reset, 4 rtc write operation

132
11050A–PMAAC–07-Apr-10
AT73C246
14. PMU and Audio Soft Control: Quick Start
14.1 RTC Examples
14.1.1
RTC Oscillator POWER-ON
// Set OSC_EN = 1 and OSC_UPDT = 1
TWI_WRITE 0x0C @BACKUP_CTRL
// Wait > 200us.
WAIT 200us
// Set OSC_UPDT = 0
TWI_WRITE 0x04 @BACKUP_CTRL
// Read BACKUP_CTRL to verify OSC_STAT bit. Result = 0x06.
TWI_READ @BACKUP_CTRL
14.1.2
RTC Oscillator POWER-OFF
// Set OSC_EN = 0 and OSC_UPDT = 1
TWI_WRITE 0x08 @BACKUP_CTRL
// Wait 200us
WAIT 200us
// Set OSC_UPDT = 0
TWI_WRITE 0x00 @BACKUP_CTRL
// Read BACKUP_CTRL to verify OSC_STAT bit. Result = 0x00.
TWI_READ @BACKUP_CTRL
14.1.3
RTC Domain RESET
// Set RST_BKUP = 1
TWI_WRITE 0x01 @BACKUP_CTRL
// Wait 200s
WAIT 200us
// Set RST_BKUP = 0
TWI_WRITE 0x00 @BACKUP_CTRL
Note:
Reset of the RTC domain powers off the RTC oscillator.
14.1.4
RTC Write Operation
The following example makes a generic 32-bit write operation into the RTC macro. The 32-bit
data is split into 4 bytes, that are successively sent over the TWI.
unsigned int RTC_DATA;
char DATA0 = (char) (RTC_DATA);
// LSBs
char DATA1 = (char) (RTC_DATA >> 8);
char DATA2 = (char) (RTC_DATA >> 16);
char DATA3 = (char) (RTC_DATA >> 24);
// MSBs
// Select RTC_ADDR = ADDR. ADDR is the RTC macro register to write,
TWI_WRITE ADDR @RTC_ADDR
// Set RTC_DATA0 to RTC_DATA4 registers.
TWI_WRITE DATA0 @RTC_DATA0
TWI_WRITE DATA1 @RTC_DATA1