DS12885/DS12887/DS12887A/DS12C887/DS12C887A
Real-Time Clocks
18
____________________________________________________________________
Century Register
(DS12C887/DS12C887A Only)
The century register at location 32h is a BCD register
designed to automatically load the BCD value 20 as the
year register changes from 99 to 00. The MSB of this
register is not affected when the load of 20 occurs, and
remains at the value written by the user.
Nonvolatile RAM (NV RAM)
The general-purpose NV RAM bytes are not dedicated
to any special function within the device. They can be
used by the processor program as battery-backed
memory and are fully available during the update cycle.
Interrupts
The RTC family includes three separate, fully automatic
sources of interrupt for a processor. The alarm interrupt
can be programmed to occur at rates from once per
second to once per day. The periodic interrupt can be
selected for rates from 500ms to 122s. The update-
ended interrupt can be used to indicate to the program
that an update cycle is complete. Each of these inde-
pendent interrupt conditions is described in greater
detail in other sections of this text.
The processor program can select which interrupts, if
any, are to be used. Three bits in Register B enable the
interrupts. Writing a logic 1 to an interrupt-enable bit
permits that interrupt to be initiated when the event
occurs. A 0 in an interrupt-enable bit prohibits the IRQ
pin from being asserted from that interrupt condition. If
an interrupt flag is already set when an interrupt is
enabled, IRQ is immediately set at an active level,
although the interrupt initiating the event may have
occurred earlier. As a result, there are cases 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 that software can interro-
gate as necessary. When a flag is set, an indication 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 includ-
ed with Register C so that bits that are set remain sta-
ble throughout the read cycle. All bits that are set (high)
are cleared when read, and new interrupts that 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 used flag bit should be
examined when Register C is read to ensure that no
interrupts are lost.
The second flag bit method is used with fully enabled
interrupts. When an interrupt flag bit is set and the cor-
responding 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
set. The IRQF bit in Register C is a 1 whenever the IRQ
pin is driven low. Determination that the RTC initiated an
interrupt is accomplished by reading Register C. A logic
1 in bit 7 (IRQF bit) indicates that one or more interrupts
have been initiated by the device. The act of reading
Register C clears all active flag bits and the IRQF bit.
Oscillator Control Bits
When the DS12887, DS12887A, DS12C887, and
DS12C887A are shipped from the factory, the internal
oscillator is turned off. This prevents the lithium energy
cell from being used until the device is installed in a
system.
A pattern of 010 in bits 4 to 6 of Register A turns the
oscillator on and enables the countdown chain. A pat-
tern of 11x (DV2 = 1, DV1 = 1, DV0 = X) turns the oscil-
lator on, but holds the countdown chain of the oscillator
in reset. All other combinations of bits 4 to 6 keep the
oscillator off.
Square-Wave Output Selection
Thirteen of the 15 divider taps are made available to a 1-
of-16 multiplexer, as shown in the functional diagram.
The square-wave and periodic-interrupt generators
share the output of the multiplexer. The RS0–RS3 bits in
Register A establish the output frequency of the multi-
plexer (see Table 1). 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 causes the IRQ pin to go to an
active state from once every 500ms to once every 122s.
This function is separate from the alarm interrupt, which
can be output from once per second to once per day.
The periodic interrupt rate is selected using the same
Register A bits that select the square-wave frequency
(Table 1). Changing the Register A bits affects the
square-wave frequency and the periodic-interrupt out-
put. However, each function has a separate enable bit in
Register B. The SQWE bit controls the square-wave out-
put. Similarly, the PIE bit in Register B enables the peri-
odic interrupt. The periodic interrupt can be used with
software counters to measure inputs, create output inter-
vals, or await the next needed software function.