English
Language : 

DS1689 Datasheet, PDF (7/32 Pages) Dallas Semiconductor – 3-Volt/5-Volt Serialized Real-Time Clock with NV RAM Control
DS1689/DS1693
TIME, CALENDAR AND ALARM LOCATIONS
The time and calendar information is obtained by reading the appropriate register bytes shown in Table 1.
The time, calendar, and alarm are set or initialized by writing the appropriate register bytes. The contents
of the time, calendar, and alarm registers can be either Binary or Binary-Coded Decimal (BCD) format.
Table 1 shows the binary and BCD formats of the twelve time, calendar, and alarm locations that reside in
both bank 0 and in bank 1, plus the two extended registers that reside in bank 1 only (bank 0 and bank 1
switching will be explained later in this text).
Before writing the internal time, calendar, and alarm registers, the SET bit in Register B should be written
to a logic 1 to prevent updates from occurring while access is being attempted. Also at this time, the data
format (binary or BCD) should be set via the data mode bit (DM) of Register B. All time, calendar, and
alarm registers must use the same data mode. The set bit in Register B should be cleared after the data
mode bit has been written to allow the real-time clock to update the time and calendar bytes.
Once initialized, the real-time clock makes all updates in the selected mode. The data mode cannot be
changed without reinitializing the 10 data bytes. The 24/12 bit cannot be changed without reinitializing
the hour locations. When the 12-hour format is selected, the high order bit of the hours byte represents
PM when it is a logic 1. The time, calendar, and alarm bytes are always accessible because they are
double-buffered. Once per second the 10 bytes are advanced by one second and checked for an alarm
condition. If a read of the time and calendar data occurs during an update, a problem exists where
seconds, minutes, hours, etc. may not correlate. The probability of reading incorrect time and calendar
data is low. Several methods of avoiding any possible incorrect time and calendar reads are covered later
in this text.
The 4 alarm bytes can be used in two ways. First, when the alarm time is written in the appropriate hours,
minutes, and seconds alarm locations, the alarm interrupt is initiated at the specified time each day if the
alarm enable bit is high. The second use condition is to insert a “don’t care” state in one or more of the 4
alarm bytes. The “don’t care” code is any hexadecimal value from C0 to FF. The 2 most significant bits
of each byte set the “don’t care” condition when at logic 1. An alarm will be generated each hour when
the “don’t care” bits are set in the hours byte. Similarly, an alarm is generated every minute with “don’t
care” codes in the hours and minute alarm bytes. The “don’t care” codes in all 3-alarm bytes create an
interrupt every second. The 3 alarm bytes may be used in conjunction with the date alarm as described in
the Wakeup/Kickstart section. The century counter will be discussed later in this text.
7 of 32