DS12887
041697 7/17
where the program should clear such earlier initiated
interrupts before first enabling new interrupts.
When an interrupt event occurs, the relating flag bit is
set to logic 1 in Register C. These flag bits are set inde-
pendent of the state of the corresponding enable bit in
Register B. The flag bit can be used in a polling mode
without enabling the corresponding enable bits. The
interrupt flag bit is a status bit which software can
interrogate as necessary . When a flag is set, an indica-
tion is given to software that an interrupt event has
occurred since the flag bit was last read; however , care
should be taken when using the flag bits as they are
cleared each time Register C is read. Double latching is
included with Register C so that bits which are set
remain stable throughout the read cycle. All bits which
are set (high) are cleared when read and new interrupts
which are pending during the read cycle are held until
after the cycle is completed. One, two, or three bits can
be set when reading Register C. Each utilized flag bit
should be examined when read to ensure that no inter-
rupts a re lost.
The second flag bit usage method is with fully enabled
interrupts. When an interrupt flag bit is set and the corre-
sponding interrupt enable bit is also set, the IRQ pin is
asserted low . IRQ is asserted as long as at least one of
the three interrupt sources has its flag and enable bits
both set. The IRQF bit in Register C is a one whenever
the IRQ pin is being driven low. Determination that the
RTC initiated an interrupt is accomplished by reading
Register C. A logic one in bit 7 (IRQF bit) indicates that
one or more interrupts have been initiated by the
DS12887. The act of reading Register C clears all
active flag bits and the IRQF bit.
OSCILLATOR CONTROL BITS
When the DS12887 is shipped from the factory, the
internal oscillator is turned off. This feature prevents the
lithium energy cell from being used until it is installed in a
system. A pattern of 010 in bits 4 through 6 of Register A
will turn the oscillator on and enable the countdown
chain. A pattern of 11X will turn the oscillator on, but
holds the countdown chain of the oscillator in reset. All
other combinations of bits 4 through 6 keep the oscilla-
tor off.
SQUARE WAVE OUTPUT SELECTION
Thirteen of the 15 divider taps are made available to a
1-of-15 selector, as shown in the block diagram of Fig-
ure 1. The first purpose of selecting a divider tap is to
generate a square wave output signal on the SQW pin.
The RS0–RS3 bits in Register A establish the square
wave output frequency . These frequencies are listed in
Table 1. The SQW frequency selection shares its
1–of–15 selector with the periodic interrupt generator.
Once the frequency is selected, the output of the SQW
pin can be turned on and off under program control with
the square wave enable bit (SQWE).
PERIODIC INTERRUPT SELECTION
The periodic interrupt will cause the IRQ pin to go to an
active state from once every 500 ms to once every
122 µs. This function is separate from the alarm inter-
rupt which can be output from once per second to once
per day . The periodic interrupt rate is selected using the
same Register A bits which select the square wave fre-
quency (see Table 1). Changing the Register A bits
affects both the square wave frequency and the periodic
interrupt output. However, each function has a separate
enable bit in Register B. The SQWE bit controls the
square wave output. Similarly, the periodic interrupt is
enabled by the PIE bit in Register B. The periodic inter-
rupt can be used with software counters to measure
inputs, create output intervals, or await the next needed
software function.
UPDATE CYCLE
The DS12887 executes an update cycle once per
second regardless of the SET bit in Register B. When
the SET bit in Register B is set to one, the user copy of
the double buffered time, calendar, and alarm bytes is
frozen and will not update as the time increments. How-
ever , the time countdown chain continues to update the
internal copy of the buffer. This feature allows time to
maintain accuracy independent of reading or writing the
time, calendar, and alarm buffers and also guarantees
that time and calendar information is consistent. The
update cycle also compares each alarm byte with the
corresponding time byte and issues an alarm if a match
or if a “don’t care” code is present in all three positions.
There are three methods that can handle access of the
real time clock that avoid any possibility of accessing
inconsistent time and calendar data. The first method
uses the update–ended interrupt. If enabled, an inter-
rupt occurs after every up date cycle that indicates that
over 999 ms are available to read valid time and date
information. If this interrupt is used, the IRQF bit in Reg-