DS12887 TIME,CALENDAR AND ALARM LOCATIONS The time and calendar information is obtained by reading the appropriate memory bytes.The time, calendar,and alarm are set or initialized by writing the appropriate RAM bytes.The contents of the 10 time,calendar,and alarm bytes can be either Binary or Binary-Coded Decimal(BCD)format.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.In addition to writing the 10 time,calendar,and alarm registers in a selected format (binary or BCD).the data mode bit(DM)of Register B must be set to the appropriate logic level.All 10 time.calendar,and alarm bytes 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 undates in the selected mode the data mode can not be changed without reinitializing the 10 data bytes Table 2 shows the binary and BCD formats of the 10 ti calendar and ala locatio The 24-12bit be teintializing the Whe e 1 ormat of the epres ogic s are alwa s ac they are double nce per se the 10 bytes are 1 by second d chec ed 1 or an alarn 0 dition.Ifa of the time and r data occurs seconds,minutes,hour s,etc.may not correlate. The probability of reading inco orrect time and calen dar data is low.Several methods of avoiding any possible incorrect time and calendar reads are covered later in this text. The three 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 three alarm bytes.The "don't care"code is any hexadecimal value from Co to FF.The two 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 three alarm bytes create an interrupt every second. TIME,CALENDAR AND ALARM DATA MODES Table 2 ADDRESS FUNCTION DECIMAL RANGE LOCATION Range BINARY DATA MODE BCD DATA MODE 0 Seconds 0-59 00-3B 00-59 Seconds Alarm 0.0 00.3B 00.5g Minutes 0.50 00-3B 00.50 0.59 00-3D 00.5 4 1-1 01-0C AM,81-8C PM 01-12AM.81-92P Hours-24-hr Mode 0-23 00-17 00-23 Hours Alarm-12-hr 1-12 01-0CAM.81-8CPM L01-12AM81-92PM Hours Alarm-24-hr 0-23 00-17 00-23 6 Day of the Week 1-7 01-07 01-07 Sunday =1 Date of the Month 121 01-1F 0121 Month 1.12 01-0 01-12 0-99 00-63 00-99 6of19
DS12887 6 of 19 TIME, CALENDAR AND ALARM LOCATIONS The time and calendar information is obtained by reading the appropriate memory bytes. The time, calendar, and alarm are set or initialized by writing the appropriate RAM bytes. The contents of the 10 time, calendar, and alarm bytes can be either Binary or Binary–Coded Decimal (BCD) format. 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. In addition to writing the 10 time, calendar, and alarm registers in a selected format (binary or BCD), the data mode bit (DM) of Register B must be set to the appropriate logic level. All 10 time, calendar, and alarm bytes 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. Table 2 shows the binary and BCD formats of the 10 time, calendar, and alarm locations. 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 1 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 three 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 three alarm bytes. The “don’t care” code is any hexadecimal value from C0 to FF. The two 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 three alarm bytes create an interrupt every second. TIME, CALENDAR AND ALARM DATA MODES Table 2 ADDRESS RANGE LOCATION FUNCTION DECIMAL RANGE BINARY DATA MODE BCD DATA MODE 0 Seconds 0-59 00-3B 00-59 1 Seconds Alarm 0-59 00-3B 00-59 2 Minutes 0-59 00-3B 00-59 3 Minutes Alarm 0-59 00-3B 00-59 4 Hours-12-hr Mode 1-12 01-0C AM, 81-8C PM 01-12AM, 81-92PM Hours-24-hr Mode 0-23 00-17 00-23 5 Hours Alarm-12-hr 1-12 01-0C AM, 81-8C PM 01-12AM, 81-92PM Hours Alarm-24-hr 0-23 00-17 00-23 6 Day of the Week Sunday = 1 1-7 01-07 01-07 7 Date of the Month 1-31 01-1F 01-31 8 Month 1-12 01-0C 01-12 9 Year 0-99 00-63 00-99
DS12887 NONVOLATILE RAM The general purpose nonvolatile RAM bytes are not dedicated to any special function within the DS12887 They can be used by the processor program as nonvolatile memory and are fully available during the update cycle. INTERRUPTS The RTC plus RAM includes three separate.fully automatic sources of interrupt for a processor.The alarm interrupt can be p rammed to occur inte rupt can mbe selected for rates from 50 ms to 12 Hs rupt an he sed to n an update ycle is complete.Each of these independent interupt conditions is described in greater thabie the minomu mbemm o nthe 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 much 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 in pende. of the of the correspondi enable bit in R egis er B. The flag bit can be ena atus bit an ind e g bit wa shoul they are cleared eacl Regist er C that bits whic are set remain stable e throughout the read cycle.All bits which are set(high)are clearec wnen rea new interrupts which are pending during the read cycle are held until after One.2.or 3 bits can be set when reading Register C.Each utilized flag bit should be complete examined when read to ensure that no interrupts are lost The second flag bit usage method is with fully enabled interrupts.When an interrupt flag bit is set and the 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 oscillator off. 7of19
DS12887 7 of 19 NONVOLATILE RAM The 114 general purpose nonvolatile RAM bytes are not dedicated to any special function within the DS12887. They can be used by the processor program as nonvolatile memory and are fully available during the update cycle. INTERRUPTS The RTC plus RAM 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 500 ms to 122 ms. The update–ended interrupt can be used to indicate to the program that an update cycle is complete. Each of these independent interrupt conditions is described in greater detail in other sections of this text. The processor program can select which interrupts, if any, are going 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 much 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 independently 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 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 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, 2, or 3 bits can be set when reading Register C. Each utilized flag bit should be examined when read to ensure that no interrupts are lost. The second flag bit usage method is with fully enabled interrupts. When an interrupt flag bit is set and the corresponding 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 1 whenever the IRQ pin is being 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 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 oscillator off