
PRELIMINARY
Real Time Clock
S3C6400
RISC MICROPROCESSOR
33-2
Preliminary product information describe products that are in development,
for which full characterization data and associated errata are not yet available.
Specifications and information herein are subject to change without notice.
REAL TIME CLOCK OPERATION DESCRIPTION
2
15
Clock
Divider
XTOrtc
XTIrtc
Control
Register
SEC
MIN
HOUR
DATE
DAY
MON
YEAR
Leap Year Generator
Alarm Generator
Reset
Register
1 Hz
ALMINT
RTCCON
RTCALM
RTCRST
Time Tick Generator
TIME TICK
TICNT
32KHz/2048Hz
PMWKUP
PWDN
Figure 33-1. Real Time Clock Block Diagram
LEAP YEAR GENERATOR
The leap year generator can determine the last date of each month out of 28, 29, 30, or 31, based on data from
BCDDAY, BCDMON, and BCDYEAR. This block considers leap year in deciding on the last date. An 8-bit
counter can only represent 2 BCD digits, therefore it cannot decide whether “00” year (the year with its last two
digits zeros) is a leap year or not. For example, it cannot discriminate between 1900 and 2000. To solve this
problem, the RTC block in S3C6400 has hard-wired logic to support the leap year in 2000. Note 1900 is not leap
year while 2000 is leap year. Therefore, two digits of 00 in S3C6400 denote 2000, not 1900.
READ / WRITE REGISTER
Bit 0 of the RTCCON register must be set high in order to write the BCD register in RTC block. To display the
second, minute, hour, day, date, month, and year, the CPU must read the data in BCDSEC, BCDMIN,
BCDHOUR, BCDDATE, BCDDAY, BCDMON, and BCDYEAR registers respectively in the RTC block. However,
a one second deviation may exist because multiple registers are read. For example, when the user reads the
registers from BCDYEAR to BCDMIN, the result is assumed to be 2059 (Year), 12 (Month), 31 (Date), 23 (Hour)
and 59 (Minute). When the user read the BCDSEC register and the value ranges from 1 to 59 (Second), there is
no problem, but, if the value is 0 sec., the year, month, date, hour, and minute may be changed to 2060 (Year), 1
(Month), 1 (Date), 0 (Hour) and 0 (Minute) because of the one second deviation that was mentioned. In this case,
the user must re-read from BCDYEAR to BCDSEC if BCDSEC is zero.