REAL-TIME CLOCKS Application Note 632: Aug 01, 2001 Evaluating the Accuracy of Maxim Real-Time Clocks (RTCs) This app note describes methods for measuring the accuracy of the Maxim Real-Time Clocks (RTCs) using available accurate time sources and the Maxim evaluation kits. Evaluating the accuracy of Maxim real-time clocks (RTCs) can be simplified using the modern personal computer (PC), an Internet connection, and RTC evaluation software. Whether you use a Maxim evaluation kit and its associated software to evaluate the accuracy of a Maxim real-time clock, or use your own software and hardware configuration, you can take advantage of the easy methods presented here for long-term accuracy testing of RTCs. RTC Evaluation Software Figure 1 shows the main screen of typical Maxim RTC evaluation software. The "offset 1 sec" in the current-time display section of the screen is computed as offset = RTC time - PC time. This is now an easy and convenient way to keep track of the difference between the RTC time and PC time and thus allows for long-term accuracy testing of the RTC. When reading the RTC, the timekeeping registers are latched during a burst read. Even though the RTC evaluation software reads the timekeeping registers approximately four times per second, the best guaranteed resolution is 1 second, as all four reads could happen inside of a 1second update. Therefore, an initial offset calculation of ±1 second is within the resolution of the setup when testing for long-term RTC accuracy. The only issue now is the accuracy of the standard that the RTC time is being compared against, the PC clock. www.maxim-ic.com/an632 Page 1 of 8 Figure 1: The main screen of typical Maxim RTC evaluation software PC Time Accuracy As most of us know, PC clocks are not particularly good at keeping accurate time. Simple clocks like a wristwatch and most of the clocks in your home keep better time than a standard PC clock. Each PC contains two clocks. Although they are known by several different names, we will call them the "hardware clock" and the "software clock." The software clock runs when the PC is turned on and stops when the PC is turned off. The hardware clock uses a backup battery and continues to run even when the PC is turned off. An Intel 8254 timer-counter (or functionally equivalent device) generates the software clock. This timer-counter generates an interrupt every 54.936 milliseconds, or about 18.2 times per second. The PC BIOS (basic input output system) contains a software routine that counts the interrupt requests and generates a time-of-day clock that can be read or set by other software programs. For example, the operating system might use the time-of-day information from the software clock to date and stamp files. The software clock is a poor timekeeper. Any change in the interrupt-request rates causes the clock to gain or lose time. If the PC is left on for long periods of time, the software clock can be off by large amounts. A minute or more per day that the PC was left on is not an uncommon error rate. It is also possible for an ill-behaved software program to use the timer-counter for another purpose and change the interrupt rate. This could cause the software clock to rapidly gain or lose time. When the PC is turned off, the software clock stops running and loses all of its time-of-day information. For this reason, a hardware clock is also necessary. The hardware clock is either a separate real-time clock or a RTC function integrated into the PC's chipset. The hardware clock www.maxim-ic.com/an632 Page 2 of 8 is updated once per second and does not resolve to fractions of a second. Its timing accuracy is determined by the quality of the crystal oscillator it uses as its time base. A typical crystal usually is less than $1 in single quantities, with an initial frequency error of greater than ±20ppm, which will translate to greater than ±1.7 seconds per day. In actual operation, with temperature effects included, most hardware clocks gain or lose 5 to 15 seconds per day. When the PC is turned off, the hardware clock runs from a battery. When the computer is turned back on, the software clock starts running again and sets itself (within 1 second) to the hardware clock. Although the hardware and software clocks are synchronized at power-up, they run at different rates and will gain or lose time relative to each other while the computer is running. As you can see, neither the software nor the hardware PC clock is suitable as an accurate timekeeping reference. Fortunately, there are easy ways to solve this PC timekeeping accuracy problem. One of the easiest is to synchronize the PC clock to an Internet service. Internet Time-Setting Services If your PC is connected to the Internet, you can synchronize its clock to an Internet time server. The process requires an active Internet connection and client software. Internet time servers use several standard timing protocols. The major three are Time Protocol, Daytime Protocol, and Network Time Protocol (NTP). The time servers are continually listening for timing requests sent using any of these protocols. When the server receives a request, it sends time to your computer in the appropriate format. The protocol depends upon the type of client software used. Most client software requests that the time be sent using either the Daytime Protocol or NTP. Client software that uses the Simple Network Time Protocol (SNTP) makes the same timing request as an NTP client, but does less processing and provides less accuracy. Table 1 summarizes the protocols and their port assignments. www.maxim-ic.com/an632 Page 3 of 8 Table 1. Internet Time Protocols Protocol Time Protocol NIST Document Format Port Assignments RFC-868 Unformatted 32-bit binary number contains time Port 37 in UTC seconds since January 1, 1900. tcp/ip, udp/ip Daytime Protocol RFC-867 Exact format not specified in standard. The only Port 13 requirement is that time code is sent as standard tcp/ip, udp/ip ASCII characters. Network Time Protocol (NTP) The server provides a data packet that includes a 64-bit time stamp containing the time in UTC seconds since January 1, 1900, with a resolution RFC-1305 of 200 picoseconds. NTP provides accuracy of 1 to 50 milliseconds. NTP client software normally runs continuously and gets periodic updates from the server. Simple Network Time Protocol (SNTP) RFC-1769 The data packet sent by the server is the same as NTP, but the client software does less processing and provides less accuracy. - Port 123 udp/ip NIST (National Institute of Standards and Technology) operates an Internet Time Service from Boulder, Colorado, using multiple servers distributed around the country. The NIST servers distribute time using the Time, Daytime, and NTP formats. For a current list of IP addresses for the NIST servers and sample client software (Daytime Protocol) that can be downloaded see the following: http://www.boulder.nist.gov/timefreq/service/its.htm. NIST also maintains a listing of other client software packages for a variety of computers at: http://www.boulder.nist.gov/timefreq/general/softwarelist.htm. UTC and NIST Time Coordinated Universal Time (UTC) is a stable reference frequency used for counting seconds. The frequency, or rate, of UTC is computed by the International Bureau of Weights and Measures (BIPM), based near Paris, France. The BIPM uses a weighted average from about 250 atomic clocks located in about 50 national laboratories to construct a time scale called International Atomic Time (TAI). Once TAI is corrected for leap seconds, it becomes UTC, or the official world time scale. NIST distributes a real-time version of UTC called UTC(NIST), a time scale referenced to atomic oscillators located in Boulder, Colorado, to the public through their time and frequency services. At its source, UTC(NIST) is kept in as close agreement as possible with other national and international standards (typically within a few nanoseconds). www.maxim-ic.com/an632 Page 4 of 8 Other Accurate Time Alternatives If your computer is not connected to the Internet, NIST also provides Dial-Up Time Setting Service through a standard telephone line and analog modem. This service is called Automated Computer Time Service (ACTS). With calibration, ACTS can set a computer clock with an uncertainty of less than 10 milliseconds. For more information about ACTS and to obtain software, see the following: http://www.boulder.nist.gov/timefreq/service/acts.htm. Alternately, you can get accurate time, all the time, by using a radio clock. Some are standalone devices with a digital time display. These can often be interfaced to the PC with a serial connection. For a list of radio clock manufacturers, see the following: http://www.boulder.nist.gov/timefreq/general/receiverlist.htm. A last alternative for calibrating your PC clock, and the least desirable in terms of ease of use, is to use a regular voice phone line service to check the current accurate time. Such a service is provided by the Time Service Department, U.S. Naval Observatory, Washington, D.C. The Land Line Voice Time, without delay, is 900-410-TIME (50 cents the first minute, 45 cents a minute thereafter). NIST time can be accessed over the voice phone line at (303) 499-7111. NISTIME 32: 32-Bit TCP Time Client The main screen for the NIST TCP Time Client is shown in Figure 2. Selecting the Now option in the Query Server drop-down menu will cause the current NIST time to be obtained and the difference between the PC clock and NIST time computed, as shown in Figure 3. Clicking on OK performs an adjustment of the PC clock to match NIST time. A verification of adjustment then appears, as in Figure 4. Clicking on OK will remove this screen and return control to the main screen for the NISTIME 32. If you are performing several cycles of calibration to reduce the PC clock error in comparison to the NIST standard, you will need to wait between calibrations until the message in the main screen changes from "No server selected" to a line typically like "Server 2 selected using tcp port 13." At that time, another calibration can be performed. Figure 2. NISTIME 32 main screen www.maxim-ic.com/an632 Page 5 of 8 Figure 3. NIST time vs. PC time comparison screen Figure 4. Verification of PC clock adjustment screen Accuracy Evaluation Example: MAX6901 Equipment and Conditions Evaluation System: MAX6901EVSYS • RTC hardware evaluation board • MAXSMBUS module (PC parallel port to 3-wire serial conversion) • RTC evaluation software PC Clock Calibration Software: NISTIME 32 Frequency Counter: Tektronix CMC251 • Typical frequency is 32.768kHz, 0V to +5V swing, 40% duty cycle • Channel-A period measurement • Pre-scale = IN • Gate = X1000 • Typical display reads 30.51758µs www.maxim-ic.com/an632 Page 6 of 8 • Accuracy of reading is calculated to be ±0.418PPM Lab Ambient: 76°F to 78°F Initial Conditions The MAX6901 evaluation board was run using the default of VCC = +5V. The initial frequency measurement was taken using the CMC251. The measured time period of the MAX6901 timekeeping oscillator was 30.51748µs. Calculate how long it takes to reach a 1-second error due to initial crystal tolerance (assume temperature effects are negligible): finitial = 32768 - (1/Tinitial) finitial = 32768 - (1/30.51748µs) = -0.105361Hz tinitial = {[1/[(f + finitial)/32768]] - 1s}/1s tinitial = {[1/[(32768Hz - 0.105361Hz)/32768]] - 1}/1s = +3.215µs/s t1sec_error = 1/ tinitial t1sec_error = 1/3.215µs = 311041.99s = 86.4hr = 3.6days Therefore, the RTC will take about 3.6 days to reach an error of +1 second. Because the RTC software measures RTC error against the PC clock's error, and the PC clock is usually wrong, the PC clock must be corrected using an Internet time-setting service before comparing the RTC against the PC clock. The procedure is outlined below. Procedure 1. Install MAX6901 evaluation software. 2. Install NISTIME 32 software. 3. Connect the MAX6901EVKIT to a +12V supply; leave supply off. 4. Connect a parallel PC cable to the MAXSMBUS board. 5. Plug the MAX6901EVKIT into the MAXSMBUS board. 6. Turn on the +12V supply. 7. Start the MAX6901 evaluation software, and stop cyclic burst reads. 8. Start NISTIME 32 software, and update the PC clock until the error between the PC clock and NIST time is less than 0.4 seconds. This may take more than one iteration to accomplish. www.maxim-ic.com/an632 Page 7 of 8 9. In the MAX6901 evaluation software main window, click on "Set from computer's clock." 10. Confirm that the offset is no more than 1 second. 11. Each and every time the accuracy of the RTC is to be checked, you must repeat Step 8. If the MAX6901 evaluation software is stopped and the parallel-port cable disconnected, then when the RTC time is checked you must reconnect the parallel-port cable and restart the MAX6901 evaluation software. Do not click on "Set from computer's clock" on this restart, or you will need to start the accuracy test from the beginning. 12. Note: When checking the RTC time accuracy, it is recommended that all other Windows programs be exited so as to minimize errors in the PC clock after calibration. Results Table 2 shows the results of the test run on the MAX6901 for long-term accuracy. From calculations in the Initial Conditions section, we expected that the first measurable error of 1 second on the RTC would occur after 86.4 hours. The actual tests conducted yielded about 96 hours before the 1-second error occurred. Temperature effects were not logged accurately enough to be taken into account. Using an Internet time server from NIST and simple RTC evaluation software from Maxim, it was found that easy and accurate long-term testing can be conducted on real-time clocks. Table 2. MAX6901 RTC Accuracy Data Date Time Offset Comments 4-19-01 5:10PM +1 second - 4-20-01 9:00AM +1 second After PC clock calibration with NIST 4-23-01 5:10PM +2 second After PC clock calibration with NIST ______________________ References Lombardi, Michael (Time and Frequency Division, National Institute of Standards and Technology), Computer Time Synchronization NIST Time and Frequency FAQ (Precise Time) MORE INFORMATION MAX6900: QuickView -- Full (PDF) Data Sheet (584k) -- Free Sample MAX6901: QuickView -- Full (PDF) Data Sheet (232k) -- Free Sample MAX6902: QuickView -- Full (PDF) Data Sheet (216k) -- Free Sample www.maxim-ic.com/an632 Page 8 of 8